Matzさんの意見に、想定内の反応が返って来ている。

Matzにっき(2008-01-26) - [言語] Attacking PHP
PHPがいかに駄目な言語か、という話。
どの言語で書いてもおかしなコードを書く奴は書く。
perlでもjavaでもrubyでも、どの言語で書いてもSQLインジェクションやらXSS脆弱性やらを作りこむ奴は作りこむ。ただそれだけの話というか、別な話だろう。

両方とも事実だし、foo言語のuserがbar言語がいかに駄目かを語るというのは有史以前(コンピューター言語以前に自然言語でもある)からの話題なのだが、しかし"PHP sucks"には他とかなり異なる点が一つあるように見受けられる。

それは、PHPユーザーは他の言語から学んでいるのか、という点。

PHPユーザーが他の言語ユーザーよりも弱いのは、そこなのではないか。

(Perl|Python|Ruby)ユーザーには、自らの言語の欠点を知った上で、他の言語の利点を貪欲に取り入れようという人々が多く見られる。上級者であれば上級者であるほどそうで、一番そうなのは言語の父たち。Perlはオブジェクトの実装をPythonから持って来ているし、Perl 6はRubyを先生にしている。Perl 6を待てない人々も、autoboxWeb::Scraperを見れば、今すぐに他の言語から盗めるものを積極的に盗んでいることが見てとれる。

PHPは、どうか。

404 Blog Not Found:惰訳 - プログラムは大変だ、スクリプトにしよう - 過去篇
PHPは初期のPerlが犯した過ちを、Perlよりゆるやかに進めているといえます。
perl.com: Programming is Hard, Let's Go Scripting... Page 2
By and large PHP seems to be making the same progression of mistakes as early Perl did, only slower.

Larryに同意せざるを得ない。

Matzにっき(2008-01-26)
特に「PHPは初心者に学びやすい」という部分に共感する。

しかし「初心者」というのは「弱者」と同じく、その場におけるある人の状態に過ぎず、そのままで居続けることはありえない。先に進むか、下りてしまうかのどちらかだ。

「PHPは初心者に学びやすい」というが、PHPはその後も学び続けやすいのだろうか。もしそうだとしたら、なぜPHP萌え萌えのDHHがRailsを作るにあたって選んだのがRubyだったのだろうか。

PHPの「サクセスストーリー」をよく見ると、初心者が腕を磨いてというのではなくて、むしろ他の言語でならした手練がPHPのいいところだけを使ったというものが目立つ。ニコニコ動画なんてその最たるものだろう。そしてこういうユーザーがPHPに「再投資」するというケースはあまり目立たない。ここで言う「再投資」は、ある言語に助けられた人が、その言語に対して「利用」以上の貢献するということである。PerlにはCPANが、RubyにはGemsが「再投資の受け皿」としてある。それでも満足できない人は、開発者MLが待っている。Pythonはこの点がPerlとRubyに比べて弱いように見受けられるが、それでもPHPほど「使いっぱなし」は目立たない。

その意味では、「初心者にやさしい」というのは、なかなかやっかいな「孔明の罠」なのではないだろうか。

自然言語は、初心者には全くやさしくない。しかしユーザーは一生かけてそれを学ぶし、別の言語から学んだこともその言語にフィードバックしていく。日本語も英語もそうやって進化してきた。

PHPは、どうなのだろうか。

一つ言えるのは、私は学びたい、のではなく、学び続けたい、ということだ。だから学び続けやすい言語に魅力を感じる。PerlもRubyも、最近ではJavaScriptもそうだ。C/C++とLisp/Schemeは一生ものの師という感じがする。Haskellはこの両方の師の薫陶を受けた「若い師」で、いろいろなことを学び直させてもらっている。しかし、PHPには「教官」までしか感じない。それが多分、私がPHPに共感できない一番の理由なのだろう。

Dan the Polyglot