Scalaの言語設計者が書いた、Scalaの本質を解説した本。

Scalaは非常に盛りだくさんな言語です。

Javaにある機能を使えるうえに、
関数型言語の機能を取り入れるのみならず、
オブジェクト指向の機能も大幅に追加してあります。
読んだ印象では関数型よりオブジェクト指向的な型システムのほうが充実しているような気も。

便利な機能をとにかくいろいろ取り入れ、
さまざまな点で利便性の高いプログラムが組めるようになっています。

そのような多機能な言語の神髄を、経験のない人でもわかるように説明した本、
を目指しているようですが、その点についてはうまくいっていないような気も。

まあ私の理解力がないだけという可能性もありますが。
それだけではないようにも思えます。

たとえば、標準ライブラリのListの機能を解説しているところで、
Listのメソッドを設計する時の心がけの解説が出てきます。
標準ライブラリの設計することは普通はあまりありませんから、解説として唐突な感は否めない。

とはいえライブラリの設計思想を理解することは利用者にとっても役に立つことなので、
ここにしか書くところがなかったのかなあと思っていたら、
読み進めていくとコレクションライブラリの設計思想は別に何章か解説があったりします。

これは客観的に、構成のまとまりが悪いのではないでしょうか。
分かっている人には良くわかるけれど、わからない人には理解不能な解説になっているように思えます。


ただそれは、初学者にはきついということにはなりますが、
必ずしも本としての価値を下げるものではありません。

これだけ様々な状況のための機能を盛りだくさんにした言語なのですから、
それらの全体像を把握してからが利用の本番といえるでしょう。

ですから、その状態でもっとも深い含蓄が理解できるような本は、価値があります。

そもそも言語設計者の書いた本ですからね。
初学者向けの説明より深い理解にこそ価値があって当然。
全体が分かっていることを前提とした記述もしかたないでしょう。

とってScalaの初学者でも全然理解できない本ではないですし。
そして、これからScalaを学習し、ある程度深い理解ができるようになってから、
ぜひもう一度読み返してみたい本です。

Scalaスケーラブルプログラミング第2版/インプレスジャパン
¥4,968
Amazon.co.jp