TOP > プログラマ2.0日報 > Perlはもう終り?

あすなろBlogger

このエントリーを含むはてなブックマーク このエントリーをはてなブックマークに追加 この記事をクリップ! livedoorclip ユーザー数 BuzzurlにブックマークBuzzurlにブックマーク

Perlはもう終り?

2009.01.19

というのはですね、私が使ってるサーバで事故があって、いろいろとサイトを再構築していたのですが、私のことですから、

自分が で書いた古い CGI が大量にあって....

というわけで、完全復旧なんてできないかも?ともなってます。で、古いCGIを復旧するためには、当然、

CPAN からライブラリを取ってきて、入れなおす

ことが必要になります。結構盛んにCPANライブラリを使って書いてましたからね....で、です。そこで気がつくのですが、

あれ....CPAN ライブラリのバージョン更新があまり進んでない.....

ということなんですね。たとえば、用途から考えて、現役でちゃんとメンテされているに決まっている XML::RSS あたりを基準に考えると、

 2009年:2、2008年:8、2007年:1、2006年:4

というくらいの更新があります(要するについさっきも更新があった、くらいの頻度)。それに対して、XML:RSS が要求する XMLパッケージの基盤ライブラリである XML::Parser で、最終更新が 2007年11月ですし、SHA アルゴリズムを使うメッセージダイジェスタ実装の Digest::SHA だと、

2008年:2、2007年:1、2006年:8、2005年:4

と、2006年くらいにピークがある、という格好になっています。

一番盛んに私がいろいろPerlで書いていたのは、世紀末から3年くらい前(1998年くらい~2005年くらいまで)で、当時 Perl も CPAN で盛んにいろいろなライブラリが開発されていました。しかし、その頃から比較して、あまり CPAN ライブラリの「状態」が変わってないのです。まあ、勿論全部調べたわけではない(デフォルトでパッケージに入るLWPなんかは勿論今でも盛んに更新されてます)ですし、印象に過ぎない、といえばその通りですが、

Perl(CPAN)に対する注目が、このところ相対的に低下している

のが数字で出てきているように感じます。まあ、それもそうかもしれませんね。さすがにもう Perl という言語は古くなってきています。「簡単に動的コンテンツを実現したい!」という初心者が Perl を勉強する...ということなんて、あまり考えられない時代ですし(PHPかRubyあたりでしょうね)。

まあ、考えてみれば、Perl はそもそもちょっとしたニッチ言語として、強力な (g)awk くらいのノリから出発して、Webアプリ言語という新興市場で強烈なシェアを獲得した言語だった...という印象がありますが、それにはそれなりの訳があって、いろいろと先進的な働きをしたインタプリタ言語環境でした。

  1. 1. webアプリ言語に不可欠な、正規表現を扱う機能を十分に装備。これで正規表現を憶えたプログラマは多いのでは?と推測されるくらいに、「正規表現による照合・置換」を主の操作とするタイプのプログラムに向いていた言語だった。→イマドキ正規表現の使えない言語なんて....
  2. 2. インタプリタであるにも関わらず、まず内部的にバイトコンパイルを行って、できたバイトコードを実行する、という2段構えの動作をするために、コンパイラとインタプリタのいいとこどりができた。→これは後続のインタプリタが皆採用しましたね。
  3. 3. ユーザライブラリを交換し合うための検索・保管場所として、CPAN が作られた。→PHP(PEAR/PECL)、Python(PyPI)、Ruby(RAA)といった具合にこれも真似られましたね。

とはいえ、

  1. 1. 言語仕様が汚い。厳格にはサブルーチンの「引数」という概念がないし、変数はすべてグローバルで特に宣言した場合だけローカルになる...というあたりの仕様は、そりゃインタプリタの実装は楽チンだろうけども、美意識(とミスしにくさ)には欠けるよね。
  2. 2. 後付けのオブジェクト指向。何かヘンテコなやり方です...神の祝福が要る(bless)わけですが、「神の祝福」って何だろ?
  3. 3. 5.8(2002年) でマルチエンコーディングに(実質上Unicodeに)ようやく対応。これはタイミング的にはちょっと遅れを取った感が否定できなかったです....

という負の資産もてんこ盛り(だって出発が超古いんだもん。1987年だよ...Javaよりかなり年上だ、ということをお忘れなく)なことは、もうどうしようもないわけですしね....

そりゃ Perl6、という話もないわけではないのですが、これだけCGI(そりゃMovableTypeだって...)が書かれちゃうと、下手すれば

Perl6 は登場(そりゃ現在でも Haskell で実装された Pugs はありますが...)しても全然普及せずに、Perl5 だけ「レガシー資産」扱いで細々とメンテされる

状態になる可能性も否定しきれないようにも感じます(そりゃCOBOLやFORTRANだってまだ現役言語には違いない!)。

仕方ない、とはいえ私は少しだけおセンチ状態、かもしれません....


投稿者 : 杉浦 こずえ | 投稿日時 : 2009.01.19 10:42

あすなろBLOGのトラックバック・コメントは承認制になっています。
すぐにブログに反映されませんので、ご了承ください。

トラックバックURL


コメントの送信