だからもう初心者にWeb開発させるのやめようぜ

まつもとゆきひろ氏が英語の記事でPHPを叩いてるやつを翻訳してコメント付きで載せたら「Matz酷すぎ」みたいな反応がわらわら出てきてお前らちゃんと読んでいるのかよ、と思ったわけです。

特に「PHPは初心者に学びやすい(と言われていることが問題である)」という部分に共感する。 PHPは初心者に簡単かもしれないが、初心者による手を抜いたWebアプリケーションは PHPが作られた当初はともかく、現代では害悪ではないだろうか。

http://www.rubyist.net/~matz/20080126.html#p04

これは同感。というか、もはや社会インフラと化したWebの世界は初心者の手に負えるものではないはずだ。かつてPerl4でベタベタCGIを書いていた頃は想像もしなかったセキュリティー脆弱性。未だに過去の遺産として残っているものは多い。
どの言語でもそうだけど、初心者向けの入門書にセキュリティーのことをちゃんと書いてあるものになかなかお目にかかれない。PHPは動的Web構築の敷居を下げるのに貢献したかも知れないけれども、あまり考えなくてもいいやって人にも開放した、とも言える。他の言語だって本質的には同様だけど、結局のところ、初心者がWebにアプリケーションを公開する、ということそのものがもはや間違っているのではないか、あるいは、脆弱性について、作りこんだ人に責任を取らせることを世間は期待している、ということを理解すべきではないか、と思う。
ただ、問題は、いわゆるIT業界の中に、Web開発の初心者(しかし自称プロ)が山ほどいること。セキュリティー的な問題点を理解している人に到ってはプロジェクトに何人かいれば優秀なほうだろう(これはいいすぎ?)。でも僕だってWeb開発者としてやってきたけど、新たな手口の登場を追うのも大変だし、実際はがちがちに固めてたり動いてないから起こりえないような脆弱性をお客さんが報道から拾ってきたりして説得するのが面倒だったり。セキュリティーの専門家でなくても最低限のことを知らないとやっていけないのがWeb開発。作って納品してはいあとはそちらでよろしく、なんて開発だったら尚更事前に検証しておかなければならないことは多い。
さっそくネタ帳の人が噛み付いている。

perlでもjavaでもrubyでも、どの言語で書いてもSQLインジェクションやらXSS脆弱性やらを作りこむ奴は作りこむ。ただそれだけの話というか、別な話だろう。

http://neta.ywcafe.net/000827.html

僕が引用したまつもと氏の言葉の部分を読んでない?まあいい。それだけの話でもない。
「言語は関係ない」って言葉は僕には「初心者はWeb開発やめろ」と言っているように聞こえるし、もしそうでないのであれば、弱点を認めた上で、言語仕様的な観点からできるだけ過ちを犯さないようになっているかを検証し、初心者でも脆弱性を作りこみにくい言語としていくべきなんじゃないか。PHPなんてWeb開発用言語として産まれたんだからその辺はもっともっと意識してしかるべきなんじゃないかな。とりあえず動いちゃう、ってのはおもちゃとしては楽しいけど、それで終わってしまったら危険だ。
PHPの良いところも沢山ある。仕掛け自体も良くできていると思う。でもね
はてなブックマーク - [言語] Attacking PHP - Matzにっき(2008-01-26)
のコメントを見ているとなんだか暗澹たる気持ちがしてくるのは何故だろう。