「Erlangブーム」の行く末を予想する

This entry was posted by on Saturday, 5 May, 2007

4月27日って@ITが紹介した日だったのか。何の日かと思ってました。

なんだかなあ、と思ってしまうのは、 Erlang が問題を根本的に解決できるようなタイプの言語じゃないだろうなあと思うからかな(というか、そもそも銀の弾丸はないんだよな、と思うんですけれど)。たぶんこの「ブーム」というやつは「なんか凄いらしい」という噂だけが先行しているのが現状なんだろうな、と冷めた目でわたしは見ている。そしてしばらくするうちに「遅い」「わけがわからない」「やっぱり使えないよ」ということになってそのままなんとなくブームが終息すると予想。

Erlang が言語として(あるいは処理系として)は使えなくても、その考え方には価値があるのだと思うのだけれど(そしてまあ、仮に遅いとしても Erlang の処理系はかなりの実績がある)、そういう方向には行かないのだろうな。まあわたしみたいに野次馬的におっかけている人間と仕事人との差ということですかね。

Programming Erlang は現在6章の途中。といっても Erlang は基本的には稲葉さんのトコを読んでいたのでまだまだ知ってることが多く細部の確認をしている程度の段階なんだが、バイナリパターンは初めて知ったのでけっこう面白かった。バイナリっていうのは、ようは Erlang では任意の長さのメモリ領域をバイト列として持てるのね。それくらいはまあ普通だと思うんだけど、面白いのはそのバイナリデータに対してパターンマッチングができること。しかもそのパターンというのがバイト単位じゃなくて、任意のビットパターンで切り取れる。しかも32ビット整数を取り出すときにはエンディアンも指定できたりする。例としては、IPv4パケットのヘッダから情報を取り出すとか、MPEGのヘッダ情報を取り出すとかいった例が書かれているのだが、そのようにバイナリデータの特定のビットを切り出すっていう処理は、ふつうの言語だとマスクをかけてシフトするようなややこしいものにならざるをえない。それをパターンマッチで綺麗に書けるっていうのは面白いし、さすがに通信分野で実績のある言語らしい特徴だと思ったな。

それが効率的なの?けっきょくマスクかけてシフトしてたりするんじゃないの?っていう疑問は残るけど、コンパイラはかなりそこの処理を最適化していると Joe Armstrong は書いているので、それを信頼するならそういう面倒なことをするよりも速いらしい。

Comments are closed.