PHPってのは大層人気がある言語だ。最近よく聞かれるキーワードであるLAMP、
の末尾のPはもはやPerlでなくPHPを指すことの方が多いようだ。
しかし、言語屋あるいは言語設計者の目から見ると、なぜこの言語が人気があるのかがわからない。 しかし、なにが原因でないかは分かる。
言語仕様ではない
PHPの言語仕様ってのはCに似てるってのはよく言われるけど、 実際にはPerlをより悪くしたような仕様だ。 この言語仕様が優れているからPHPを使うって人がいたら、その人は変人だ。
性能ではない
最近になって性能はずいぶん向上したみたいだけど、ながらくPHPの性能はひどいものだった。 しかし、性能がひどい頃からそれなりに人気があったと思う。 ということは、性能が良いからPHPが選ばれたわけではない。
となると考えられるのは以下のふたつだ。
ライブラリ
PHPの添付ライブラリは盛り沢山だ。 もしかしたら、インストールしたら欲しいものが全部あるっていうのは人気の原因かもしれない。 しかし、このライブラリのできが良いかというと、 かならずしもそうではないようだ。たとえばデータベース関係のライブラリの仕様はばらばらな上に、 DBI相当も存在しない。もっともPEARっていうライブラリ集ががんばっているらしい。
コミュニティ
いや、PHPコミュニティについてはなにも知らないのだけど、 コミュニティは言語の魅力の重要な要素である。 もしかしたら、PHPコミュニティは素晴らしいのかも知れない。
というわけで、引き続き「PHPの魅力」については研究の余地があると考えている。
This work is licensed under a Creative Commons License.
私はPHPを使っていないので見当違いの指摘になってしまうかもしれませんが、<br>PHPが言語として「HTMLに埋め込める」ということを前面に出している点は<br>大きな魅力になっているのではないかと思います。<br>もちろんRubyでもerubyとかで似たようなことは出来ますが、<br>Rubyを知っていてもerubyを知らない人はたくさんいるでしょう。
CGIとして使うのに特化されているのと、<br>オブジェクト指向では無いところではないか、と思います。
「Perlじゃないから」
総本山のSiteにあるOnline Documentの質が良いことを絶賛している声を聞いたことがあります。真偽のほどは定かではありませんが…
言語を使うという感覚ではなく「色々なデータを引っ張ってくるWebページを作りたい」からPHPを使っているだけ、なのではないかと。目的が即物的なので、言語としての魅力云々など視野にない方が多いのでは。
私の場合PHPを使う切っ掛けになったのは、3年前にとあるバイトでwebとDBを組み合わせた大学の講義要目の編集システムの構築を一人で請け負う羽目になってしまった事です。その際、何を使うかいろいろ探したのですが、結局PHP以上に手軽に使える選択肢を見付ける事が出きませんでした。何が良かったかと言うと、記述のし易さ(ASPのようにHTMLへ埋め込めるのが楽でした)、Cライクな構文規則と可読性(最も慣れている言語に似ていたので移行が楽でした)、マニュアルの充実(日本語化された、ほぼ完璧なマニュアルにはTutorial〜リファレンスまでカバーされており参考書の必要が全くありませんでした)、Apacheモジュールによるパフォーマンスの良さ(そういう評判でした)、豊富な標準ライブラリ+i18nパッチの存在、DB(この時使ったのはPostgreSQL)呼出しの標準サポート、導入の容易さ(特にUNIX系ならだいたいどこでもビルドできる点)、プラットフォーム依存性の低さ(請け負った時点では運用時にLinux,FreeBSD,Soralis,それ以外,の何を使わせてもらえるのかさえ決っていませんでした。このためJSPでは難がありました)、等々です。実を言うと DB も web アプリも始めての経験のだった上、限られた時間で独力でなんとか出きてしまったのはPHPの手軽さのおかげであった事は疑いようもありません。
Perlがglueとして受けたように、PHPはCGIとHTMLを初めて(?)glueしたから急速に受け入れられたのではないでしょうか。アメリカで敵なしのeBayが日本でYahooにやられちゃったみたいに、一番最初に穴にはまったヤツが結局一番になるという。
PHPはHTMLコードとファイルの管理をサーバーサイドで行ってくれることに特化していると思います。<br>ステージファイルを作って引数で表示要素を呼び出すところはFlashでウェブサイトを構築することに似ていると思います。ということで、よりデザイン志向なプログラマにオススメなPHPは、よりデザイナーライクな言語だと思います。
(素人視点的発言↓)<br>PHPからRubyに乗り換え計っていますが気になる点↓。<br><br>PHPは マニュアルのどの部分にも必ず サンブル文がついていてこれが凄い!! マニュアルはサンプル文だけあればよい!! それ以外は理解不能な私です。小さく小分けされたマニュアルで たどり着きやすい それに比べてRubyは だらーと長いひとつのファイルに 羅列されているだけです。これもいいのですが 全ては サンプル文が すべてという価値に 集約されるので PHPのスタイルになるしか ない!。「マニュアルは サンプル文が全て」ということは よりオブジェクトな価値だと思います。より現実優先ということで。<br><br>PHPの新版は関数だけでなくデータベースそのものまで組み込み?とかこれは素人として凄い事!と思います。まだ私はMySQLをRubyから動かすことができません。WEBの何処を捜しても私に わかるようには書いてないものばかりです。サンプル文がありません。<br><br>↑から PHPはすごいセンスを持ったグループが管理している言語だと思います。<br>そのセンスによって これから先 どんと興隆するのでは。<br><br>Rubyは楽しくてわかりやすい?と思いますが オブジェクト化言語というのは サンプル文を抱合している言語 歴史を抱合している言語と いう意味で価値があるのでは?。<br>その点で メソッド毎にサンプル文入れたマニュアルは オブジェクト化されたマニュアルです(笑)。<br><br>将来は マニュアルが一番 決定的な意味 重要さを 新しいアイデアを 持つ言語が<br>できることを祈ります。こういう価値によれば RubyよりPHPのほうがよりオブジェクト化された言語です。構文 文法は 将来似通って来て マニュアルがいかに斬新か 新しい革新的思考が注入されているかに なって来ると思います(笑)。<br><br>ついでに↓<br>使い方がわからないのでまちがっているかもしれませんが、<br>エラーメッセージは Perlが一番わかりやすい その次がPHPで その次がRubyだと思いますが、設定が悪いのでしょうか?。<br><br>どうも↓で失礼しました _o_<br>(素人視点的発言↑)