Home > PHP Archive

PHP Archive

プログラマーと筋トレ愛好家の共通点

なぜかPHPの設計を嫌がる優秀なプログラマーが多いが、スポーツクラブでトレーニングしているときに気がついた。
これは筋トレ中級者以上が、初心者を小ばかにするのと同じだと。

すると、プログラミングと筋トレの間にすごい相関関係があることが分かってきた。

ポイントは3つ
1.レベルが上がっていくにしたがって、当初の目標よりも先へ先へと進む

プログラミングでは 筋トレでは
HTMLを書きたい 腕立てでちょっと引き締めるたい
PHPのincludeを覚える 腹筋やスクワットもやってみる
動的なページを作り出す スポーツクラブでマシントレーニングをする
よくわからないけどオブジェクト指向と言い出す 見よう見まねでフリーウエイトのベンチプレスを始める

以下略・・・

で、当初の目標であるなんとなく引き締まった体は身についているのに、なぜか筋肉を太くすることに目標が変わったり、洋服がきつくなるのが嬉しくなったりする。そこまでいくと、周りからは少しずつ変な目で見られるようになる。

プログラマーも深くもぐっていくにしたがって変人(←一般人には理解できないことに喜びを覚える)になり、いわゆるスーツたちから理解されなくなっていくのではないだろうか。
「とにかく動けばいいのに、きれいな設計がどうこう言われてもどっちでもいいよ、知らないよ」とか
「この言語がどうこう言われても良く分からないよ」・・・みたいな。

2.自分よりレベルが下のものに対して、不必要に高レベルなものを薦める

これがまさしく「PHPの設計が悪くてユーザーは満足できるのか」と言ったり「includeだってテンプレートを使えばほとんどの言語でできるしその方が幸せ」と思う心理と同じである。

筋トレに置き換えると、腕立てをやる人に対してスポーツクラブのほうが効率的だといったり、ちょっと筋トレしてみたいだけなのにトレーニング理論や栄養理論を振りかざしたり、変なフォームの人を見るとあざ笑ったり。
怪我するとか効率が悪いとか言うが、ほとんどの人は怪我するほどの重量は扱わないし、そんなに筋肉つけたいとは思っていないのだ。

しかし、実は初心者もたちが悪い。
ちょっとできると、いろいろできるようになったと勘違いしてしまう。
たいしたレベルでもないのに、こんなことできるぜーといって自慢し、上のレベルを見なくなる場合がある。
こうすると、上級者は「お前のやっていることはたいしたこと無いじゃん」と大人気なく言ってしまうのも道理である。

つまりPHPが幅を利かせて、「PHPすごいぜー」という雰囲気の世の中になると、「そんなのダメだぜ」といいたくなるのもよーく理解できるのだ。

3.そこそこのレベルになると宗教戦争が勃発する

プログラミング言語間やOS間ではしばし宗教戦争が起こる。
とくに個人のレベルが少し上がったころに良く起こる。

筋トレにおいても同じだ。
ベンチプレスはブリッジして高重量がいい派 vs べた寝できっちりきかせるストリクト派
フルスクワットでなければスクワットじゃ無い派 vs ハーフで十分派
(意味分からない人はごめんなさい)

しかしさらにレベルがあがると、宗教を超越してそれぞれの利点なんかを冷静に判断できるようになる。

最後に思い出したのは、itproにのっていたRubyのまつもと氏のインタビュー。
まつもとゆきひろの「プログラミング言語論」【前編】(1):ITpro

そういう人たちはどんどん潜っていって自分のバランスのちょうどいいところで留まるんですが,私の見るところ,その究極の行き先はハードウェアかOSか,プログラミング言語のいずれかのようです。

筋トレも同じだ。行き着くところは3つ。
ボディービル(※1)、ウエイトリフティング(※2)、パワーリフティング(※3)、の3つだ。
フレームワークなんかを開発している人は、さしずめベンチプレス競技(※4)といったところか。

こうして、PHPはユーザーにとっては素晴らしいとかPHPは本当にダメな言語なの?とかで、PHP擁護をしてきたが、けなすほうの心理も理解するに至ったのである。

※1 例の肉体をひけらかすあれである。大抵の日本人は気味悪さを感じるようだ。
※2 オリンピック競技の、重たいものを頭の上まで持ち上げるやつ。生活の役に立つかどうかは分からない。
※3 スクワット、ベンチプレス、デッドリフトの3種目の合計重量を競う競技。デッドリフトは一般人の9割が知らない。
※4 ベンチプレスの重量のみを競う競技。一番人気。レベルが低い人たちもなぜかベンチの重量だけは競いたくなる。

PHPはユーザーにとっては素晴らしい

  • 2007-06-06 (水)
  • PHP

激しく同意。

現実的に言って、PHPは死なないし消えもしないどころかますます普及する。

こうしてPHPは普及してゆく。perlと同じ感じで、「どんなサーバーにもたいていPHPは入ってる」という現実が拡散してゆく。MovableTypeというキラーアプリの爆発的普及の影には「どこのサーバーにもたいていperlは入ってる」という現実の裏打ちがあったのは明白である。そしてPHPには「いつものHTMLの途中に突然書けるinclude文」というキラーアプリがある。(笑)

ここにも書いたが、PHPは一般ユーザーにとっては手軽で便利で素晴らしい。
PHPは本当にダメな言語なの?

設計が悪いだとか、roundがどうのこうのとか言われているけど、その辺のユーザーにとってはたいした話ではない。とにかく敷居が低くて手軽に便利な機能が使えるのが素晴らしい。
PerlだってRubyだってPytonだってテンプレートを使えばincludeできるっていうけど、そのための準備とかおまじないが多すぎる。

HTMLにincludeを書く・・・より一歩進んで、適当に作ったプログラム同士も簡単にincludeでつなげることができたりする。頭を使わず独立性や再利用性の高いモジュールを簡単に作れるということ。

言語の設計だとか仕様だとか使い勝手だとか、そんな話だと宗教戦争になってしまうけど、手軽に(ヘビーではない)ユーザーに受け入れられる機能をデフォルトで持っているPHPは、そりゃ普及するよね。

MochiKitでPHPにPOSTしてはまった@さくらインターネット

MochiKitを利用して、こんな感じでPOSTしたんだがPHPで$_POSTにデータが入らなかった。

var req = getXMLHttpRequest();
req.open(”post”, “hoge.php”, true);
var d = sendXMLHttpRequest(req, queryString(’post_form’));
 
var good = function(res) {
var data = evalJSON(res.responseText);
//正常処理
}
 
var bad = function(err) {
alert(err);
}
 
d.addCallbacks(good, bad);

 
これは相当はまった。
結論はかなり当たり前のことなんだけどはまった。

で、何が悪かったのかと言うと、content-typeを指定していなかったから。

req.setRequestHeader("content-type", "application/x-www-form-urlencoded;");

この1行を追加して解決。

PHPってかわいそうな立場だな

  • 2007-05-21 (月)
  • PHP

一昔前のVisualBasicと今のPHPは同じ立場?

まー、どんなに言われても普及してるのは普及してるんだし、使う人もまだまだ増えるだろう。
JavaからRubyに鞍替えするくらいなら、JavaからPHPに移行したほうが多くの開発者はすんなり行くんだろうし。

確かにPHPは作る側には向かないかもしれないし、いじる楽しさが少ないのも分かるけど、その代わり一般人には浸透しやすいよね。

Lisperが他の言語を物足りないと言うのと同じ原理で徐々にたどっていくと、行き着くはけ口はPHPになるってことなのかなぁ。

PHPは本当にダメな言語なの?

  • 2007-04-20 (金)
  • PHP

恐れ多くもこのエントリーに反応してみる。
Matzにっき(2007-04-13)

とはいえ、実際に「喜んで」PHPを使っている人はそれなりにいるわけで(「しかたなく」使っている人も大勢知ってるけど)、そういう人たちはまた別の理由や動機があるのだろうか。それとも「現状に満足しちゃってる」とか、「新しい言語を学ぶくらいだったら、非効率な方がマシ」ということなんだろうか。時として「知らないこと」は強力な動機となるわけで。

さらに元ネタはこれ

指摘されているPHPを使うネガティブな理由はごもっともだが・・・
ここで指摘している「PHPを使っている人」の定義がフレームワーク作者みたいな優秀なプログラマとか、複雑なサイトを開発している人を指しているかもしれないが、あえて一般人にとってPHPのいいところを個人的な感想でで3つに絞ってあげてみる。(使っている人が多いなどという言語の特性以外の理由はあえて省いた)
なぜなら一般人が使いやすいものが一番普及するのは当たり前だと思うし。

1.デフォルトでちょっとしたWeb開発に必要なものが揃っている
大半は簡単なスクリプトをHTMLに埋め込めればいいという開発だって多い。特にEUCっぽい環境など。
そこで必要最低限の(というかWEBに特化したマニアックな)ライブラリがほとんど揃っているのは強い。
それ以上のことをやりたいと思わないのだから、それ以上の言語は必要ない。

2.includeの使い勝手の高さ
普通にHTMLを作っているときに、ちょっとここだけ動的にしたいというニーズがあったときに、適当なPHPスクリプトをincludeしたら実現できる。
これは実はすばらしいと思う。(しかもこれを言語としてサポートしている)
テンプレート言語としてPHPを見ると優れていると感じるだろう。(※1)

2’.Movabletypeとの相性の良さ
これは個人的な理由だが見逃せない。
HTMLを吐き出す仕組みにちょっと動的ページを自作してアドオンするときの使い勝手は素晴らしいものがあると思う。
ほとんど2と同じことを言ってますね。

3.余計な事ができない自由度の無さ
自由度が無い分、下手なことをされることも少ないので助かる。
特にレベルの高くないプログラマをたくさん集めて開発するときなんかには、PHPのほうが安心感がありそう。(※2)

※1
そもそもPythonとかRubyとかPerlと比べるから分けわからなくなる。
土俵が違うでしょ。

※2
この辺はJavaを選択する理由と似ている。
もちろん良い悪いの議論はあるけど、現在の日本のSIerでマネジメントもやらなきゃいけない立場からすると、PHPのほうがプロジェクトの計算をしやすい。
いや、それだけじゃだめなのは理解してますよ。。。

Home > PHP Archive

Search
Feeds
Meta

Return to page top