Programming Erlang, 一章 はじめに
全般的にくだけた感じの文章で結構読みやすい。
まずはerlangをわざわざ勉強するべき5つの理由が書いてある。
- マルチコアを生かしたプログラミング -- 20.3章でやるらしい
- フォールトトレラント(耐故障性) -- 16.1章にて、「サービスを止めずに更新できるサーバ」というお題で遊ぶらしい。
- 関数言語の有効性をテストできる -- ほう。
- 実際の大規模製品で揉まれた言語。すばらしいライブラリとユーザコミュニティの存在 -- ほう。OpenTelecomPlatformというライブラリのことをいっているようだ
- コードを短くできる。 -- あそう。
んー、なんか微妙にやな感じ。
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