『プログラミングScala』は腰を据えたScalaの学習に最適

1/20発売予定のオライリージャパンの新刊、『プログラミングScala』を献本いただきました。

プログラミングScala

プログラミングScala

この本の敷居ははっきり言って高く、『Scalaスケーラブルプログラミング』に近いレベルだと思います。その難しさは、Scalaの型システムと関数型プログラミングを正面から解説しているところから来ています。重いテーマなので後回しにしたくなりますが、この部分の理解が曖昧なままでは、結局、いつまで経ってもScalaを理解したことにならないので、本書や『Scalaスケーラブルプログラミング』のような正面突破のアプローチは正解だと思います。

Scalaスケーラブルプログラミング』と『プログラミングScala』の比較としては、前者はScalaを設計した本人が原著者なこともあって、言語機能ごとに章がかっちり分割されているのに対し、後者は「ScalaOOPするには?」「Scalaにおけるデザインパターンは?」のような、ユーザ視点の緩やかな章立てになっている印象を受けました(追記: 本書の原共著者のAlex Payneさんは、TwitterのバックエンドをRubyからScalaに移植したチームメンバーだそうです)。

Scalaスケーラブルプログラミング[コンセプト&コーディング] (Programming in Scala)

Scalaスケーラブルプログラミング[コンセプト&コーディング] (Programming in Scala)

内容的にももちろん素晴らしく、『Scalaスケーラブルプログラミング』と併読をおすすめしたいです。この2冊を横に置いて、プログラムを実際に打ち込みながら、じっくり学習するのが良いと思います。

追記: 原著はScala 2.7をベースにしていますが、この翻訳版は、紙面の内容が2.8と互換性の問題を持つ場合の全箇所に脚注が入っていることと、2.8の新機能を紹介する付録もあるので、2.8の環境で全く問題なく使える本だと思います。