Posterous theme by Cory Watilo

Scala プログラミング入門を読んだ

最近、Scala の勉強を始めている。 まずは概要を掴むために初心者向けな Scala プログラミング入門を読んだ。
Media_httpecximagesam_cgdbt
とっかかりにはとても良い本だった。ただ、この本だけでは言語仕様を理解するには至らずコップ本も読みたいモードになった。 以下、読んでて驚いたり感銘を受けた点を抜粋してみます。
  • static がない
  • パターンマッチの柔軟さ
  • lazy val や名前渡しでの遅延評価
  • コレクションライブラリが徹底してイミュータブル指向
  • Actor は言語仕様と絡んだ機能ではなく純粋なライブラリだったのに驚き
自分のバックグラウンドとして Java と Ruby があるので、これらの合いの子みたい言語仕様なのかなーと思ってたら、その二つには無い部分がたくさんある感じだった。特にパターンマッチには驚いた。あと、trait や implicit、型引数などは良さはなんとなく理解しつつも使い所がわかっていないような状態。この辺りはもっと実際に手を動かしていかないと、という感じ。変位については、残念ながら通読だけでは理解できず。もうちょいがんばらねば。 他に Web でも Scala 関連漁りましたが、ヽ( ・∀・)ノくまくまー経由で読んだScala 開眼もとても良いコンテンツだった。ハッとする表現が多かったんで、少し引用します。
  • 束縛は一度きりであり、すなわちひとたび為された束縛は二度と変更できない。
  • 四種類の束縛で既存のプログラミングを根底から捉え直す:値への束縛(val)、型への束縛(var)、式への束縛(def)、そして可能性の束縛(type)
  • 関数とは要するに引数付き遅延評価式
今は言語仕様の学習モードだけど、いつかはお仕事で使いたい。そこで気になっているのは DB レイヤで何か良いライブラリないかなーというコト。 軽く調査してみて、興味があるのは以下の三点。
  • querulous (Twitter 謹製。MySQL ドライバ Only だけど他 DB 対応もどうにかなりそうな雰囲気)
  • squeryl (Sequel が type-safe になった感じ?)
  • より抽象レイヤで lift-record ってのがある?
Arel ライクなものがあれば嬉しいなと妄想しつつも querulous くらいプリミティブでも記述量少ないし良いかなと思い始めているこの頃。 今後の Scala 学習は、当面は手を動かすのと並行してコップ本をじわじわ読んでいこうと思案中。 勉強会も積極的に参加していこうと思ってるんで、皆様誘ってください。一応開催情報はチェックしてるつもりなんだけど、今日も早速、第3回 Scala 勉強会 in 渋谷を逃してた。。まあ次回こそは!