Scala逆引きレシピ #scalarecipe

献本貰いました!

Scala逆引きレシピ

Scala逆引きレシピ

見た目の大きさとしてはそれほど大きくない感じですが、600ページ以上あり結構なボリュームです。なので、細かいところまで全然読みきれていませんが、全体をある程度眺めた感想を書いてみます。


特徴としてはここ

Scala逆引きレシピという本が出ます

に書いてあるとおりですが、本当に、まずそもそもライブラリやフレームワークの取り上げている数そのものが多いことと、それらのある程度細かいところまで、使い方や例がひと通り書かれているところです。


大きな章立てとしては以下のようになってますが(右の数字はページ)

1 準備 1 〜 16
2 Scalaの基本 17 〜 90
3 関数とクロージャ 91 〜 108
4 オブジェクト指向プログラミング 109 〜 175
5 コレクション 177 〜 234
6 ファイル操作と入出力 235 〜 256
7 XML 257 〜 268
8 ツール、ユーティリティ 269 〜 302
9 並行プログラミング 303 〜 338
10 Javaとの連携 339 〜 352
11 sbt 353 〜 392
12 テスト 393 〜 438
13 フレームワーク 439 〜 575
付録 Scala2.10の新機能 577 〜 591

となってます。11章から13章は勿論、標準ライブラリ以外のものなので、内容的に実質ちょうど半分くらいが標準ライブラリ以外の紹介や説明になってます。


このあたりが明らかに他の本と違っている点ですね。sbtについても、いくつかの代表的なplugin( xsbt-filterjacoco4sbtxsbt-web-pluginbrowsesbtclipse など )のそれぞれの使い方まで紹介していて、sbtについては明らかに現時点で日本で一番詳しくて最新です。


このあたりのライブラリの情報については、すぐに古くなってしまう可能性があり大変で本に書くのには勇気がいるところだと思います。
そして本当に常に最新の情報を追っていて知っていないと書けないところなので、筆者の努力が伺えます。*1


逆に、あえてこの本の読者に向かない人というか、他の本と比べて他の本のほうが優れている点を書いてみると

  • 限定継続について知りたい、他の関数型言語との比較やテクニックを知りたい*2 => Scala実践プログラミング オープンソース徹底活用Scala実践プログラミング
  • Scalaの外部ライブラリの使い方にはあまり興味なくて、Scalaという言語そのものとか、それぞれの文法の歴史的な理由や、実装詳細なども含めて詳しく知りたいという人 => Scalaスケーラブルプログラミング第2版


という感じでしょうか。本の性質というか、筆者の方々があえて意識して書き方を変えている部分だと思いますが、

  • Scala逆引きレシピの場合は、とにかく短く"レシピ"という形で区切って単独で読める"レシピ"の数を多く用意しているのに対して
  • コップ本や、Scala実践プログラミングの3章や4章あたりなど*3は、あまり馴染みがない関数型の考え方を理解してもらうために例をいくつも挙げながら丁寧に説明する


といった点が特徴的だと思いました。



勿論、Scala逆引きレシピ自体は、この外部ライブラリの紹介の分量が多いのは特徴だと思いますが、前半はScalaそのものの基本的な文法の詳細は紹介されているので、Scala自体を勉強するにも問題無いですし、*4一冊目のScalaの本とするのも十分適していると思います。



細かい気になった点や、間違い見つけた場合は、おそらくまた別に書きます。



あと最後に、著者に直接聞いたので貼り付けておきます↓

*1:たとえば、まだリリースされてから2ヶ月も経っていないsbt0.11.3で書かれていて、sbt pluginが0.11.3用のものが出ている場合はそのversionがちゃんと書かれていたり、執筆時点でまだsbt0.11.2用のものしかでていない場合には、その対応方法が書かれていたり、かなり細かいところまで頑張っている

*2:つまり、Scala実践プログラミングの4章や7章のことですが、あそこにかいてあることは他のどのScala本にもあれほどまでには詳しくは書かれてないので、今でもオススメです

*3: 結構前に読んだのでちょっと忘れたが、そういう意味では この本 も(若干間違い多くて気になったり、章によってレベルのばらつきがあったが)オススメかもしれない

*4:最低限のプログラミングやJavaの知識があるならば