こちらの本は英語版がオンラインで読めて、Scala東北でもかなりみっちりと勉強させていただきました。
この本の特徴は、型システム(12章)とデザインパターン(13章)に関する記述が厚い点です。自分の経験ですが、ここを読んで、やっとScalaが整理ついてきた、と感じました。
O'Reilly OFPS
Programming Scala:Chapter 12. The Scala Type System
↑このページぱっとみて、日本語訳がほしい!と思った人は迷わず買ったらいいと思います。
個人的に、今Scala本に必要なのは、数多くの機能紹介よりも、体系立ったパターン集だと思うのですが、この本が一番それに近い感じ。コップ本やPollak本よりも便利で、リファレンスとして常に脇に置いてます。
難点はScala2.7から2.8へのバージョンアップ時に仕様が揺れている段階(しかも2.8リリース前だったか?)で執筆されているため、いろいろと過渡期的な情報もある点。第N版が待たれる。
古い情報を整理してくれたら間違いなく買い換えるつもりです。
この本がマッチしそうなのは、
1.Javaは書ける、
Scalaを最速で学びたい人→2章・3章
2.Scalaは書ける、
けど関数言語的な(Scalaのシュッとした)部分を
使いこなしてるかというと不安がある人→7章
3.Scalaのデファクトな環境が知りたい→全体
かな、と思いました。2,3,7章はとても個性的で他の書籍にはない内容。また、これだけ広範囲にScalaをとりまく環境を紹介している本も他にないです。
2章「オブジェクト指向」以降の、簡単なクラスをScalaらしい機能を活用しながら育てていく展開はすばらしいと思いました。大部分のJavaプログラマは、2章と3章を写経すれば実用的にScalaが使えるようになると思います。
7章が熱いですね。目玉ではないでしょうか。
節毎に個性があるな。。と思ったら、豪華執筆陣が分担しているようです。Scalaハッカーたちのブログエントリを読ませていただいているような感覚で、楽しく勉強させていただきました。
「Scalaはわかるけど、変な記号とかモナドとか関数っぽいところが手に負えないぞ?」という人はこの章だけでも買い得かと思います。
他の章については、特に8/9/10章は書きたいこと書いたった!という雰囲気を感じてステキ。Lift/Play!/ScalaTestに関してはクイックスタートのみですが、よくまとまった内容だと思いました。
難癖つけるとしたら、「中級者向け」とまえおきしておきながら、初級者向けになっているような部分もあって、結果どっちつかずになっている印象も受けたので、「中級者向け」を徹底したらよかったのかなと思いました。
例えば、
の説明。scalaは本当にforの説明がやりずらい(コップ本ですらグダグダ感があるところ)ですが、ここはわりきって、「このコードはコンパイル時こう変換される、その理由は・・」とか、forひとつで語れることを語りつくすような感じの方が、中級者向けの読み物として役に立つのかも。
こんなこと書いてて思ったのは、執筆陣(@kmizuさん、@yuroyoroさん、@ryugateさんら)による入門記事が読みたいんじゃなくて、いつもブログやTwitしているような内容の裏技コラム集みたいなが読みたいんだよなー。
・・・と、欲深い気持ちになりました。
関連:Scala本読み比べてみました