Scalaスケーラブルプログラミング

通称"コップ本"。Scalaを学びたいならこれ以上の資料はない。

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

インプレスジャパン 2009-08-21
売り上げランキング : 23568

Amazonで詳しく見る
by G-Tools
本書は、Scalaの制作者によって書かれた、Scalaについて最も詳しいであろう一冊である。それゆえ、Scalaをマスターするうえで避けて通れない。

Scalaについてはまた別のエントリで触れようと思うが、実に美しく無駄がない言語だと感じた。最低限の記述でおどろくほど堅牢で読みやすいコードを記述できる。ただし、その潜在能力をしっかり生かそうと思うと、いろんな記法や多少難しめの概念も知っておかねばならない。

Scalaについて最も詳しいであろう一冊である本書は、それゆえ記述は広範にわたり結構高度な内容にも触れているため、プログラミング初学者がいきなりこの本を読むとたぶん挫折する。従って何か別のプログラミング言語を使いこなせるようになった後で、二冊目以降に読むべき本である。

本書のさわりのほうだけ読めば基本的な文法はマスターできるので、とりあえず書き始めることはできるだろう。しかし、プログラマ諸氏はご存じの通り、単に書けることと、うまく書けることの間には大きな差がある。うまく書けるようになりたければ、ぜひさわりで終わらせず先まで読み進み、理解を深めていって欲しい。

例えば、if-elseとforが書ければとりあえず動くコードを書けるが、パターンマッチや再帰をうまく使った方がより見通しの良いコードを書ける。パターンマッチは多彩な書き方ができるし、再帰を使うにあたっては末尾再帰が最適化されることと、最適化を有効にするための記法を知らなければならない。また、高階関数を使いこなせればコードをより簡潔に書けるし、DSL的記述も可能になる。パーサーコンビネーターかっこいい!…などなど、学んでおいたほうがよいことがたくさん出てくる。

なにより、せっかくScalaを使おうっていうんだから、しっかり理解してその力をフルに活用したいじゃないか!Scalaらしいスタイルですっきりしたわかりやすいコードを書きたいじゃないか!そのほうが楽しいじゃないか!そうせずにScalaを使って何が嬉しいんだ?

だから、雑な入門資料を斜め読みしてJava臭漂うハンパなコードを書き散らすよりも、本書のようなしっかりした本をちゃんと読んで高度な概念やより進んだ使い方を押さえて、胸を張ってScala-Wayを邁進したいところである。

もっとも、私のレベルでは一回読んだだけだと理解が怪しい。何カ所か読み直さないと…。

入門者向けをうたう本もあるようだが、あまりオススメできる内容ではないそうなので、そんな博打を打つぐらいなら最初から本書を選んでおいたほうが間違いがない。

Scala、楽しいよ。