先日書いた「PHPがダメ言語の理由」というのは、一般的に言われていることとは異なると思います。巷では「ここの言語仕様がダメ」「あそこの言語仕様がダメ」と、様々な方々が指摘するのでしょうけれども、本質的な問題はそこでは無いように思うのです。
別にどんなヒドイ時代遅れの仕様の言語であっても構わないのです。ごく一部の方々が少々使う限りにおいては。あるいは、その言語の分をわきまえた使い方であるなら。こちらに迷惑がかかるということもありませんから。
問題の本質はこういった「簡単な」言語でヘタクソなプログラムが量産されていることです。しかも、有名ネットショップに似たユーザインターフェースを無理やり作ってみたりします。そして、改修したり機能拡張するのが極めて困難なめちゃくちゃなものであっても、ユーザの方はそれを望むことです。
こういうヒドイプログラムの改修仕事にあたると本当に悲惨ですね。修正や機能拡張するより、初めから書き直した方が早いというのはよくあること、というよりほとんどすべてがそのようなケースと言っても過言ではありません。
さて、こういった状況に拍車をかけているのが、極めて日本的な「工数ビジネス」です。もちろんこれは日本のみの事情かどうかわからないのですが、おそらく日本で著しいのは間違いないところではないでしょうか。
一般的には、エンジニアを派遣する際の「時間単価」の話ですが、ここではプログラム行数の話です。
作成されるプログラムの行数が多ければ多いほど儲かるのです。そのプログラムが何のためのものなのか、あるいはプログラム自体の優劣などは全く関係ありません。とにかく量が多ければお金になります。要するにグラムいくらの世界です。おそるべきことに、質や味は全く無関係なのです。
この種の話はプログラムに限らずあることですね。学生はWikipediaをコピペしてレポートを提出し、同じく役人はWikipediaをコピペして何千万(億でしたっけ?)の仕事をでっちあげる。
同様に、プログラマも「同じようなことをするプログラムがどこかにあったなー」と、その部分からコピーして少しだけ変更し、仕事にします。工数ビジネスの元では、こうすると行数が増えるので儲かりますね。
これは作る方も楽なんです。同じようなことをするプログラムをコピーしてきてちょっとだけ変更するというのは。
プログラミングにおいて、共通の処理や概念を一箇所にまとめて一元管理する、ということはとても難しいのです。同じことをするプログラムであれば、短くする方が難しくなります。そしてそもそも、何が共通であるか、どのような共通概念が存在するのかを発見することには熟練が必要となります。
当然ですね。同じ性能のパソコンであれば、より小さい方が高いに決まってます。小さくするのは難しいのです。工数ビジネス業界では、この程度の常識も通じません。
これができない方はコピーして変更するしかありませんし、その方が楽で儲かります。かくして、ヘタクソで行数だけ多くブヨブヨと太ったプログラムが量産されていくという寸法です。
ずいぶんPHPから話が遠ざかってしまいましたが、PHPの弊害というのは単にその言語仕様という話ではありません。これは話を矮小化した、木を見て森を見ない議論です。
現代では、ありとあらゆる人間活動にソフトウェアが関わるようになってしまいました。しかし、そのほとんどの部分は熟練度の極めて低い方々が作成したものであり、将来的な機能拡張に耐えられるものでは決してありません。結局は描き直さなければならないのです。