PHPは定期的にネタにされる
2008年01月30日 プログラミングTIPS
PHPがいかに駄目な言語かについてを、「日本発オブジェクト指向スクリプト言語Rubyの作者」まつもとゆきひろさんが客観的にコメントしました。
そのコメントに対して、いろいろと論争が起こっているようです。
流れのまとめと、個人的な思いを書いておきます。
そのコメントに対して、いろいろと論争が起こっているようです。
流れのまとめと、個人的な思いを書いておきます。
1月26日、PHPがいかに駄目な言語かについてを、「日本発オブジェクト指向スクリプト言語Rubyの作者」まつもとゆきひろさんが客観的にコメントしました。
Attacking PHP続いて、Web屋のネタ帳さんが「どの言語で書いてもおかしなコードを書く奴は書く」と反論しました。
PHPがいかに駄目な言語か、という話。
(中略)
特に「PHPは初心者に学びやすい(と言われていることが問題である)」という部分に共感する。 PHPは初心者に簡単かもしれないが、初心者による手を抜いたWebアプリケーションは PHPが作られた当初はともかく、現代では害悪ではないだろうか。
Webアプリケーションをなめるな
PHPならではの理由がないわけではないことはわかる。どこでもインストールされているとか、デプロイが簡単とか。
でも、「初心者に簡単」を一般公開されるWebアプリケーションを開発するための言語としての利点にするのはもうやめようよ。
どの言語で書いてもおかしなコードを書く奴は書く。そして、日本のPerlハッカーの一人と認知されている小飼弾さんが、言語の学び方についてコメントしました。
(前略)
perlでもjavaでもrubyでも、どの言語で書いてもSQLインジェクションやらXSS脆弱性やらを作りこむ奴は作りこむ。ただそれだけの話というか、別な話だろう。
まあ、ハッカーというか天才というかとにかく偉い(と周囲に持ち上げられている)人が怪気炎っぽいものをあげて自分の好まないものをこきおろすのは、これまたよくあることではある。
「PHPなめんな」と「(Perl|Python|Ruby)をなめんな」の違いみんな、ちょっとずつ論点がずれてるのもポイントです。
(前略)
一つ言えるのは、私は学びたい、のではなく、学び続けたい、ということだ。だから学び続けやすい言語に魅力を感じる。PerlもRubyも、最近ではJavaScriptもそうだ。C/C++とLisp/Schemeは一生ものの師という感じがする。Haskellはこの両方の師の薫陶を受けた「若い師」で、いろいろなことを学び直させてもらっている。しかし、PHPには「教官」までしか感じない。それが多分、私がPHPに共感できない一番の理由なのだろう。
さらには、「PHPやってるだけでバカ」にされると質問されたり、
PHPやってるだけでバカにされるんですがどうしたらいいでしょうか。 - 人力検索はてなAttacking PHPのコメント欄が炎上気味になっていたり、
PHPやってるだけでバカにされるんですがどうしたらいいでしょうか。
「PHPはHTML生成スクリプトくらいに思った方が良い」と言われたり、
So-net blog:港区赤坂四畳半社長:スクリプト言語の美学「定期的に来るよね」と、いつものことのように思われてしまったり。
だからPHPをプログラム言語と見なすのはむしろ間違いで、HTML生成スクリプトくらいに思った方が良いのではないでしょうか。
またphpネタで盛り上がってる - Lism.in * blogPHPは定期的にネタにされています。
こういう波って本当に定期的に来るよね。特に何も書かずにスルーしてたけど、うっかり書いてしまいました。
それでも、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アプリケーション設計のヒント方向性としては、相当間違った方向に進んでいて、本来やるべきは「PHPを避ける」ではないはずです。
開発基盤選定における考慮事項の例
(1) プログラミング言語の選択
1) 例えば、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 |