node.jsの敷居の低さは素晴らしい

 Erlangに出会ったのは6,7年前。でも、そのころはまったく使いこなすことができず、 Lisp,OCaml,F#,Haskell などの関数型言語の経験を数年経て、やっと使えるようになった。 しかも、今のようにErlang大好きっ子になり仕事のために使うようになる前は、 node.jsでかなり頑張っていた。

 俺はずっとクライアントサイドのプログラムを作っていたので、サーバー側の経験がほとんどなく、敷居の低いnode.jsが光り輝いて見えた。
 かなり頑張ってみたが、エラー処理、バイナリーデータ処理、他のサーバーとの連携、他の言語との連携・・・壁にぶち当たり、Erlang/OTPでの解決策を参考にしようと調べ始めた結果、Erlangでやればいいじゃん、との結論に達して今に至る。結局のところ、Erlang/OTPはすべてを解決してくれた。

 Erlangは本当に素晴らしい。しかし、素晴らしいと思えるまでの敷居が非常に高いと思う。
 誰だって最初は初心者で、初心者が熟練していかなくてはプロにならない。それなのに、Erlangの敷居の高さは初心者を寄せ付けず、その結果、Erlangのユーザー数が伸びないのだと俺は思う。

 Erlangはサーバー系を作るためのDSLのような扱いさえされることがあるが、Erlangは汎用言語だ! 関数型言語のLLでプログラムを書きたいだろ? それならばErlangだ。
 しかし、ErlangはLLだなんて誰も思わない。なぜならば、Erlangは敷居が高いから!
 俺はErlangのこの敷居の高さをどうにかしたいと思ってErlangEOSを作った。

 今、俺は仕事で使うErlangのソースのすべてをErlangEOSで書いている。Pythonのようなインデントはプログラムをきれいにしてくれて、 ,.; で悩むことは一切ない。 ErlangObjectSystemはOOPだけでなくMetaProgrammingのためにも使えて、今は主に後者の用途で使っている。例えばRPCをEOSで書くことにより、見かけのコードは単なるオブジェクトのメソッド呼び出しなのに分散させたり、分散のアルゴリズムを変えることができる。本当に便利だ。これは俺が欲しかったものだ。だからまだプロ仕様で粗削りなものだが、俺が本当に目指しているのは node.jsの敷居の低さ、手軽さだ。今でもErlangは十分パワフルだから、これがもっと手軽になったらすごいことになると思うんだ。Erlangのユーザーをもっと増やして、数のパワーも味方につけたい。