3/21 JJUGイベント 「祝☆Java 8 Launch」に行ってきました

3/18(日本では3/19でしたが)にとうとうリリースされたJava8。

自分は残念ながらJava5コンパイルしないといけないプロダクトに5年も関わってるのですが、Javaの進化を体感したくて参加してきました。

http://www.java-users.jp/?p=917

 

    • Java SE 8 正式リリース(寺田佳夫さん)

 

素晴らしいスライドで、全体像がわかりやすくてありがたいです。

Java8の言語的な機能面だけでなく、プラットフォームとしてのJavaの進化についても触れられていたのが印象的でした。

どうしてもパフォーマンス向上は気になる面ですので。

公式ドキュメント、すぐ心が折れてしまうのですが、ちゃんと読もうと思いましたw

唯一難点を上げるとすれば、Java5使ってるとこで手を挙げて辱めを受けたのが心の傷です。

 

    • 徹底解説!Project Lambdaのすべて リターンズ(吉田真也さん)

 

吉田さんのラムダについてのセッション。

この資料もとてもわかりやすくて、職場では開きっぱなしにして何度も見返してます。

 

匿名クラスのシンタックスシュガーではないという部分が勘違いしていた部分でした。

Parallel時の終端操作は、各スレッドで終端操作したものを集めるので、スレッドセーフではない操作をcollectでやってもいいというとこも、気になってた部分なので聞けてよかったです。

関西弁とか◯回生って言い方も懐かしくて良かったですw

 

  • Brand new Date and Time API(蓮沼賢志さん)

 

実はDate/Calendarの評判が悪いのは知ってても、たまにしか使わないしまぁ関係ないかなくらいに考えてましたが、時間の定義についての話がとっても面白いセッションでした。

手元のメモが1番多いのも蓮沼さんのセッションでした。

新書になったら買いますw

あと、試しにJapaneseChronology使ってみたら、ホントにH26-03-21と表示されて驚きました。

 

 

  • null書いたら負け!Java8コーディング作法(きしだなおきさん)

きしだのはてなでお馴染みのきしださん。

Optionalの話と、Java8を開発の中でのTipsを教えてもらえました。

 

Optionalは実はセッション中はぴんと来なかったのですが、実際にOptionalを返して、ifPresent使ったソース書いてみると処理のしやすさを感じました。

(Optionalのmapやらflatmapやらがまだ理解できてないので、そこは勉強しないと)

 

あと、Map#computeIfAbscentはすっごい便利です!

まぁGuava使えよって言われる話かもしれませんが、

List<V> valueList = map.get(key);

if (valueList == null) {

    valueList = new ArrayList<>();

    map.put(key, valueList);

}

valueList.add(value);

みたいなコードは死ぬほど書いてきました。

これが

map.computeIfAbscent(key, k -> new ArrayList<>()).add(value);

で済むってこと!

何回MapにputしないでListにaddして、テスト書いて死にたくなったか・・・。

 

  • JavaFXGUI by Illusion(櫻庭祐一さん)

 

私は仕事で関わっているアプリはSwingアプリなので、JavaFXは気になっているトピックでした。

ITProでものすごく詳細な記事を書いてくれる櫻庭さんのセッションでしたが、JavaGUIアプリとは思えない(!)機能の数々がデモされて、 唖然としそうなくらいでした。

これがJavaなのか・・・。

 

Swingからの移行の部分では、FXMLはJFormDesigner使ってるならあんま違和感ないかなーって思うんで、TableModelとTableColumnの考え方の違いが1番影響大きそうです。

SceneBuilderは1年半くらい前にちょろっとだけ触っただけなので、これを期にITProの記事を見ながらチャレンジしてみようと思います。

 

  • from old Java to modern Java – reloaded (谷本心さん)

老害にならないためのJava8書き方講座。

とにかくfor/whileループを見たらラムダにできる、と。

書き換え前後が提示されて分かりやすい資料だったので、アップ待ち望んでます。

 

実際職場で今の仕事のソースコードをJava8環境で書き換えてみると、確かに面白いほどにループ処理がなくなりますね。

そうすると、Collectionの使用箇所もすごく減っていって面白いですね。

 

SQLひたすら書いているうちに、Groupingの仕方とかがわかってきたのと同じ要領って言葉がすごくしっくりきました。

実際書いてみると、SQLよりは文章的に書ける印象なので意外とラムダ受け入れられるんじゃないかなーってのが印象です。

(◯◯でフィルターして、XXした値をListにまとめるってイメージをそのまま書く感じになるので)

 

 

総括すると、お昼すぎなのに眠くなる瞬間が全くないくらい楽しかったですw

実は三十路になるまでこういった社外イベントに一切出てなかったのですが、今後はもっと外に出ていきたいと思いました。

5月のJava Day TokyoとJJUG CCC Springは行きたいなー。