Java Day Tokyo 2013 参加報告

5月14日、日本オラクル主催の "Java Day Tokyo 2013" が東京・秋葉原で開催されました。
https://oj-events.jp/public/application/add/64

f:id:ynie:20130515084802j:plain

秋葉原UDXに、こういう場所もあったんですね。立ち話したオラクル寺田さんによると、1000名以上の来場者とのこと。ぎっしり入った会場は、スーツ姿の方が多い印象です。もちろん内容が Java EE 7、つまりエンタープライズ系に特化したものですので SIer の参加率が高いでしょうが、関心の高さが伺えます。先週の土曜日に開催された JJUG CCC 2013 Spring とセットで参加した人も多かったのではないでしょうか。

ここからはじめる、JSR-356 WebSocket

Java EE 7 から、アノテーションで簡単に WebSocket のサーバ/クライアントが開発できます。プレゼンテーターの Gupta 氏による、REST API とのパフォーマンス比較は、桁違いで WebSocket の圧勝でした。HTTP Headerなどのオーバーヘッドが積み重なるRESTと異なり、WebSocketは純粋なバイト数のみのやりとりということが実証されています。

よさげなのはわかるのですが、IE が 10 以上というのがエンタープライズ系では厳しい要件です。Chrome, Firefox, Safari その他は皆、OKなのですが...。

通信のすべてを WebSocket に、というのはまだ早いでしょう。しかし部分的に取り入れて行くというチャレンジはやってみたいと思います。

Java プラットフォームにおける Batch アプリケーション (JSR 352)

最初の Java EE 登場から15年近くたって、ようやく、Batch 系の「標準」フレームワークが登場します。Spring Batch を強く意識しているようで、プレゼンテーターの Gupta 氏も "Spring Batch を使っている人はどのくらいいる?" とわざわざ確認していました。(Gupta 氏、忙しいですね。WebSocketにBatchとは、だいぶ毛色が違う技術です)

Batch系なので、特に目新しいことはありません。Read-Process-Writeという手順の中に、リトライの指定や、さらに細かいタスク粒度の指定が行えるクラス群が備わっています。複数サーバによる並列実行はまだ先のテーマということですが、おおむね基本的な枠組みは備わっているという好印象です。これも是非、使ってみたいと思います。

InvokeDynamic から Nashorn のご紹介

プレゼンテーターのSimon Ritter氏が、いかに真摯に動的言語の高速化に取り組んでいるかが伝わる内容でした。ストーリー性があって楽しめました。型のない JavaScript で

func(a,b) {
return a+b;
}

と書かれたとき、これをどうやってJVM上で*高速に*実行させることができるだろう?という疑問からはじまりました。aやbはintなの、doubleなの、いやStringだったらどうする?そこからInvokeDynamicのアイデアが披露され、それを技術基盤としたNashornは、Rhinoと比較してどの程度の高速化が実現できるか、という知見を披露されました。

いくつかの試験でばらつきはありますが、概ねパフォーマンスが 2 倍から 5 倍になっているようです。Wagby も現在は Java SE 6 の Rhino を使っていますが、Nashorn による高速化に大いに期待しています。

Concurrency Utilities for EE 7

私は参加できなかったセッションなので、オラクル寺田さんのブログより。
http://yoshio3.com/2013/05/15/concurrency-utilities-for-ee-7/

今まで Servlet コンテナ、EJB コンテナで禁止されていた、スレッド生成を、安全に EE 環境にも適用できる(API)

ということで、こちらも期待しています。CSVやExcel形式でのダウンロードやアップロード更新機能で使えないかと考えています。

Java SE 7 API 日本語版提供開始

こちらもオラクル寺田さんのブログより。
http://yoshio3.com/2013/05/14/

オラクルさんのJavaへの技術投資が確実に行われている(そして日本もきちんと対応している)ことに改めて感謝です。

所感

サン・マイクロシステムズの買収前後は不安視されていた Java ですが、現在はすでに安定感を取り戻し、さらに Java EE 7/ Java SE 8 で再び技術リーダーになろうとしています。これは歓迎すべきことです。

個人的には OS X Lion で Java 7 が動作することに拍手です。ロードマップの紹介で "Lion でも Java FX が動作する" とあり、嬉しかったです。

先日のブログにも書きましたが、国内のエンタープライズ Java アプリケーションは Struts に変わるフレームワークを欲しています。いまですと Spring 3 + Spring MVC が現実的に手に入る安定基盤ですが、Java EE 7 の登場により、今後のメインストリームは Java EE になるという機運が盛り上がっています。OSSと有償製品の両方が同じ Java EE 仕様の枠組みの中で切磋琢磨していくようになれば、私たちのような開発者は大いに安心できます。昨年、六本木で開催された Java One Tokyo 2012 に続くイベントの実施で抜群のアピールができていますので、オラクルさんには是非、この勢いで来年もイベントを開催していただけることを期待しています!