2008年02月10日(日) [過去の今日]
#1 PHPの本当の利点
PHPが嫌われる本当の理由。 という記事。
たぶんネタだと思うし真に受ける人もいないとは思うんだけど、一応。
PHPは別に他の言語やプログラミング理論の価値を引き下げたりはしないし、既存のものがPHPに置き換えられるなんてことは絶対あり得ない(一部ではあるだろうけど)。
まるで時代がPHPを向いてるかのような思い込みがもしあるんだとしたら、それは思いっきり勘違いしてる。そんなことは絶対ありえない。
なんでかって、PHPは元々Perlから派生したものだし、Perlの悪いところをおもいっきりひきずってるから。
まあ別に議論しようってんじゃないからこれについては深くは触れない。
ただね、PHPを擁護したいなら、PHPの本当の利点や美点をあげようよ、と思うんだよな。
実を言うと俺はPHPは決して嫌いではない。むしろ積極的に使うことがあるくらいだ。
それはもちろん、そうするメリットがあるからだ。
@ 美点1 標準ライブラリの充実:
コンパイルオプションなりで明示しないと入らないものも多いので「標準」と言うにはちょっと気が引けるけど、基本的にそれらが全部入ってるとみなして書いていいというのは実に心強い。
各種DBから日付処理、ネットワーク関連に至るまで、一通りの関数がぞろりと揃っている。そのほとんどがそこらの300円とかで借りれるレンタルサーバにすらしっかり入っている。
PerlみたいにCPANの依存関係で「いつになったら全部入るんだよ!!」みたいなこともない。
とりあえず使える手札が揃ってるというのは本当に心強い。
@ 美点2 ドキュメントの充実:
初心者向けかどうかは、実はここで決まるんじゃないか。
PHPのマニュアル を見ると、これが本当に素晴しいものだということがわかる。
入門・チュートリアルから、各種関数リファレンスまで全部ひとつところに納まっている。しかもほとんどの関数には例文まで載っている。
実はこの例文というのが初心者にとっては非常に重要。ドキュメントに書いてあることだけじゃ、どう書いていいのかわからない事もけっこう多いものなのだ。
そういうときとりあえず「正しい書き方」の例が載ってて、書き写して実行してためせるっていうのは、初心者には実にありがたい。俺もずいぶん助けられた。
正直いってPHPの最大の美点はここだと思う。このドキュメントの充実っぷりは他の追従を許さない。
@ 美点3 ある意味では速い:
よくPHPは速いと言われる事があるのだが、実を言うともの凄く遅い。単純ループでもある程度の回数を回してやるとPerl/CGIのほうが高スコアが出たりする。
この遅さはコマンドラインで比較するとすぐわかる。
$ time php -r 'for($i = 0; $i < 1000000; $i++) { print "$i\n"; }' >/dev/null real 3.23 user 2.40 sys 0.33 $ time perl -e 'for($i = 0; $i < 1000000; $i++) { print "$i\n"; }' >/dev/null real 0.92 user 0.78 sys 0.01
しかし、apacheを経由すると事前にコンパイルされているせいか、けっこう速い。しかもmod_perlなどと違ってファイルが更新されてもウェブサーバを再起動せずに反映してくれる。
レンタルサーバなんぞに置くときは非常に重宝する。
@ まとめ:
PHPは確かに言語仕様的にも処理系の性能や信頼性にも難があると俺も思う。実際バージョン差で挙動が変わって頭を悩ませた事もある。
しかしレンタルサーバに比較的小規模な動的ページを設置するのに、PHPほど向いた処理系を備えた言語も無い。
そして初学者に学びやすいドキュメント、環境が揃っている。レンタルサーバならインストールに手間取る事もない。
たとえていうなら「二本目のナイフ」として備えていてもいい言語だし、「一本目のナイフ」としても、若干怪我しやすいというのはあるにせよ、とっかかりを掴みやすい。
決してPHPは「悪い言語」じゃあない。使いようによっては大活躍してくれる大きな武器でもある。
「言語」として初心者向けかと言われれば、むしろドラクエのごとく「ちゃんと出来る」までエラーを出してくれるRubyのほうがいいのかもしれないが、ドキュメントの充実等まで考えればPHPが一歩リードしてるんじゃないか?
なによりレンタルサーバとの相性がいい。作って公開するコストが一番安いのはPHPだろう。
ただ、「PHPしか使えない人」というのはいただけないと思う。他のどんな言語でもそうだと思うけど、その言語だけにこだわり続けるのは決してよろしくない。
違う言語に触れることで自分のホームグラウンドの言語の特徴も見えて来るし、プログラミングのやり方もけっこう変わる。PHPをよりよく書くためにも、PerlやRubyにも触れておいたほうがいいと、俺は思う。
(@524)