@thorikiriのてょりっき

@thorikiriがWebとかAndroidとかの技術ネタや本を読んだブログです

JavaOneTokyo 2012 #JavaOneJp に行ってきたよ 1日目

4月4日、5日に開催されたJavaOneTokyoに行ってきました。有給取って行ってきました。そういった意味で今の現場はわりと恵まれてますね。
自分が申込んだ時は、一般公募セッションがほとんど調整中だったので、Core JavaとEnterprise Javaばっかり選んでて、後から変更すればいいかと思って忘れてたら埋まってました。
会場はとにかく通路が狭いし、列んでるし、QR読み込んでからしか入れないので、環境的にはイマイチだったかなぁと思いますよ。あと、朝早いの苦手です。
もう忘れ気味ですけど、覚えてること、思ったこと、メモってることを書いておきますね。

JK1-01 基調講演

遅れて行ったので・・・。
Cloud押しですね。PaaSがターゲットのようです。まぁ、Oracleさんの持ち物を考えたらそうなるでしょうな。PaaSが標準化されたら幸せだよね!ってことなんですけど、たぶん標準化のスピードよりも他が進化するスピードの方が早いんだと思うんですよね。ずっこけるんじゃないかなぁ・・・。
HTML5はやっぱ考えてるようですが、JavaFX2.0もずっこけるんじゃないかなぁ・・・。その後もひとつもセッション聞いてないからわからないけども、そんな予感しかしない。たぶん、この方向性もあってAndroid禁句なんじゃねーの?と思っちゃうくらい。別にクライアントサイドに乗り出さなければそこまで喧嘩する必要もないしね。
丸山先生は去年末位からエンタープライズクラウドの現在と未来みたいなのをやってるから、覚悟は出来てるよ!
Java6は今年でサポートが終了するので、Java7使おうね!
資格試験は、Oracleらしく、ブロンズ、シルバー、ゴールドになるらしいです。特に要らないですね。
NECさんのお話はニコチンが切れたのでげふんげふん。

JS1-02 Java EE Web Container in the Cloud

Servlet3.0のおさらいで、web-flagment.xmlをjarにぶち込めますと、ランタイムで登録出来ますと、staticリソースもjarにぶち込むと、そんな感じですね。Webフレームワークを作る時って結構共通の画面とかの配布とかで困ることがあるんで、staticなリソースを入れるのって結構良いんじゃないかなぁと思った。思ったけど、カスタマイズしたい!って時にはどうするんだろうね?
EE7はCloud対応でPaaSやりまっせ、と。まぁ、こけると思ってるけども。MetaData as a Serviceとして、サービスとサービスの連携を記述出来るっぽい。けど具体的にどうするのかはイメージつかめてない。でも面白いかも?とは思う。UDDIみたいにこけない?
NIOではノンブロッキングIOだよ!node.jsっぽいのかな?ReadListenerとWriteListenerでやるらしい。WebSocketでJavaScriptと双方向でやれるっぽいね。node.jsあるのになんでわざわざ?って質問が出てたけど、JavaEEだからさ!Javaのエコシステム最高!みたいに言ってましたね。まぁ、ライブラリとかは充実してるよね。
セキュリティ機能は制約条件とか定義するとか行ってたけど、何のことか忘れた。認証してないとダメとかの話でしたっけ?あとは、CSRFとかXSSとかを予防する仕組みがあるとか言ってた。これは地味にうれしいかもね。

JS1-11 The Heads and Tails of Project Coin

コードの可読性を良くして、シンプルにバグの入りにくい、保守しやすいのを目指してちっちゃな改善をするのがプロジェクトコインだ!ってことです。地味だけど影響範囲がデカイので大変らしいです。
リフレクションの例外にSuperClassが出来たのは嬉しいね。しかも、今までのthrows句は変更しないでも、よしなにやってくれるらしい。でも、よくよく考えてきたら、リフレクションの例外なんて全部Runtimeで良くね?って思っちゃうよね。まぁ、今更変えるのも出来ないんだろうけど。
Switch-case文でStringが使えるようになったけど、あれは実はコンパイラがintに書き換えてるのさアハハハ!デコンパイルしたらどうなんだろうね。
AutoClosableを実装してれば、try-resourceで書けるよ!って話はまぁ、嬉しいっちゃ嬉しいかな。今でもIOUtilsでcloseしておけばそんなに問題にならないけど、それすらも書かなくて良いならいいよね。あと、ExceptionにaddSuppressedメソッドが追加されてて、2つの例外を投げることが出来なかったのを解決したね。catch句の中で発生した例外ってログ出力して無視してたのを付け足せる感じかな。
Java8でラムダとかジグゾウとか入るから、またその時にProjectCoinで改善するから、Coin先生の次回作にご期待ください。

JS1-21 Pragmatic Cloud and Paas with Java EE 7 (and GlassFish)

IaaSはハードウェアを仮想化
PaaSはミドルウェアを仮想化
SaaSはソフトウェアの仮想化?
なんか、睡魔が襲ってきた、わっ、何をするっ!ラップトップモード、ローカルモード、リモートモードがあるとか言ってたけど、何のことか記憶にない。

JS 1-31 Project Lambda: To Multicore and Beyond

司会のおねーさんがラムダをランバダって言ってて吹き出しそうになりましたけど、誰にでも空目ってあるから責めないよ、いや、攻められたいよ。
並列処理になって色々加速すんぜ!ってことですね。
ゴールはライブラリを進化させることなんですが、ライブラリ単体では限界があるよね。一方言語としては少数でじっくり変えていかなければならないから時間がかかるね。そこでライブラリの発展が限界にきつつある今、言語を進化させようとの事らしいです、なるほどね。
MapReduceとかコールバック形式でかくと、無名クラスを書くのがだるいので、ラムダ式にしましょうってこと。どうするかと言うと、単一メソッドのインタフェースならラムダで書けるようにすると。で、型推論するんで、大丈夫ですってことですね。
後、インタフェースにデフォルトの振る舞いを持てるようにしますと。
Itarableに色々とメソッド追加して、MapReduce的なのを簡単にしますね、と。例えば、filterとか、intoとかって言ってたかな。
パラレルにするには、流れるようなインタフェースのとこでパラレルっての呼んどけば良いみたいね。
色々と、なるほどね、と思うことが多かったですね。まだ決定じゃないけど、まぁ、そうなんだろうなぁ、と。
老害な人が読みづらいからラムダ禁止!とか言い出さないかだけが心配。

JS 1-42 JAX-RS2.0

JAX-RS1.0はWebProfileに入ってなかったけど、2.0は入れるっぽい。
クライアント、つまり、RESTの呼び出し側もサポートするようです。ただ、MVCはやらないので、勝手にすればいいじゃん!てスタンス。
HTTPクライアントって標準化してなかったけど、これでされることになります。流れるようなインタフェースでやるみたい。
FilterとIntercepterでカスタマイズしてください。PreMatchFilterはURLとリソースのマッピング前に実行されるから、認証してなかったら帰れ!とかはここでやるよろし。
非同期にも対応しました。今までThreadでやるしか無かったけど、ThreadだとContextを引き継げないから問題でしたね。

JS 1-51 HotRocket: What to Expect from Oracle's Converged JVM

HotSpotをベースにして、JRoketのいい部分だけを導入したよ。
もう疲れたよ。

スペシャルセッション LT

面白かった!!ポケットガイドにオールスターメンバーって書いてあったけど、まさにその通りでみんなおしゃべりじょうずですね。

その他

力尽きたので1日目でやめて、2日目はまた今度書くね。