2008年05月22日

PHPは良いのか悪いのか

PHP使い初めてそろそろ7年になろうかというYT@ゼロファクトリーです。
もうそんなになるのか、懐かしい。

PHPはおろか、HTMLもよくわかってなかったころ、PHPの仕事請けまして。フフフ。
ぼくPHPやったことないからよくわかんないっすよ!っていってもYT君ならだいじょぶだろー、というワケのわかんない根拠でOKさせられまして。
3週間で名刺の発注システムを作ったことがあります。
PHPもHTMLもよくわかってないヤツが、WEBマニュアル見ながらなんとか納期内にシステム作れてしまう言語、それがPHPクォリティ。

こないだこんなエントリー見つけまして、ほほぉぅ、と思いながら読んでたのですが。
そろそろPHPに関して一言いっとくか

しかし、PHPではプログラマーがプログラムを続けるための一番のご褒美がほとんどない。それは何かというと「新しい技を覚える」という喜びである。「新しい呪文」ではない。それならいくらでもある。しかし新しい呪文を覚えた所で、心理報酬は大したことがない。単に知識が増えただけだ。PHPを使っても、知識は増えても知恵が増える気がちっともしないのである。

みんながみんなスクラッチビルドでPHPやってるとは思えないですが、まぁある程度までは納得です。
確かにPHPって良い言語とは思えない。
特に他言語には普通に実装されてる機能・概念がPHPにはごっそり抜け落ちてる部分が少なくないです。(例外処理、インターフェイス実装、クロージャ、etc)
だから、デキるプログラマーほど、(ことWEBに絞ったとしても)Perl、Ruby、Java(JSP)、いろいろあるのに、なんでPHP使うの?
となるんだろうなと思います。

PHPはとっつきやすいので初心者向けの言語だ、とよく言われます。
事実、PHPしか書けないプログラマは多いです。
しかし、やはり、とっつきやすい=初心者向けとは思えないのは上記のような理由ですが、他にもType Looseであること、宣言の必要ない変数などに起因するプログラミング的弊害や、逆にハッシュ機能が強力すぎて他の言語を使う必要が生じた時さぞ困るだろうと思うからです。
これからプログラミングを学ぼう!とするひとはゼヒ別の言語でまず「プログラミングの基本」を覚えてほしいし、今PHPしか使えないひとはゼヒ他の言語も覚えて欲しいもの。きっと世界が広がります。

しかしまぁ。。。ぼくはPHPを使うようになって、お仕事をもらったりお金稼いだりしてるわけで、PHPをけなすよりはむしろ褒めたい。
というところで良いところもやはり言及しないと不公平というものです。
そこでPHPをヨイショ、ヨイショと褒め称えようという今回の企画。以下個人的感想です。


なぜPHPを選んだのか
ぼくの場合は、実は「選んだ」わけではなく、仕事もらってるひとから「PHPも憶えてくれ!」と言われたのがきっかけではありますが。
しかし、空いた時間に他のWEB系言語を習得しなかったのは、あんまし魅力を感じなかった、に尽きます。

* Perl→あの独特の「省略の美学」とかいうのは耐えがたかった。
* Ruby→当時はドキュメントがほとんどなかった。
* Java→サーバ環境をJAVA向けに構築できるひとが回りにいなかった。ただしJavaの言語仕様は好きですし、Javaをちょっとかじったおかげで、オブジェクト指向のなんたるかを理解できたのは役に立ちました。

そんな理由で消去法で残ったのがPHPだったというわけ。


豊富な命令群
PHPというのは、組み込み関数の量がハンパないです。通常の言語の10倍以上はあるんじゃないですかね。
各DBマネージメントシステムに対するインターフェイスが豊富にあることは大きなアドバンテージです。

これがない場合の苦労というのはもう実に時間の無駄です。
MYSQL使わなきゃ→MYSQLのインターフェイス入れなきゃ→モジュールインストールしなきゃ→使い方のドキュメント探さなきゃ→あードキュメント全部英語でわかんねぇー!もうODBC接続でいくか→ODBCのインターフェイス探さなきゃ→以下ループ。

も う サ イ ア ク で す 。
PHPを使う上でこういった苦労をしたことのあるプログラマーはたぶんいないです。

組み込み関数を使ってDBへのアクセスを抽象化できればなお良いわけですから、そうした工夫の余地が残されているところもPHPの良いとことです。
そうやってプログラマは成長するわけですからね。


対応する環境が多い
PHPはApacheのモジュールとして動作させる場合が多いので、インストールはけっこう楽です。
今やPHPが入ってないサーバというのはほとんどないんじゃないですかね。
まぁバージョンの違いというのは頭の痛い問題ですが、ぼくの場合はそこで困ったということはあんましないです。


WEBマニュアルが親切
php.netには豊富なWEBマニュアルがあります。
検索機能もすぐれてるし、サンプルもたくさんある。本とか買わなくてすみます。
ドキュメントの見易さというのは、実はかなり重要なファクターだと思ってます。


いかようにも書ける
PHPにはプログラミング規則っぽいものがかなり少ないです。
特に配列に関する処理の寛大さ?は相当なもので、もうどんなデータでも突っ込めるし、参照もできます。
これ一見たいしたことのないように思えて、他の言語ではこんな使い方を許可してるものはまずないです。(C言語にいたっては可変配列すらない)

かなりの無茶ができる!というのはプログラミング初心者にとってはとても危険なのです。
いつまでたってもセオリーを把握できないし、オレオレ流の汚い処理が世に氾濫するのですが、しかし。
経験者には夢がひろがりんぐwwwな可能性を残すのでして。
いかに美しく簡潔にシステムを構築するか、という部分を深く考察できればプログラマーとしての成長が見込めるというわけ。
汚くなる部分は限りないけど、美しくしようと思えばどこまでも美しくなれる言語、それがPHPですよ、そこのアナタ。
「じゃじゃ馬ならし」のような快感が味わえるはず。(だといいね!)


ということで、まぁいいところはまだあるんですが、長いし疲れたのでこのへんで。
個人的には食える技術を、たいして苦労もなくもたらしてくれた、PHP+WEBページデザインには感謝するところ大!です。(・∀・)

Posted by YT@ゼロファクトリー : 5/22 | コメント (0)

コメントする





スタッフブログについて

ホームページ制作会社
福岡のゼロファクトリー

で働くwebデザイナー・プログラマーと、そのによるスタッフブログです。

カテゴリー

アーカイブ

最近のエントリー

最近のコメント

リンク集

スタッフ作品集

求人採用情報

検索フォーム