$shibayu36->blog;

株式会社アンドパッドでエンジニアをしています。プログラミングや読書のことなどについて書いています。

Scalaスケーラブルプログラミングを読んだ

Scalaの勉強をしたかったので読んだ。

この本はScalaの利用について、かなり詳しく書かれている本。Scalaの使い方にとどまらず、Scalaの内部についても触れているので、どういう仕組みで動いているかについても知ることが出来る。ただし、そのためにけっこう読むのに苦労するので、Scalaをとりあえず入門しようという用途には向かなそうだった。なんとなくわかりづらい理由はScalaの使い方と内部実装と、例に上がっているアルゴリズムの理論と、型言語の理論の説明が混ざってるからだと思う。

さらっと流し読みしたけど面白いところも多かった。例えば

  • 演算子はメソッド呼び出しにマッピングされ、全てがメソッド呼び出しとして扱われる
  • forに書かれた内容が、実際にはflatMapやmap、foreach、filterなどの関数呼び出しにマッピングされることがある
  • メソッドに渡せる型制約の柔軟な指定

など。


ただし、やはり入門でこれを読むのは挫折すると思う。入門の方法はまた今度まとめようと思うが、軽く調べた感じだと、以下の様な本をさらっと流し読みするのが良さそう。まだ読んでないけど。

またこの本だけでは、Scalaの例外処理に必須といえる、OptionやEither周りの話について全く言及されていないので、この辺りは個別に勉強する必要がある。例えば以下の様なエントリが参考になる。
yuroyoro.hatenablog.com
yuroyoro.hatenablog.com
hakobe932.hatenablog.com


まとめると、勉強になる本だが、難しいところも多かった。Perlでいうところの、初めてのPerlとプログラミングPerlの間くらいの位置付けの本だなと思う。