PHPのルーズさが好きだったBASIC世代

PHPというスクリプト言語はまっとうなエンジニアには嫌われまくっていると思う。なんというか増改築を繰り返した感じでスッキリした構造になってないし、なにかと脆弱性があったりする。だけどなんというか好きなんだよなあ。

 

Webでの動的コンテンツを作る方法は今ではいっぱいあるけど、その昔フォームの記述を受け取って結果を表示するだけでもかなり面倒だった。CGIという単語が流行しだした頃、それを実現するための言語としてPerlが雑誌などでよく取り上げられてた。レンタルサーバでちょっとイカしたところはPerlをインストールしてあって利用できた。でもPerlの登場はWeb以前なので、CGIを書くためにはCGI.pmを使ったり、結構めんどうな工夫が必要だった。

 

それに対し、PHPは語源が「Personal Homepage Tools」ってくらいで、当初からWeb用言語だった。普及しだしたのは3.0から4.0あたりだと思うが、この時の正式名称は「PHP: HyperText Preprocessor」である。

 

Perlに比べてなにがすごかったか。CGIが受け取るパラメータ。フォームの名前やその内容みたいなものを、特にライブラリなんか使わなくても、何の操作もしなくても、フォームの名前と同じ名前の変数でアクセスできたのである(スーパーグローバル)。今は非推奨を経て禁止された機能であるが、便利なことはめちゃくちゃ便利だった。とにかく「これできたら便利だよな」的な機能が言語の中に入りまくってた。画像ファイルの縦横ピクセル数を取得する関数とか、GDを言語自体に組み込んでしまって画像の生成、拡縮、出力、フォントのレンダリングまで外部ライブラリ使わずにできてしまう。まさに昔の8ビットパソコン時代のBASICみたいな言語だと思ったものである。なんとなくマニュアル検索して「こういうのできるかな」と思うとできる。その場でちょいちょいコード書いて動かす。こういうきわめてルーズな感覚が楽しかった。

 

まあ、手軽に便利になんでもできちゃうと、きれいなコード書かなくてもなんとかなるところから、ダメなコードを書く人も多かっただろうし、また、セキュリティ的にもアレなので、結果的に前述のスーパーグローバルみたいな機能は徐々に潰されてきたし、仕様も大きくなってるのでもはやそんなにお手軽でルーズな言語でもないのだけど、ブログやCMSを記述する言語として、当初もてはやされたPerlから覇権を奪った要因はそういう「ルーズになんでもできた」ところに一つの原因があったりするのではないかと思ったりする。