雑念ベースは http://blog.yoshitomo.org/ に移転しました。ここはリンクや画像などのために残っているのみで、更新はされません。

« 漂流伝説クリスタニア(2) | メイン | 漂流伝説 クリスタニア〈3〉 »

Perl と PHP [コンピューター]

 ウェブアプリケーションが大量に使われるようになりました。そして、その開発にはさまざまなプログラム言語が使われています。

 企業による開発では、マイクロソフトの ASP やマイクロソフトの Java が人気のようです。また、個人レベルでは Perl が人気です。
 Perl は日本での商業インターネットが始まったころから、掲示板やチャットなどの開発に使われてきました。あまりに使われることが多いためか、CGI = Perl という勘違いも(CGI は通信の仕組みであって、言語は Perl 以外でも可能です)生まれています。

 最近は PHP という言語も人気です。Yahoo! のシステム(の、一部?)は PHP で開発されているとか。
 PHP の総本山のグラフによれば、5年ほど前から使用件数も増え続けています。レンタルホスティングサービスであれば、無料のところでも多くのところで使うことが出来ます。

 さて、Perl と PHP はよく似ています。似たような関数もたくさんありますし、似たような機能も多いです。しかし、似て非なるものといいますか。実際使ってみるとその違いは小さくありません。私は Perl を何年も使ってから PHP を使い始めたのですが、はじめは違いが気持ち悪く感じられました。慣れるまではかなり辛かったです。

 この違いはどこから来るのでしょうか。私は、設計思想の違いからきていると感じています。

 Perl は、必要最低限の機能を持ち、足りなければ工夫次第で補えるようになっています。配列の並べ替えをする sort という組み込み関数がありますが、文字コード順に並べ替えることしか出来ません。他の方法を使いたい場合は、アルゴリズムを記述したユーザー関数やブロックを使うことになります。
 これに対して、PHP には複数の並び替え関数があります。基本的なパターンは組み込み関数で事足りるでしょう。その代わり、独自のアルゴリズムを使う場合はユーザー関数の定義が必須となります。ブロックは使えません。

 この例えが相応しいかどうかわかりませんが、Perl はシンプルな機能を創意工夫で組み合わせて使う UNIX、PHP は便利な機能が満載だけど複雑なことをするときに面倒な Windows ではないでしょうか。
 実際、PHP を使っていると「何でこういうことが出来ないんだよ」と感じることが多々あります。経験不足なだけかもしれませんが、少なくとも Perl であれば実現可能であることが多いのです。

 最新の PHP は 5.x となりました。現在主流の 4.x とはかなり変わったようです。また、Perl も次期バージョンの 6.x の開発が進められています。こちらも劇的な変化があるようです。
 長い歴史を持つ Perl と、新たな人気言語 PHP。どのように変わっていくか楽しみな言語です。