「次」の言語
2008.02.24
待ちかねてました。昨日 Armstrong の「プログラミング Erlang」が出てました!
で、とりあえず一通り斜め読みで目を通したあたりです....去年年末に出ていた「Erlang 入門」と比較すると、定価は2倍ですが、内容は5倍(あるいはそれ以上)のものがあります。ひょっとして今年の台風の目、かな?
たとえば、まつもとゆきひろ氏も「Rubyはもはや当たり前。「次」とは言えない/次にくるトレンドは「関数型」と「並列」 /両方を押さえたErlangが本命。歴史も信頼性もあり、知名度上昇中」として、Erlang を推薦していたりします。ここで開発者自身の解説本が出る...というのは、ツボを得てますね!
しかも、この Armstrong 氏、いかにもハッカーっぽいユーモアのある文体がいいです(訳文もツボを押さえていて読みやすい)。たとえば、技術的にポイントとなる章の前に、「ポイントを押さえた非技術的な紹介」を入れていたりします。その中から Erlang 最大のポイント「並行処理」を紹介すると、
人間なら誰でも並行処理を理解している。
我々の脳には生まれつき、並行処理が強く刻み込まれている。刺激に対して人間は脳の扁桃体と呼ばれる部分を使ってとても素早く反応する。
この世界は並列だ。
実世界のものと同様に振舞うプログラムを書きたいなら、プログラムは平行構造になるだろう。だから並行プログラミング言語でプログラムしたほうがよい。しかし、実世界のアプリケーションを逐次プログラミング言語で書くことは多い。そのために物事が無用に難しくなってしまったいる。平行アプリケーションを欠くために設計された言語を使おう。そうすれば並行処理の開発はずっと楽になる。
ホント、この文は Erlang 最大の宣伝文句じゃないかな、と思います。しかも、Erlang は「単に並行処理ができる」というだけの言語ではないのです。
- 1. サーバの動作を監視するスーパーバイザを簡単に作れて、
- 2. サーバを停止せずに、サーバをバージョンアップできる...という魔法(ホットスワップ)が使える!
- 3. で、それが「できる」というだけではなくて、Ericsson での社内実績がきっちりある OTP というプラットフォームがある。OTP に対してコールバックモジュールを付け加えるだけ(かなり簡単!)で、任意のサービスを提供するサーバを作ることができてしまう!
- 4. OTP にはデータベース Mnesia が付属していて、分散処理に対応し Erlang オブジェクトをそのまま保存できる安全なDBがタダで手に入る。
- 5. 勿論アプリに必要なライブラリは一通り完備。
というくらいなものです。Erlang(OTP) とプロトコルを理解すれば、すぐに実戦に投入できる(任意の)サーバが作れちゃう....というくらいに、ものすごいものなのですね。それこそホビー用途だったとしても、「買い!」な言語ですが、きっちりと実績もあるようなスグレものだそうです! この「プログラミング Erlang」では OTP, Mnesia の解説もちゃんと載っていて、自分で試すことができます。
で....Google と言えば?
それは mapreduce だ!
という方はあまりいない...(苦笑)でしょうけど、Google 検索ロジックのキモのアルゴリズムが mapreduce というものです。これ要するに「関数型言語を使って、スケーラブルにした索引エンジン」です。ですから Erlang と同じコンセプトのわけで、最後にこの mapreduce を Erlang で実装したサンプルが載っていたりします。ホントこれだけでも充分にお買い得な本...と思わないですか?
あ、勿論その他の Erlang の「面白い特徴」はもうすでに以前のエントリに書いてますし、他のブログ・ページ(まつもと氏、Erlang Tips , Erlang Land)にも結構ありますから、そちらをご覧ください。とりあえず今回は「本のレビュー」です。
投稿者 : 杉浦 こずえ | 投稿日時 : 2008.02.24 17:34
あすなろBLOGのトラックバック・コメントは承認制になっています。
すぐにブログに反映されませんので、ご了承ください。





