日別アーカイブ: 2011年10月1日

BPStudy#49 Scala祭り

BPStudyがScalaを題材に開かれるということで参加してきた。

実際のところ、コップ本も実践Scalaも読んだには読んだが、仕事で使う当ても無く
私自身はというとあまりScalaのコードを書いている訳ではない。
なので、あまり突っ込んだ内容に付いていくのは骨が折れるぜぃ

ただ、実際に使っている人の話を聞くのはやはり面白いし、いろいろな情報が出てくるので勉強になる。
さしあたってメモ代わりに、話にあがったいくつかを書き留める

ビルドツールに関して

開発って何でやっているんだろう?
以前、Scala会議ではsbtを押していた。

sbt (GitHub)
https://github.com/harrah/xsbt/wiki

またEmacs用のツールとしてEnsimeが紹介された

ensime (GitHub)
https://github.com/tototoshi/ensime/blob/japanese-documentation/README.ja.md

さしあたってEclipse使ってみたけど、sbtのほうが一般的という話であれば、
sbtに関しても触っておく必要があるかもしれないなぁ。

というか、私の場合はEmacsなりViなりにもう少し慣れないといけないんだけど・・・。
ずっとWindowsだったもんな。

ちなみにsbtに関しては面白い記事があったので

非公式 sbt 0.10 ガイド v2.0 (eed3si9n)
http://eed3si9n.com/ja/sbt-010-guide

Finagle

yuruyoro氏からは非同期RPC処理を行うのに用いることが出来るFinagleの話。
Twitter.incで作られている。

finagle (GitHub)
https://github.com/twitter/finagle

主には

  • Futures
  • Services
  • Filters
  • Codecs

の4つをチェックする。

finagleに関しては正直見ただけでは理解は難しく、触ってみる必要がある。
Scala-schoolやFinagle作ってるTwitterの中の人等、様々な情報を集めてみるのも一つだ。

finagle starter kit (GitHub)
https://github.com/bmatheny/finagle-starter-kit

ostrich (GitHub)
https://github.com/twitter/ostrich

‘=:=’とか’<:<’ とか 意味不明じゃん

Scalaのコードを最初見た時に、何がなんだかわからなかったのをよく覚えている。

普通、たいていどんな言語でも何となく読めなくはないんだけど、
Scalaは簡潔に書くことが出来るが故に、ものすごい省略したコードになる。
結構意味不明だ。

さらに、今日のように

def increment(implicit ev:T =:= Int ):Cell[Int] = Cell( v + 1 )
(サンプルはyuruyoroさんところから)

というように”<:<”や”=:=”のような記号が出てくると、一気に頭がショートしてしまう。
今日の話題にも出たが、これなんて言うんだよw

これに関しては詳しくは@yuruyoro氏が書いている記事が詳しい

Scalaで<:<とか=:=を使ったgeneralized type constraintsがスゴすぎて感動した話 (ゆるよろ日記)
http://d.hatena.ne.jp/yuroyoro/20100914/1284471301

ぱんくぱんく

実は途中でiPhoneのバッテリーが切れてしまって、メモを取ることも叶わず
頭の中も携帯もパンクしてしまった感がある。

Hadoopの本を手に取り始めたばっかりな状態ではあるんだけど、Scalaもあれこれ調べて回りたい衝動に駆られてしまう。
むふー。
もうちょっと時間効率よく動かんとなぁ

そう、コップ本第2版出たんですね。。。Scala2.8, 2.9に対応して内容がアップ。。。
ううーん、気になるっ

Scalaスケーラブルプログラミング第2版
Martin Odersky Lex Spoon Bill Venners
インプレスジャパン
売り上げランキング: 4097