新しいblogに移行しました

新ブログ "All Yout Bugs Are Belong To Ass" に移行しました!

2008-02-01

[PHP]PHP Attack という話

rubyでおなじみのMatz氏のブログで、Attacking PHPなる記事が引用されている。

要するにPHPはダメな子だと言っているわけだ。
IT業界に入って最初に習得した言語がPHPであるオイラから見ても、実に的確なツッコミであると思える。

んじゃ、例えばPerlならこのツッコミにどう対応しているんだろ?
PHPの反論?も交え、両者?にコメントしていただきましょう。

> * いろんなものがfalseだったりするせいで、新たな比較演算子「===」が必要
PHP:明示的に型比較できるんだよ?いいじゃないよー!
Perl:型比較ならref()でおk。こういうところこそ関数で片付けなよ。

> * hashやlistがobjectが区別できない
PHP:foreachがしっかりしてるから、区別する必要自体ないんだから。ていうか、いちいち区別すること自体面倒じゃないのよー!
Perl:やっぱりref()でおk。でもsigilがころころ変わるのはちょっとだるいか。。。

> * オブジェクト指向機能が壊れている
PHP:何を指して壊れてるって言ってんのよー!ていうか、PHP6で良くするから勘弁してー><
Perl:一応真っ当なOOですが。権限設定機能無いのはご愛嬌><

> * lambda(無名関数)がない。create_functionはlambdaじゃない
PHP:必要なら別途ファンクション切って、それをコールすれば良いじゃない。
Perl:sub {}; でおk。てかPHP、お前なんでそんな面倒な事強要するんだよ。。。

> * short_open_tagsやらsafe_modeやらregister_globalsがonになってるかもしれない
PHP:onじゃないと使えない機能とかあるんだから、仕方ないじゃない!
Perl:そんな環境設定無いが、何か?それにしてもPHP、その格好はどうにかならんのか。目のやり場に困る。。。

> * 一貫性のない名前(str_replace,strlen,parse_strとか)
PHP:そっ、そこはらめぇ
Perl:お前涙目wwwwww

> * 引数の順番がわかりにくい(in_arrayとかstrposとか)
PHP:ちょっとー!個人の主観だけで文句いわないでよー!ちゃんと統一すべきところはしてるつもりなんだからー!in_arrayとstrstrは同じような順番で受け付けてるじゃないのよ!
Perl:まあ、こいつはポリシーとかその辺の問題じゃないか?目くじら立て過ぎだろ。

> * strpos('abcd','a')は0を返すが、0は偽である
PHP:そんなこと言うなら、=== 使えばいいじゃない!ホラ、つかいなさいよ!
Perl:indexとか、俺涙目;;ref()マンセー!!

> * PHPで書かれたたくさんのアプリがあるがどれもHTMLとロジックが分離されてない(本当?)
PHP:それは書き手が悪いのよ!アタシのせいじゃないんだから!
Perl:ある意味、これは俺も同じ問題抱えてるかもな。。。

> * 「PHPは初心者に学びやすい」と言われる。確かにそうかもしれないが、 おかげでどれだけのSQLインジェクションやらXSS脆弱性やら、 ひどいコードが放置されていることか
PHP:だーかーらー!アタシのせいじゃないんだってばー!
Perl:そうでもないんじゃないか?まあ、書き手にも問題はあるんだけどな。

* グローバル。使うんじゃないってば。
PHP:だめ〜?
Perl:だめだっての!

0 件のコメント: