2012-05-07

なぜLispやMLは分裂するのか

How were some language communities (eg, Ruby and Python) able to prevent fragmentation while others (eg, Lisp or ML) were not? - Programmers - Stack Exchange

stackexchange.comで、面白い話題が議論されていた。LispやMLというのは、いわば、Lisp風言語、ML風言語の総称である。実際には、Common LispやらSchemeやらArcやらと、多数の互換性のない言語が存在している。一方、RubyやPythonには、特に大きな分裂は起きていない。CPythonに対してPyPyのような、異なる実装は出ているが、言語は分裂していない。なぜなのか。一体、RubyやPythonは、分裂を防ぐために何をしているのか。

色々と議論されているが、まず一番わかり易い説は、高徳な独裁者(Benevolent Dictator)の存在である。Rubyにはまつもとゆきひろが、PythonにはGuido van Rossumが、高徳な独裁者として存在する。

また、規格の存在をあげる者もいる。CやFortranだって、規格ができるまでは、互換性のない実装が氾濫していた。

また、単純に古い言語だからという理由を挙げるものもいた。

また、分裂していないという見方は間違っているという意見もある。実際、Python 2とPython 3は分裂している。これは、Python 3が互換性を壊す変更を導入したためである。

Lispは素晴らしく強力なので分裂するのは必然だ、そもそも、今の言語はすべてLispのパクリだ、などというLisp信者らしき書き込みもある。

No comments: