Erlangについて一言言いたくなったが
やめておく。 やっぱり書いとく。
Erlangって、プログラミング言語としての面白みってあんまりないような気がしますよね。(一部の人からはエキセントリックな文法に見えるかもしれないですけど)
どちらかというと、あれは、処理系が面白い言語なんじゃないかと思うのですよ。というか、抽象的な分散実行モデルを一つしっかりと持っていて、言語も処理系もすべてそのモデルに殉じているというところが面白い。
Erlangでプログラミングをしてみるとすぐに気づくのは、すこし複雑なシステムを作ろうとすると、プロセスを使わないではやっていられない。オブジェクトを作るようにプロセスを作るような言語なわけです。
プロセスが実行モデルの中心にいるから、プロセスが異様に軽量なわけです。普通のプログラミング言語の処理系からすると異様なほどプロセスが軽いのは、そうでなければプログラミングができないからそうなっているわけで。
だから、Erlangの面白みは、そこそこの規模のプログラムを、分散環境で、耐障害性を考慮にいれながら、プログラミングしてみないとなかなか味わえないんじゃないかなーとか思います。(私も、まだErlangでそういう経験がないので、想像しているだけですが)
それと、既存の処理系にグリーンスレッドを導入すれば、Erlangのようなプログラミングができるというふうに安直に考える人もいるみたいですけど、Erlangがそのモデルのために何を犠牲にしたのかを考えてみるべきだと思いました。