2007-04-16

言語の互換性と難民発生率

www.textfile.org - Perl4難民

こういう方向に話が展開するとはちょっと思っていなかった添削ネタ。そうか。自分を難民と自覚している人がいるんだな。ちょっと新鮮。

かく言う自分もほんの数年前までは Perl 4 時代の知識しか持ってなかった。ネイティブの(最も得意な)言語は Perl だと言っていたにも関わらず、である。あぁ恥ずかしい。その後どうして Perl 5 の知識に追いつけたか(と言ってもさわり程度なんだけど)と言うと、これは PHP の class 構文の動きに納得いかなくて、Perl で書き直してみようと思い立ったからだったりする。1

つまり、外的な要因なのだな。

例えばリンク先の人みたいに補助的に使っていて Perl 4 時代の機能だけで困っていないのであれば、Perl 5 の新しい機能を利用したり新しいスタイルに変更したり、と言った行程はそりゃ避けたくなるもの。何しろ Perl 5 では Perl 4 時代の記法がほとんどそのまま通用するから。

そう。難民は、Perl の歴史の長さと Perl 5 の互換性の高さが生んでいるとも言える2。例えばこれが Ruby や Python であれば、まだ Perl 4/5 時代ほどの熟成が進んでいないので、互換性を捨てても前へ進むと言った決断を迫られるシーンが出てくる。「そこ」で立ち止まることはできないのだ。3もちろんそれが一概にいいとは言えないというか、むしろ仕事で使っている人は互換性が最重要ポイントだったりもする。いつ書いたかも覚えていない Perl 4 スタイルの管理用のスクリプトが黙って動き続けてくれるとしたら、そりゃやっぱ嬉しいよね。

  1. Perl の OOP は非常にトリッキーで理解するのに難儀したが、おかげで改めて Perl の自由度の高さに感心もしたし、その後 Ruby や JavaScript の学習を通じて PHP 3/4 の OOP がカタクて使い勝手がよくないくせにアクセス権限はスッカスカという状態に驚くこともできた。 

  2. 日本ではレンタルサーバの超がつく保守的な姿勢もあるかな。未だに Perl 5.004 とか 5.005 とか言ってたりするんだもの。Perl 5.6 以降とか 5.8 以降のおいしい機能が全然使えないんじゃ魅力ないですよ。 

  3. この先 Perl 4/5 時代のような時期もいつかくると思うけど。 

About

例によって個人のなんちゃらです