世の中にプログラミング言語がいくつあるのかを知っている人は誰もいないと思う。というか、知るのは不可能。ちょっとした処理用の使い捨て言語みたいなのも作られてるわけなので。

で、プログラミング言語もご他聞にもれず工業規格で規格化されてたりする。ある言語についての処理系が、その規格どおりのものしかないのなら、その言語は1つしか存在しないってことになるだろう。

だけど、例えばRubyでも、CRuby(これが普通に言うRuby)とか、JRuby(Javaでの実装)とかある。このあたりも、まぁ言ってしまえばまつもとさんの決定が神の声ということになるかもしれない。

ならば、Lispはどうなんだっていうと、さすがに歴史があるだけあって、もう混沌としてる。eval, applayだったか逆だったかどうだったかだけが同じというくらいにばらついてるようにすら思える。最近は括弧をあまり使わないようにした方言も作られてたはず。名前を忘れてしまったのでサイトを見つけられませんでしたが。

で、Lispなんかを見ていると、「これは新しい言語である」という基準てどこにあるんあろうと思ってしまいます。機能を増やしたから? ならいくつ増やせばいいんでしょう? 新しい概念を組み込んだから? それを組み込むことで言語が明らかに変わるのでしょうか? これらは、バージョン番号を上げるのには充分な理由だと思いますが。

結局、作った人が命名するかどうかということなんでしょうか。