2009年3月5日木曜日

LLの立ち位置をOSに例えるなら...

Ruby・Python・JavaScriptはLinux、様々なアイデアの実験場となり、
ユーザ数増加中。

PerlはFreeBSD、枯れていてコアなユーザもいるが、ユーザの更なる
増加は望めない。安定を優先するため、実験場にはなりえない。

PHPはWindows、その簡便性でユーザを一気に延ばしたけれど、言語と
しての進化は手詰まり、お手軽言語であることを売りにしたため、(先進的
で)マニアックな言語仕様を導入しにくいorできない。

Perlの場合、互換性を維持するための言語仕様上の負の遺産の継承がその
進化を阻害している(枯れて安定していることを優先して今まで大規模な
言語仕様の改訂を行ってこなかったことが言語としての進化を停めて
しまった)、今や大規模な改訂は大きすぎるイタミに直結する、そのため、
言語仕様上の負の遺産を滅するような改訂をもはや行えない、その時期
を逸してしまった。

現にPerl5.8とPerl6の関係はCとC++の関係よりもVB6とVB.netの関係
に良く似ている、Perl6のOOはPerl5.8の仕様のオブジェクト指向的
側面を見直し、多少、体裁を整えたようにしか見えない。
それでもVB6からVB6.netへの移行時にそのユーザが経験したイタミと
同種のイタミをPerlユーザは経験することになるだろう...。

Rubyのように言語仕様を段階的に改訂する場合、ユーザに多少の混乱は
与えるものの、大きすぎるイタミを伴う大規模な言語仕様の改訂をユーザ
は経験しなくて済む、それを最善とはいえないが...。

PHPの場合、言語仕様が成熟する前に、ユーザ数が急激に増加したことが
不運、お手軽言語として確立した地位を維持していく以外に道はない。
(先進的で)マニアックな仕様のメリットをPHPユーザに納得させるのは
難しい。そのような仕様を導入しても利用されずに終わる可能性大。


0 件のコメント: