スパゲッティコード

色々やりたいので書いてこうと思います

Java Day Tokyo 2013行ってきました

Java Day Tokyo 2013 に参加して来ました!

Oracle主催のJavaイベント。 今回は主に次期バージョンのJavaについてのフィーチャーを紹介とか。

Java Day Tokyo 2013 togetterまとめ

参加したセッション

  • 基調講演
  • Ask The Experts!
  • Raspberry Pi NightHacking (Java SE / JavaFXを楽しもう)
  • Java IDE の最新トレンド
  • Java プラットフォームにおける Batch アプリケーション (JSR 352)
  • InvokeDynamic から Nashorn のご紹介
  • "Java The Night"

基調講演

OracleJava開発のリーダーみたいな人たちの講演。
主にそれぞれ新バージョンのJavaについての話だった。

はじめに

みんな、Java7使うと、パフォーマンスとかセキュリティとか色々向上するからぜひ使ってくださいね!
※ 補足: 5月14日にJava SE7 の日本語ドキュメントが公開されました。
http://docs.oracle.com/javase/jp/7/api/

Java7、update5あたりから一気にダウンロード数伸びてる。

リリースについて

JDK8は来年2月にリリース。
ホントは3ヶ月前だったんだけど、確実にするために来年2月にしたそうです。
JDK8は現在EarlyAccessで、みんな使ってね!(人柱募集!!!)ってことらしいw
あと、以降のJDKリリースは2年サイクルでやってくそうですよ。
3年サイクルくらいがいいなー。

Java SE

ラムダ式

Java8ではラムダ式使えるようになります。
コードが簡潔になります。
ラムダ式そのものは上記の効果くらいのもんだけど、本当の効果はこれに付随して並列処理をできるようになるというのが大きいところ。
今はスマホもマルチコアになってシングルコアなんてほぼないに等しいので、並列処理に最適化されたコードが書けるのは必要ですよね。
そうですよね。
(並列処理については別セッションで詳しくやってたそうだけど、裏セッションに参加してたため聞けず。そっちに参加すればよかったとちょっと公開してる)

デフォルトメソッド

インターフェースに基本のメソッドを追加できるように。
何がいいかって、インターフェースにメソッドを追加した際にデフォルトの動きを実装することで implements してる既存のクラスは必要なければわざわざ実装する必要がない、って話。

JVM

InvokeDynamicで動的型付け言語動かすのが良い感じになるよ!

Java FX

GUI 開発のためのツールキット群。
かなりすげーいろいろできそう。
テクスチャとか3Dとか、まあ色々。

サーバーサイドエンジニアなせいでGUIとかあんまり…。
クライアントツールとかたしかに作ろうかな、って思うんでまあ知っといたほうがいいんだろうなあ。
FXMLとかCSSとかでいけるっぽいから今度なんかあったら作ってみよう。
そうししょう。

あと、デモで使用してた MS の Surface が超いいかんじでした。
Coolです。
物欲くすぐられました。
やばい。

あと、ここのデモで名言出た。
「JDK8ダウンロード、イツヤルノ?イマデショ!!」
これ、日本人が言ったんじゃないですよ。
プレゼンターの方が言ってましたよw

組み込みJava

カードデバイスとかにもJavaが使えるぜ!
カードから大型機器まで、Javaは色んな所にいるんだぜ。
と、いうことだそうですw

どうもサーバーサイドエンジニアなせいで組み込み系は怖いしあんまり興味をそそられない・・・。
けどいつも見ててすげえな、って思う次第です。

Java EE

EE7 は今 Final で6月リリースらしいっす。
Java EE7の参照実装が GlassFish 4 。

まあ Java EE って色いろあるよねー。
後のセッションで出てくるけど、Java EE 使ってるってどこからなんだろうねw

JJUGに参加してくださいとか、みんな学習は一生続くんだぜー、ってお話を聞きました。
そのとおりですよ。
あとね、積極的にフィードバックを!ってことでした。
たぶん英語辛いだろうけど、変な英語書くより日本語でメールとかしちゃった方が誰か読んでくれるんじゃね?とか思っちゃいましたw

Ask the Experts!

基調講演で公演したJavaエキスパートたちが質問に答えるコーナー。

Java後方互換について

これはこれでみんなどうしたいの?って聞かれた。
もちろんミーハーな僕は、新しいフィーチャー派です。
現状は後方互換を切り捨てるってのはけっこう難しくて、たぶんJava9とかでも無理なんじゃね?って話でした。
ここに関しても、みんなどうしてほしいのってのを言ってましたよ。
あと、Scalaを使うってのが後方互換が必要なのかとかの一つの指標になるんじゃねーか、って話でした。
たしかに、現状の Java の問題を解決するために Scala ってのはある意味近道ではあるだろうし、いいんじゃねーかな。
でも今有名どころで Scala 使ってるのって Twitter とかくらいか?
まあ探せばいっぱいいるんだろうな。
最悪そのまま Java 書いても動くしなあw(意味ないけど)
自分はわりと Scala 好き派。

ラムダ式について

さっきの基調講演で出てきたラムダ式にクロージャって書いてたけど違うやろ、ってツッコミ。
うん、知ってる、だってw
ここでもイマデショでたwww

WebSocketについて

もうちょいサポートするやつらが多くなって使われるようになれば本番運用のノウハウもたまってくるってばよ、って話でした。
WebLogicも新しいバージョンだとサポートするらしいですね。
本番環境ではWebLogicも通るようにしてもらわねーとだね!

Java EE 使ってるって、どれくらいでそう言えるの?

たしかに、Java EE の中っていっぱいあるもんなあw
フルスタックで全部使って初めて使ってるって言えるのか?
答えはノー。
好きに使いたい奴を使えばいいさ、と。

もっと踏み込んで、Servletだけでもいい?って質問にはServletだけでもいいらしいw

だが Struts 、てめーはダメだwww
Java EE 素直に使え、って言ってた。

Raspberry Pi NightHacking (Java SE / JavaFXを楽しもう)

えーと、組み込み系苦手といいつつ、完全に趣味な感じで行ってきました。
別に特にどうってのはないんですけど、ジャイロセンサーとモニタくっつけて、FXで作ったゲームのデモやってました。
FX、夢が広がりまくりングだな・・・。
スピーカーのStephanはCPU900MHzにクロックアップしてるらしいwww
安定してるらしいよ。

Java IDE の最新トレンド

別名 IDE Wars。
オープニング動画はこちら
要するに宗教戦争ですよね。
わかります。
エディタ宗教戦争から派生したIDEの戦争です。
戦争とは言いつつ(誰も言ってない)、和気藹々とやってましたねw

個人的にはEclipse重すぎる(プラグイン入れすぎ)なので、どうにかなんねーかなー。とは思います。
NetBeansにしたいなー、ダメかなー。
IntelliJ IDEA も面白そうだけど有料だから会社で使うにはめんどくさいんだよなあ。

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

Java EE7から含まれる JBatch の話。
バッチ処理の上位層は定義ベースで書けるよって話。
チャンク構造のバッチの場合、入力・処理・出力をそれぞれ定義して実装すれば、あとは定義するだけで実行できちゃう、ステキ!っていうシロモノ。
後は定義の方で例外発生時の挙動とかも書ける。スキップしたり、終了したり。

まあ難点はXMLってことだけなのかなー。
別にいいと思うけど。
まあ数が多いとあれだけど・・・。

それから、並列化できるらしい。
これはいい!!

裏セッションではこんなまとめがw

なにがあったんだろーか

Java the Night

色んなスピーカーがLTするセッション。
9組がLTで自分がやってみたJava関連の話。
8分で話すってのはけっこう大変。
学生もいた。
あと最後の人がちゃんとオチを用意してくれてサイコーだったw

FX率が高いので純粋なサーバーサイドに関係ないやつはあんまり記憶に残ってないです・・・。
ごめんなさい。

大学生2人組

北海道の大学生たち。
FX使ったプレゼンツールの紹介。
pdFXってツール。
純粋にすげーな、こいつら。
羨ましいぜー、と思った。

桜庭さん

FX使ったプレゼンツール。
前の学生さんと内容がかぶってるというか・・・w
デュクレレがよかったです。

CTCの人

Raspberry Pi で Java を動かすときの注意みたいな話。
けっこうあれで Java 動かすのって大変なのね。

奥さん

8分間のうち、最初の6分間Javaの「じゃ」の字も出て来なかったセッションw
個人的にはこのセッションがすげー楽しかった。
本来の内容はミニ四駆で勝ちたいから情報収集するためにTwitter上からミニ四駆のツイート拾いまくって(Twitter4J)、データ蓄積して(MongoDB)、機械学習して解析(Mahout)、データを閲覧するってことだったはず。
けど、基本最初から最後までミニ四駆そのものの話題に終始してたw
個人的にはダッシュ四駆郎とか胸熱すぎたw
今のミニ四駆ってコースものすげーことになってんのなw
ちょうど今自分がMongoDBやってるから話聞きたかったし、Mahoutの話とかも最近気になってるから気にはしてたんだけどなあw

全体的に

セッション内の最後の方に質疑応答とかあったんだけど、Oracle 側のスタンスというかユーザーに求める姿勢みたいなのがなんとなくわかった。
あれってどうなるんですかー?とか聞いても、むしろそれはお前らどう思ってるんだよ、積極的に要望上げてこいよ、という感じだった。
たしかに、受け身な姿勢っていうか、あれどうなってんのって聞くくらいならもっと要望上げてこいや、って気持ちはたしかにそうだな、と思った。

単純にいいな、使えそうだな、って思ったのはJBatch。
たしかにバッチ処理ってデータ取得して処理して出力してって流れがほとんどだから、そこのコントローラーが定義ベースに鳴るってのはいいな、って思った。

まあとにかく一日Java漬けの日でした。