コードの世界
世間では「コードの世界」どころか「コードの未来」も既に出版されていますが。
説明するまでもないかも知れないが著者はスクリプト言語Rubyの創始者で現役の開発者。当然、本書の内容もRubyを中心に展開される。
内容としてはRubyを本格的に始めた初学者向けという印象。ただしあくまで書名は「コードの世界」なのでそれにとどまらない内容もあってその部分に関しては非Rubyプログラマでもそれなりに面白く読める。例えば次の章だ。
3章 ブロックについて
いわゆる「クロージャ」について取り上げている。Cの関数オブジェクトも近い概念だけれどクロージャの普及が始まったのは意外に最近な印象。C++のstd::for_eachを使ったことがあるとRubyのブロックは理解しやすいと読んで感じた。
5章 Ajaxについて
最近では一般的になりすぎてあえて「Ajax」という言葉を使うこともなくなってきているが、この章ではサーバーサイドRuby、クライアントサイドJavaScriptでの非同期通信について説明している。簡単なJavaScript入門にもなっているのでこれからWeb開発を学ぼうという人にはいいかもしれない。
7章 文字コードについて
言語開発者の立場からの解説が興味深い。文字コードに関してはその経緯上、見通しの悪い部分が多いがその見通しの悪さまで含めて解説している。
10章 プログラムの高速化と並列化について
CPUのメニーコアが既定路線になった現在、並列処理はプログラマの一般教養になりつつあるという印象だが、並列処理は書いて身体で覚えるという方法が取りにくい技術でもあると思う。並列処理で最低限抑えておきたい基礎知識について解説している。
13章 関数型プログラミングについてなど
雑多な話題を扱った章だが特に「メモリー管理とガーベジ・コレクション」が面白い。C/C++を除けばほとんどの言語がガーベジ・コレクションを採用し、もはやGCは常識になった感があるが、コンピュータサイエンスを学ぶか言語の開発者でもなければなかなかその実装まで立ち入って知る機会は少ないのではないだろうか。この章ではガーベジ・コレクションの実装パターンの紹介をおこなっている。
おそらくこれから本格的にRubyに取り組もうとする人であれば本書は十分に読む価値のある一冊だと言えるだろう。
なにしろ教祖(皮肉ではなく)の著した注釈書なのだから。