- 公開日
PHPって言うほど悪い言語じゃない
※ただしPHP5.3以降に限る。
PHPってよく「PHP(笑)」って後ろに笑マークが付いたり、Disられたりすることが多い。でも僕には「笑」を付けるほどPHPは悪い言語だとは思えないんだよね。
PHPの良いところ
PHPの良さはなんといってもそのとっつきやすさだと思う。何も知らない初学者が「WEBページ作りたいよ!WEBプログラミングしたいよ!」といったときに第一の選択肢となるのはPHPだ。なんせPHPは「ぴーえっちぴー:はいぱーてきすとぷろせっさー」なんだからな! HyperText作るための言語、それこそPHPの本質たるところなのです。
逆にその手軽さがイケてないコードを量産していてるとも言えて、結果的にそうやって生まれたイケてないコードのいくつかを見て「PHPはダメ言語」って判断してしまいがちだけど、それは早急だと思う1。
またPHPの公式リファレンスは他のどの言語よりも情報が充実していると思う。簡潔な良いコード例がたくさん載ってるし、PHPのバージョン情報も明記されている。PHPは日本語情報もたくさんあるので困ったときに日本語で検索して情報も出やすい。
PHPの悪いところ
とはいえ、PHPは関数が直感に反していていたり、引数が覚えにくかったり、まぁイケてないところはたくさんある。それは認めよう。
ただ近年のPHP動向とか知ってる? けっこう凄いんだぜ?
近年のPHPの進化
Composerで外部ライブラリのインストール、依存関係管理できる。フレームワークもMVCなSymfony,CakePHP,FuelPHPから、SinatraライクのMicroフレームワークなSlim,Silexだってある。CakePHPなんかは日本で人気が高く日本語情報がネットに沢山あってググりやすい。Laravelなんかは今グングン成長している注目株のMVCフレームワークだ。PHPUnitでテストも書ける。PHPUnitの書き方がイケてない? ならモダンなatoumもある。PHPは遅い? だったらThe fastest PHP Framework, Phalconという選択肢も今ならある。
PHPのコードは汚い?
正直5.2以前はけっこう汚いコードが多いと思う。PHP4の書き方の名残があるコードなんて最低だ。ただPHP5.3以降は綺麗に書けるようになってきてる。
PHP5.3以降からは名前空間がサポートされて、これとComposerのAutoloadの機能を使えばrequire
地獄から解放される。他にも5.3では無名関数がサポートされた。
PHP5.4からは新しいショートArrayシンタックスが追加されてかつてのarray
書きまくり地獄からは解放されそうだし、Traitの導入によりRubyのMix-inみたいなことも可能になった。
PHP5.5ではジェネレータの機能によりyield
キーワードが使えるようになったり、finally
節も追加される(この辺は今更感ありまくりだけど)。
シンタックスとか言語特性上限界がありますけど(PHPは言語特性上、クソコードが書きやすい)、Rubyでもきっとクソなコード書く人はクソなコードを書くだろうし、Ruby on Railsでもレールの乗り方を無視してクソみたいなコードを書く奴もいるだろう。クソコードはPHPに限った話じゃないぜ。
PHPがWEBを作っている!
Googleが無縁であるはずのPHPをGoogle App Engineの言語の一つとして採用したのはなぜか? PHPがWEBの75%を作っている、とGoogleが判断したからだ。
世界で一番使われているCMSはなにか? WordPressだ。WordPressはPHPで作られている2。
世界最大のSNS、Facebookで使われている言語はなにか? PHPだ。さらに彼らはHipHopというPHPから C++への変換するソフトを作るというかなり頭のイカれたことをやっていたり、Hackという型付のPHP方言を使用していたりするらしい。Facebook、お前のPHP愛が怖い3。
PHPを笑うな
「PHP(笑)」って言っている人がどれだけ上記のような状況を知った上で笑っているのだろうか。僕は上記の状況を鑑みるにもうPHPに「笑」なんて付けることはできない。むしろ軽率に付けててゴメン、とおもった。
正直自分も今まで、PHPの後ろに「笑」が付いていた。技術ブログ界隈でPHPがよくDisられたりするのを見聞きしてたから僕も知らず知らずのうちにPHPをネタにしてたんだ。でも冷静に考えるとその当時、PHPの良さなんて何も知らなかったのだ。
なんか見たことある光景?
この光景、デジャヴじゃね?とも思った。
JavaScriptだってAJAX技術の台頭で持て囃される以前は言語として見放されていた。それがAJAX以降どうだ。どんどん便利なライブラリが誕生し、JSを使ったリッチなUIの提供は当たり前となった。そしてNodeの登場以降は全世界の優秀なエンジニアたちがそのテクノロジーの可能性にこぞって注目した。AltJSの勢いも強まっている。
PHPはさすがにJSまでの再評価までいかなくとも、少なくともWEB言語の第一位の座に居座り続けてもいいのではないかと思う(そして今後のPHPの進化にも期待したい)。
最後に
「PHP(笑)」の時代は終わりを告げた。ぼくはPHPは悪い言語だとは思わないし、お世辞にもすごく良い言語とも言うことはできない。ただ<侮れない言語>であると思うのです。
PHPはPerlほど真面目じゃないし、Pythonほどスマートじゃないし、Rubyほど垢抜けてないし、JavaScriptほど流行に敏感じゃないけど、そんなPHPが、僕は嫌いじゃない。
http://t.co/oYy20r6aYU 「ぼくの経験上、一番PHPをバカにし、言語の重要性をうそぶく連中は、大体自分たちが提唱する言語でもロクな仕事ができないことが多い」。これはわからないけれど、自分の経験から語ると、優秀なエンジニアだなと思う人ほどPHPを評価している感じ
— 紀平 拓男(Takuo Kihira) (@tkihira) September 30, 2013