なぜか? メインストリームにあまりにジャンクが多いからだ

MTIxNDI3Mjk1MjEyMjQyNDQ1

今月頭頃にPHPの勉強を始めた時、編集者や知り合いと目標を目指して燃えていた。

しかしながら技術に詳しい人からの反応は常に「アレのどこがいいの?」というものばかりだった。
PHP、かつてパーソナルホームページの略であるとされ、その名前から元々シンプルかつカスタマイズが容易なWebサイトを作るために生まれてきたこの言語では、Webページにインタラクティブな要素を盛り込むことができる。

サイト上でPHPを用いることで、ページを静的なものから、投稿するとすぐにそれが反映されるBlogの様に動的なものにすることが出来る。

私がPHPに興味を持った最初の理由はこれだ。Blog構築で人気のプラットフォームであるWordPressは、Blogの見た目や機能をカスタマイズするためのテーマエンジンにPHPを用いているため、もしPHPを使えるのであれば、Blogのかなり細かいところまでいじることが出来る。

PHPは今ではPHPハイパーテキストプロセッサの略とされている。Webの様々なところで深く浸透している事もあり、私達のような人間はマスターしないといけないと思ってしまう。

PHPの緩やかな没落

PHPは1994年頃世に出てきた。その頃、PHPはまさに最初の容易かつ、無料で動的HTMLページを書くことが出来るスクリプト言語だった。MySQLの様な膨大な人気を誇るDBとの統合も容易であったことから、サイトの管理者にとっても、学習障壁が低いにもかかわらず必要なことは全て行えた。

PHPはマーク・ザッカバーグの登場で人気のピークを迎える。彼がまだハーバード大の寮にいた2004年頃、Facebookを制作するのにPHPを選んだ。この人気サイトが書かれたことにより、PHPは大きくブレイクした。

またザッカバーグと彼の企業がHackと名付けた言語に鞍替えした時も、技術者たちの中には「PHPはこうあるべきと言える言語」と評した。

今日、PHPの最盛期は過ぎた。就活サイトのIndeed.comによると、PHPのオファー数は2011年にピークを迎えた後、下降線をたどっている。

何が起こったのだろうか? PythonやRubyといった代替手段がある中で、PHPは人々のお気に入りで無くなってしまったのだ。

「PHPは時間と共に成長してきた」と開発者であるトム・ムーアはTwitterで答えた。「他の言語と比べると、PHPには多くの整合性が取れていない部分がある。例えばあるメソッド名はアンダーバーがあるが、あるメソッド名には無いなどだ。また関数の中には他と異なる順番で引数を取るものもある。基本的に当て推量のようなものだ」

PHPは素晴らしいとは言えないその出だしから言っても、とりわけややこしい部分がある。PythonやRubyが最初から関数型言語としてスタートを切ったのに対し、PHPは元々HTMLテンプレートを自動生成するためにデザインされたものであり、それが後ほど言語となったものだ。機能を後乗せした為、ムーアが「整合性が取れていない」部分が多く存在することとなった。

ネット上にはPHPの奇怪な面を綴る小さな集まりがあり、PHPWTF、PHP Sadness、PHP Turtleといった幾つかのサイトではPHP開発にまつわる事をジャンル別に挙げている。

エヴィ―という技術者は、PHPに対する不満について書いた。 これは引き合いに出される事も多く、有志によってスペイン語にも翻訳されている。2012年の公開以来、2000件以上のコメントが寄せられている。以下はその一例。

例えば何らかの道具箱があったとする。その中にあるものはどうにも気分の悪いものだが、だからといって全部捨ててしまうほどの事でもない。(個別はともかく)全体的に明らかにダメだと断言できる訳でもなく、ただ必要なツールだけはとりあえず揃っている、といった状況を想像して欲しい。

加えて彼らはPHPの支持者たちに対して「管理ができてない」と酷評する。ここでいう管理とは、オープンソースでのプロジェクト管理のクオリティと、コミュニティに対する反応性についてである。

(あのJavaより遅い)PHPがどの様にスピードアップされるのかをインタビューで聞かれた時、ラスマス・ラードフは単に「無理」とだけ答えた。(彼は私がコメントを求めていた件についても、PHPにまつわる他の批判についても回答していない)

PHPは死んだ、PHP万歳

PHPを憎む人々に言っておくが、世の中にはPHPの熱心な信者もいる。

その学習障壁の低さとここ10年の普及率により、PHPは相当数のプログラマにとっての第一言語となっている。エレガントな言語ではないが、それでもビギナーにとって効率のいい言語である。名前を明かさないでと言われているのだが、私の友達がネットでのPHPに関するディベート(他にいい言葉が思いつかないが、鼻持ちならない態度で人を小馬鹿にしたようなやり取りのことだ)に参加した際、次のようなコメントが目を引いたという。

【プログラマ】
新人を身内の和に入れることを嫌い、ベテランを望む。PHPは父母親兄弟をプログラミングの世界に招き、コーディングの多くをコピペに頼る者を大量に生み出す。PHPと比べたら他の言語はどれも最上のものとさえ思える。.NETやPython、Rubyを知らないとしたら、それはとても格好悪いことだ。

Redditの「なぜ皆PHPを嫌うのか」ではleashlawに対して様々な問い掛けがあった。
彼がパネルディスカッションでPHPで書いた自分のコードを披露すると、仲間のパネリストから哀れみの目で見られるという。

Redditのユーザーのleashlawに対する扱いの根源にあるものの一つに「エリート主義」がある。

彼らが言うにPHPの最大の問題とは、まだサイトで古いコードが動いており、これの面倒を見なければならない開発者がフラストレーションを抱えているということだ。PHPが初心者でも習得しやすい言語であるということは、世にある多くのWebサイトは初歩的なミスを山ほど抱えているという状態でもあるということだ。

「そういった状況も少しずつマシにはなってきている」というRedditでの発言もある。

この件の解決方法として、コードを最新のPHPで動くようにアップデートすると事が考えられる。しかしこれは簡単なことではない。3バージョンあるPHPにそれぞれ互換性はなく、古いバージョンのものを入れ替えるのは恐ろしく時間がかかる。PHPのバージョンを4から5に替えるのに、およそ三年ほど掛かることもあるという。

状況は良くなってきている。「PHPは死んでない」では、Drupalの開発者でブロガーのデイビッド・コルバチョは2013年までにPHPを利用しているサイトの96%はバージョン5で動くようになったという。

WordPressは今のところPHPとベッタリの様なので、私はまだジェシ・フリードマンの本でWordPressの勉強を進めている所だ。

PHPが小さいながらも忠実なファンを抱えていることは明らかだ。また彼らの多くは何か簡単に実装できるものを求めており、実装の汚さ等については気にかけない初心者達だ。

そういうわけで、PHPを学ぶことは自分にとっては有益であり、Webサイトを構築するのに役に立つものだ。しかしPHPに関して新しい知識を身につけた所で、それが非常に役立つものになるとは思っていない。

トップ画像提供:Manuel Baldassarri

Lauren Orsini
[原文]