JavaOne 2012 San Francisco 3日目

JavaOneサンフランシスコ3日目は、早くもバテ気味で、興味のあったJava8に導入される新しい日付APIであるJSR-310(Project_ThreeTen?)のセッションなどがあったにも関わらず、朝イチはパスしてしまいました。(といっても、JSR-310のセッションがあったことには、夕方になってから気づいたのですが。セッションのタイトル名だけでは、内容がわかりづらいものもあるので要注意です;;) 昼から2つだけ出席したので、その内容をまとめます。

  • [CON3469] Design Patterns in Groovy
    • いわゆる、小人さんスクリプトや、やわらかな心臓といった7つの導入パターンについてではなく、JavaにはないGroovyらしい使い方について丁寧に説明していました。
    • 例えばイテレータに着眼すると、Groovyでもfor文は使えるけど、
collection.each {it}

を使えばGroovyらしくなるよ、for文のインデックス(int iとか)を使いたいなら

collection.eachWithIndex{e, i -> "index:$i value:$e"}

ってのがあるよ、長さが4のものだけループで回したいなら

collection.find {it.length() == 4}

ってできるよ、と、Javaユーザのハートを鷲掴む(?)セッションでした。

    • 他にも、metaClassへのメソッド追加(例えばjava.lang.Stringに好きなメソッドを追加できるような機能)や、methodMissing(存在しないメソッドを呼んだ時の挙動を定義できる機能)の例などを紹介していました。
    • 改めて、Groovyの強力さを実感し、ミッションクリティカルじゃないところは全部Groovyで書きたいな、と思わせる内容でした。
  • [CON3470] Scala Tricks
    • Scala書いた事ないのに、Groovyでテンション上がって、同じJVM言語だからという理由だけのノリで参加してしまいました。文法も知らず、関数型の概念もよくわかっていなかったので、当然の事ながら内容もさっぱりでした><
    • ただ、Javaにはないタプルとトレイトという新しい概念があって、特にトレイトを使うと、あるクラスに何かの機能をちょこっと付け加えたい時にJavaだと継承などを使って新しいクラスを作る必要があるところが、もっと気軽にクラス拡張できるんだ、ということを、例を交えて解説してありました。(Scalaをちょっと知ってる人からすると、当たり前か…)
    • 今までScalaは難しいというイメージしかなかったので、そうじゃなく素敵な部分があるんだ、やってみたい、と思えたことが大きかったです。


なお、2つのセッションとも同じスピーカー(インド系?のおじさん)で、非常に早口だったのですが、言いたい事はきっちり言いつつ時間内にまとめ、さらに例え話が面白いために会場は笑いが絶えませんでした。ソースコード事前に公開されていたのですが(JavaOne, San Francisco, September, 2012と書かれている2つ)、その完成系コードに至るまでの道のりをすべてライブコーディングで説明してくれて、一種のプレゼンの完成系を見た気がしました。今後、参考にしたいと思います。


ところで、今日はバテバテで、まったくセッションを聞きに行かなかったのですが、夜にお誘いがあってお茶していたら、11/9のJJUGでLTをさせてもらえることになりました!!まったりもしてられなくなりました!明日・明後日ラスト2日、走り切りたいと思います!