予約開始時から発売日を指折り数えて待っていたScala スケーラブルプログラミングが発売された。
私の周りにも、この本を買った人は結構多い。複数の人が、同じ本を同じタイミングで購入する事はなかなか珍しい出来事なので、それだけ待望されていた本なのではと感じている。
![]() | Scalaスケーラブルプログラミング[コンセプト&コーディング] (Programming in Scala) Martin Odersky Lex Spoon、Bill Venners 羽生田 栄一 インプレスジャパン 2009-08-21 売り上げランキング : 55186 Amazonで詳しく見る by G-Tools |
Scalaとは
かなり大雑把に説明すると
入門書の枠を越えた本
Scalaでは手続き型言語、関数型言語の両方の特徴を備えているので、それぞれの文法の解説が必要になる。
その説明は、入門書によくある文法の説明やちょっとしたサンプルだけに終始したものではなく、なぜそういう言語設計にしたか、オブジェクト指向のメリットは何か、関数型言語のメリットは何か、という言語設計の背景にある考え方までもが書かれている。
そのような解説があちこち散りばめられているので、言語仕様が理解しやすく、また、関数型言語の入門者にも、関数型言語のメリットを学習しながら、手を動かして言語も学ぶ事ができるという、非常によい本となっている。
関数型言語を学びたい人へ
今までC++/Javaなどの手続型言語を使用した事あるが、関数型言語にまったく触れた事の無いという方は、かなり多い。ゲームプログラミングの今後 でも書いたけど、今後のトレンドは関数型言語にシフトしてきている。C++/Javaの知識だけでは、時代に取り残される事もはっきりしてきた。
では、どの言語で学んでいけばよいか? を迷う人も多いはず。Lisp,Haskell 等大抵の関数型言語は無償で入手可能だし、解説等もWeb上で数多く公開されている。ただ、もうしばらくは業務で関数型言語が導入される事も無いはずなので、勉強のための勉強という事にもなりがちで、いまいち気乗りしないしかもしれない。そんな時にはScala。
オブジェクト指向、関数型言語の両方を学ぶ事ができ、その文法的な知識をそのまま業務に活かす事も可能。ちょっとしたモジュールをJavaではなくScalaで書いて、という事もできる訳だから。
また、Scalaそのものを業務で使う事が無くても、この本を通してScalaでの考え方が身についていると、将来役に立つ日が来る事は間違いない。なんだかんだと、Scalaって各言語のおいしいとこ取りをした上で、非常によいバランスでミックスされた言語なので、今後新しい言語が登場した時にも役立つだろうと。
まとめ
ほんとは、プログラマ全員に勧めたい本。
その中でも
は必読かと。