Programming Erlang, 一章 はじめに

全般的にくだけた感じの文章で結構読みやすい。

まずはerlangをわざわざ勉強するべき5つの理由が書いてある。

  1. マルチコアを生かしたプログラミング -- 20.3章でやるらしい
  2. フォールトトレラント(耐故障性)  -- 16.1章にて、「サービスを止めずに更新できるサーバ」というお題で遊ぶらしい。
  3. 関数言語の有効性をテストできる -- ほう。
  4. 実際の大規模製品で揉まれた言語。すばらしいライブラリとユーザコミュニティの存在 -- ほう。OpenTelecomPlatformというライブラリのことをいっているようだ
  5. コードを短くできる。 -- あそう。

んー、なんか微妙にやな感じ。

Road Map

  • 2章 Getting Started

いわゆる「さあ始めましょう」だね

  • 3章 Sequential Programming

逐次処理的に書いてみるらしい。ここでパターンマッチングと非破壊割当(nondestructive assignments, 代入にあらずってやつね)について述べるっぽい

  • 4章 Exceptions

おお、例外処理。先に読もうかな。

  • 5章 Advanced Sequential Programming

応用および逐次処理の詳細。

  • 6章 Compiling and Running Your Program

コンパイルの方法など。シェルで c(...)するのと erlcを使うのの話かな

  • 7章 Concurrency

待ってました。ここは概念の説明だけみたい。

  • 8章 Concurrent Programming

実際にやってみる。

  • 9章 Error in Concurrent Programs

おお、面白そう。参照透明な言語での並列バグってなんだろう。ここも先読みかな。

  • 10章 Distributed Programming

socket-based distribution。Erlangノードでクラスタつくってテストするみたい。

  • 11章 IRC Lite

CSアプリ作ってみるらしい。おもしろそう。

  • 12章 Interfacing Techniques

言語コードとのインターフェイス。ここも先読みしとこ。

  • 13章 Programming with Files

ファイル使ってみる。

  • 14章 Programming with Sockets

ソケットプログラミング。 SHOUTcastサーバを作るらしい。MP3ストリームサーバね。

  • 15章 ETS and DETS: Large Data Storage Mechanisms

低レベルモジュール2つ。etsはハッシュ。detsはディスク関連みたい。

  • 16章 OTP Introduction

例のライブラリ。behaviorと呼ばれる OTPの中心コンセプトを紹介する。

  • 17章 Mnesia: The Erlang Database

DBMSモジュール。耐故障性あるらしいが。。。

  • 18章 Making a System with OTP

OTPでの実アプリケーション作成時の細々した部分(起動、停止、クラッシュ時のログなど)を説明するっぽい。

  • 19章 Multicore Prelude

ErlangのマルチコアProcessorでの利点を説明。共有メモリとメッセージパッシング。参照透明なんでいわゆるクリティカルセクションを深く考えないでよい、って話でもするんかな。当たり前すぐ

  • 20章 Programming Multicore CPUs

逐次プログラムをマルチコアCPUで高速化する手法をいくつか紹介してから
全文検索プログラムを書く。mapreduceをやるらしい。

Concurrency-Oriented programming。
結構wktk