プログラミング言語は、目的に特化している方が使われる

ってのは確かどこかでなでしこ作者のクジラ飛行机さんが書いていたことだったと思う。
PerlUNIX上のテキスト処理に特化していたし、HSPなら中学生のゲーム製作、Rubyも普及の起爆剤になったのはRailsだろうし、そしてPHPならWebアプリケーションだ。

たまには旬のネタにでも食いついてみようかと

というわけで今回は、小飼弾さんのエントリ「404 Blog Not Found:そろそろPHPに関して一言いっとくか」について。

PHPはWebアプリケーションのViewのための言語なのでは

私はPHPについては掲示板クラスのアプリケーションをいくつか作ったくらいなのですが、そんな初心者の目から見ても、htmlspecialcharsやnl2brなんて関数が堂々とのさばっているのを見ると、これはWebアプリに特化した言語なんだなあ、ということはわかるわけで。

Webアプリ以外作る気にならない
PHPは、その生まれからしてWeb Serverと密結合している。Webアプリを作るにはいいが、それ以外の目的には使えない。

404 Blog Not Found:そろそろPHPに関して一言いっとくか

もともとそのための言語と割り切れば、別に問題ないのではないかと。

MVCのVしか出来ない
PHPというのは、Model, View, ControllerのViewのみしか扱えないことを宿命づけられた言語である。実際PHPのみで動いているWebサービスというのはほとんどなく、実際にはMySQLをはじめ、PHPのためのバックエンドプログラムが山のようにあり、PHPはそれを呼び出しているに過ぎない。

404 Blog Not Found:そろそろPHPに関して一言いっとくか

Webアプリなんて大半の処理はRDBに対するCRUDなんだから、やっぱり問題ないのではないかと。
実際仕事でWebアプリを開発するのにプログラマを雇うなら、JavaC#オブジェクト指向に詳しい人よりSQLのエキスパートを雇いたいです。私は。

技を覚えるのが喜び?

しかし、PHPではプログラマーがプログラムを続けるための一番のご褒美がほとんどない。それは何かというと「新しい技を覚える」という喜びである。「新しい呪文」ではない。それならいくらでもある。しかし新しい呪文を覚えた所で、心理報酬は大したことがない。単に知識が増えただけだ。PHPを使っても、知識は増えても知恵が増える気がちっともしないのである。

404 Blog Not Found:そろそろPHPに関して一言いっとくか

言語は道具なんだから、一番のご褒美はそれで書いたプログラムが動くことなのではないかと。
Lispプログラマの中には、EmacsのカスタマイズのためにLispをおぼえた(Emacsのカスタマイズ言語がLispでなかったら決しておぼえなかった)という人は多いだろうし、JavaScriptにいたっては、大半のプログラマは、ブラウザで使える唯一の言語だからこそ使っているのであって、クロージャーだのレキシカルスコープだのCの皮をかぶったLispだのはそれこそ「どうでもいい」話なのではないか。
プログラミングにおいて、最小の呪文の組み合わせによる「技」で問題を解決する快感があるというのはわかるけれど、そういう技が増えてくると新規参入者のハードルを上げることになるんじゃないかしら。
関数等の呪文はリファレンス引けばすぐわかるけど、イディオム的な技は、調べにくいし、ただ知るだけではなく「理解する」という過程が必要。これは初心者にとって、既存のソースを読む際の壁を高くする。
かつてMatzにっきでHSPが話題になったことがありますが、「あの」HSPでさえ、目的が果たせれば喜んで使う人は多くいるわけで、言語は道具として目的が果たせれば大半の人にとってはそれでよいんじゃないかなあ、と。
処理系作りになにがしかでも興味を持っている身としては、寂しい話ではありますけどね。

補遺

あ、えーと、もともと弾さんはPHPはクソだから使うなとかは言ってないんで、別に反論というわけではないんですけどね。