Ikeda->Weblog();

Ikedaの徒然雑記。

PHPという言語。

| 0件のコメント

PHPという言語。今までいくつかのプログラム言語を使ってきました。
古くはBASIC、FORTRAN、COBOLという古典に出てきそうな勢いの(あ、これらの現役プログラマ諸氏、失礼)言語も、C言語・Perl、今だとJavaScriptだのActionScriptだのありますね。

今、僕がメインで開発に使っている言語はPHPという言語です。

このPHP、Yahoo! Japanニコニコ動画楽天などのWebシステムでも採用されている言語なんですが、しばしば脆弱性が発見され修正されています。

確かに自分で書いていて「?」という部分はありますが、立派なプログラム言語だと認識してます。

んが。



時折PHPに関する論争、、、主に「PHPはダメ」という火種から燃え上がる論争が起こるわけです。

なんかちょっと前にそんなエントリを書いた気がするんですが、今回また炎上しているようです。
火種はどうやら「あの」Rubyの産みの親である「まつもとゆきひろ」氏のブログエントリ。

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

まつもと氏自身がPHPをどう思おうが、どこに共感しようが、それは自由です。
でも、まつもと氏くらいの方がそこで「=害悪」みたいな断言しちまうのはいかがなものか。
Rubyを作った男Rubyの神みたいな人ですよ。

その神が「PHPはイケてない言語」と神勅を下したら、

「やっぱPHPダメじゃん」=「PHP使ってるやつダメじゃん」=「PHPで書かれたサイト危険じゃん」

って風に、簡単に拡大解釈されていきませんか??

(本人が思っていなくても)権威のある人(法人含)の言葉は、おそらく本人が思っている以上に深く突き刺さったり、予想外の拡大解釈が広まったりしていくわけで、、、、そう考えるとまつもと氏や有名な方々も大変だなぁ、とか思ってみたり。

断言といえば、これは群を抜いてひどい。

IPAという独立行政法人があります。

go.jpドメインを見れば分かるとおり、立派な政府機関です。

そのIPAに「・センター」というコーナーがあり、中に「セキュアプログラミング講座」なるコンテンツがあります。その「Webアプリケーション編・総論 -より良いWebアプリケーション設計のヒント」に、こんな記述があります。

ここで述べるのは、脆弱性が生まれにくいWebアプリケーションを構築するために設計段階、あるいはそれ以前の段階で考慮しておくとよい事項の例である。


開発基盤選定における考慮事項の例
(1) プログラミング言語の選択

1) 例えば、PHPを避ける

短時日で素早くサイトを立ち上げることのみに着目するのであれば、PHPは悪い処理系ではない。しかし、これまで多くの脆弱性を生んできた経緯があり、改善が進んでいるとはいえまだ十分堅固とは言えない。

・・・・・・・・・・・・なんだそりゃ。

「悪い処理系ではない」と言いつつも、「これまで多くの脆弱性を生んできた経緯があり」「まだ十分堅固とは言えない」と締めています。

だったら、

まず避けるべきなのはWindowsとIEじゃねーの?

と思ってしまうわけですよ(笑

試しにこのページのURLを、職場のチームメンバー(Web担当チームです)に送ったところ、、
  • PHPって危ないの?
  • PHP避けたほうがいいんじゃない?
という声が返ってきました。彼/彼女達はプログラマではなくデザイナーやディレクターなので、システム関連に詳しいというわけではないんですが、逆に言うと


政府系機関がこんな風に断言したら素人は完全に信じてしまう


のではないですか??

Yahoo! Japan やニコニコ動画のほか、PHPで書かれた素晴らしいサイトは数多くあります。
それらのサイト全てを脆弱で危険だ、と言ってるのと同じことなのでは??

・・・・・と、まぁここまでつらつら書いてきてふと思ったのが
PHP否定派とPHP否定に反論してる方々のスタンスが若干違うような。

否定してる方々は「○○の戻り値がうんぬんかんぬんなのにここではどうのこうの・・」と言語設計レベルとかの点からPHPをダメ言語としてるように見受けられます。
まぁ、プログラムを趣味の範囲で、少人数でこつこつ書いてるならとことんこだわっていいんじゃない?と思いますが、、、、

反論してる方々。もちろん感情的になってる方もいらっしゃいますが(笑
「厳密な書き方しなくても動いてくれるPHPが楽」「どこででも動くし」「メジャー言語だから引継ぎや保守が楽」
等々、どちらかというと開発の現場というスタンスな方が多いような気がします。

俺も実際に最前線で開発してますので、やっぱり納期が短いとか予算が・・ってなると

  • 「Java」で行きましょう
  • 「Ruby」でやってみましょう
なんて言えません。
慣れていてさくっと書けて、自分の今までの財産・・ライブラリとか簡易フレームワークとかが使えるPHPで、って提案しちゃいますよ。

JavaもRubyも書けるようになりたいとは思ってるんですけどねー。。。これがまたなかなか。

超個人的な結論:
  •  PHPはプログラム言語学から見ればダメダメかもしれないが、現場ではかなり重宝してるよ!
  •  結局、脆弱性は言語より書いてるプログラマが問題になってる方が多い!
  •  状況や内容によって言語って使い分けるのがプロの現場では普通じゃないの??
参考サイト:

コメントを残す