ZAPAnet総合情報局 > [Z]ZAPAブロ〜グ2.0 > プログラミングTIPS > PHPは定期的にネタにされる

PHPは定期的にネタにされる

このエントリーをはてなブックマークに追加
2008年01月30日 カテゴリ:プログラミングTIPS
PHPがいかに駄目な言語かについてを、「日本発オブジェクト指向スクリプト言語Rubyの作者」まつもとゆきひろさんが客観的にコメントしました。
そのコメントに対して、いろいろと論争が起こっているようです。
流れのまとめと、個人的な思いを書いておきます。

1月26日、PHPがいかに駄目な言語かについてを、「日本発オブジェクト指向スクリプト言語Rubyの作者」まつもとゆきひろさんが客観的にコメントしました。
Attacking PHP

PHPがいかに駄目な言語か、という話。

(中略)

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

Webアプリケーションをなめるな

PHPならではの理由がないわけではないことはわかる。どこでもインストールされているとか、デプロイが簡単とか。

でも、「初心者に簡単」を一般公開されるWebアプリケーションを開発するための言語としての利点にするのはもうやめようよ。
続いて、Web屋のネタ帳さんが「どの言語で書いてもおかしなコードを書く奴は書く」と反論しました。
どの言語で書いてもおかしなコードを書く奴は書く。

(前略)

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

まあ、ハッカーというか天才というかとにかく偉い(と周囲に持ち上げられている)人が怪気炎っぽいものをあげて自分の好まないものをこきおろすのは、これまたよくあることではある。
そして、日本のPerlハッカーの一人と認知されている小飼弾さんが、言語の学び方についてコメントしました。
「PHPなめんな」と「(Perl|Python|Ruby)をなめんな」の違い

(前略)

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

さらには、「PHPやってるだけでバカ」にされると質問されたり、
PHPやってるだけでバカにされるんですがどうしたらいいでしょうか。 - 人力検索はてな

PHPやってるだけでバカにされるんですがどうしたらいいでしょうか。
Attacking PHPのコメント欄が炎上気味になっていたり、
「PHPはHTML生成スクリプトくらいに思った方が良い」と言われたり、
So-net blog:港区赤坂四畳半社長:スクリプト言語の美学

だからPHPをプログラム言語と見なすのはむしろ間違いで、HTML生成スクリプトくらいに思った方が良いのではないでしょうか。
「定期的に来るよね」と、いつものことのように思われてしまったり。
またphpネタで盛り上がってる - Lism.in * blog

こういう波って本当に定期的に来るよね。特に何も書かずにスルーしてたけど、うっかり書いてしまいました。
PHPは定期的にネタにされています。
それでも、PHPを学ぼうとする人が後を絶たないのは、それだけ魅力的な言語であることの裏返しでしょうか。

自分もスルーしておこうかと思ったのですが、PHPプロ!でPHP講座「ZAPA先生のマッシュアップ講座」を連載していたりするので、少し思ったことを書いておきます。

プログラミング言語は宗教みたいなもの

プログラミング言語は宗教みたいなもので、好きか嫌いかですぐに論争になります。
プログラミング言語/宗教論争
にも載っていますが、
タブかスペースか
タブ幅
インデント幅
スペースを空けるか空けないか
名前
goto の是非
オブジェクト指向
記法
宣言
言語仕様かライブラリか
こんなことでも、好き嫌いの個人差が大きくすぐ論争になります。

まつもとゆきひろさんは「たかがひとりのプログラマ」じゃない

まつもとゆきひろさんがPHP使いの反論で、
私がPHPを「イケてない言語」と発言しても、たかがひとりのプログラマにそう言われただけじゃないか。それでPHPユーザーが負け犬認定されるわけでもなし、「そういうところもあるよね」と笑い飛ばせば良いと思う。

そうじゃない?
と書かれていますが、他の人はまつもとさんのことを「たかがひとりのプログラマ」とは思いません。
まつもとさんはRubyの作者で、宗教的に言えば「Rubyの教祖」みたいなものです。
その教祖から、PHPのダメなところを羅列されたら、怒り出す人がいるのも当然です。
本人は言語的なダメさを客観的に指摘しているつもりでも、周りはそうは思ってくれません。

日本のPerlハッカーの一人と認知されている小飼弾さんが、Rubyのダメなところを列挙したら、Ruby使いの人も反論するはずです。
別にPHPがどうこうではなく、宗教的にそれは必然です。

「PHPはダメだ!」とだけ叫ぶ危険性

「PHPはダメだ!」とだけ叫んでしまえば、大部分がPHPで作られている
Yahoo! JAPANニコニコ動画は脆弱で危険だ!」と叫んでいるように聞こえます。
「PHPのYahooやニコニコ動画は危険だけど、Perlの2ちゃんねるやmixiは安全だ!」
と拡大解釈する人まで現れてしまいます。

1番ひどいと思ったのは、IPAの総論です。
IPA ISEC セキュア・プログラミング講座:Webアプリケーション編 第1章 総論:より良いWebアプリケーション設計のヒント

開発基盤選定における考慮事項の例
(1) プログラミング言語の選択
1) 例えば、PHPを避ける
方向性としては、相当間違った方向に進んでいて、本来やるべきは「PHPを避ける」ではないはずです。

1番大事なのは脆弱性を回避すること

まつもとさんも書かれたように、「安全なWebアプリのために言語ができること」を初心者にも周知していくことが大切です。

PHP使ってるヤツらって

htmlspecialchars($_GET['text']);

こんなコード書いてる!

m9(^Д^)プギャー
などと言っている場合ではないんですね。(ここはまつもとさんのコメントではありません)

どういうところで脆弱になりやすいのか、どこで初心者がミスしやすいのか、そこら辺を周知徹底させることが大事です。
セキュリティに詳しい人が、PHPアプリケーションを作った後にチェックできるチェックリストを作って公開したり(できればチェックツールも)、ミスしやすいポイントを列挙したり、そういう方向に進んでいくのが正しい方向性だと思います。
「PHPを使っている人=低脳」ではないに書いたように、PHPを扱う人には初心者から熟練者までたくさんの人がいます。
PHPをバカにしている場合ではなく、脆弱なアプリケーションが生まれないように、知識の共有をしていくことが大切なんじゃないかと思います。









PHPサイバーテロの技法―攻撃と防御の実際
GIJOE
ソシム
2005-11
コメント:すべてのPHPプログラマに!
コメント:すばらしい
コメント:PHP管理者必読
コメント:Webアプリケーションを開発及び運用する上でぜひ読んでおきたい一冊

by [Z]ZAPAnetサーチ2.0
入門PHPセキュリティ
クリス シフレット
オライリージャパン
2006-05
コメント:薄くて充実
PHPの薬箱―エラー・トラブル回避のテクニックとセキュリティ対策
佐久嶋 ひろみ
九天社
2006-11
コメント:PHPのかゆい所に手が届く本です。
たのしいRuby 第2版 Rubyではじめる気軽なプログラミング
高橋 征義
ソフトバンククリエイティブ
2006-08-05
コメント:Ruby入門書としてはこれが一番お薦め。
コメント:プログラミング初心者にとっては少し難易度が高いかも
コメント:変数のスコープと寿命について詳しく書いて欲しかった
コメント:練習問題の内容にやや難あり
コメント:Rubyをこれから覚える方は必読かも
新版Perl言語プログラミングレッスン入門編
結城浩
ソフトバンククリエイティブ
2006-10-21
コメント:はじめてのPERL入門書
コメント:Perlって楽しい
コメント:次はRuby言語プログラミングレッスン入門編ですね
コメント:LL言語の基礎を固める良書 特に正規表現の解説は秀逸

Adobe AIRプログラミング入門
Webアプリケーション技術でデスクトップアプリケーションを作る! (I/O BOOKS)

ZAPA
工学社
2008-01

今回の話題とはあまり関係ありませんが、ActionScriptもなかなかの言語です。

by [Z]ZAPAnetサーチ2.0