言語の互換性と難民発生率
こういう方向に話が展開するとはちょっと思っていなかった添削ネタ。そうか。自分を難民と自覚している人がいるんだな。ちょっと新鮮。
かく言う自分もほんの数年前までは 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 スタイルの管理用のスクリプトが黙って動き続けてくれるとしたら、そりゃやっぱ嬉しいよね。