@thorikiriのてょりっき

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

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

昨日メモと感想を書くの力尽きたので、今日はその続きで2日目の様子を書きます。

JK2-01 基調講演

遅れて行ったので・・・ほとんど聞いてません。
富士通さんのとこの話ではミクさんのこと言ってました。ミックミクなんですね。
あとは、ニコチンをほk(ry

JS2-01 The Java EE 6 Programming Model Explained

特に新しい話題はなかったけど、Springをはじめとして、OSSフレームワークに色々学んだようです。ヘビーウェイトとか言われて反省してます。XML地獄反省してますとのことです。個人的には未だにヘビーかなと思いますけど。
ManagedBeanはコンテナに入れられるPOJOだそうです。リソースをInject出来る。今まで@Inject User userみたいに書いてたのに続いて、@Inject @Logined User userみたいに、@Loginedを開発者が定義して、意味定義出来るようです。これはちょっと嬉しいかなと思いますね。
そんな感じです。

JS2-11 Project Jigsaw Putting it all Together

Jar地獄だったねと。rpmみたいにできたらいいのに!って言う願いみたいですね。確かにAntとか使うのも良いけど、Jarは自分で集めないといけないし、Mavenなら自分で集めなくてもいいけど的な思いはあるよね。
module-info.javaに依存関係とかモジュールの定義を書くようにするよ解決してくれるみたいです。たぶん発想はMavenだけど、XML定義をするんじゃなくて、module-infoに書いてそれもjarに含めて提供する方式なんでしょうね。たぶんどっかにセントラルリポジトリがあるだろうし、組織でリポジトリは作らないとたぶんダメだと思います。
依存関係はrequires @1.0.0みたいに書く。
ただ、結構コマンドを使いこなさないとダメそうですね。その辺はIDEで解決されるようになると思いますけど。

JS2-21 How to Write Low Latency Java Applications

GCのパフォーマンス的なお話だったかと思います。このあたりはあまり得意ではないのであれですけど。
普遍で小さいObjectを使ったり作ったりするのが最もパフォーマンスが良いです。まぁ、そうですよね。でも、あんまりやり過ぎるとGCの回数が増えて、すぐにOld領域に移されちゃうから、気をつけてね。
Objectの生成が重い処理はプーリングすると良いのは常識だよね。でも、大きいプールに沢山のObjectを突っ込んでると、CGの時に生存確認しにいくObjectが増えるから、これも注意な。
Finalizeは使うな。まぁ、使うなって言うか、期待するなが正しいよね。
JITコンパイラはその時に動いたので判断するから、必ずしも必ずしもだぞ!!だからと言って、特別なことはする必要はないから、今まで通りに意識しないで作っとけよ。意識しないでと言うか、特別JITを意識しないでって意味でね。下手に考えるよりコンパイラに任せた方がはるかに正確だし、ミスとかしないよね。
困ったときはTool使って解析すりゃいいよ。

JS2-33 JSR 353: Java API for JSON Processing

JSONを鉄道ダイアグラムで説明してました。JavaScript Good Partsでやってたアレですね。
JSONはとってもシンプルなので、今時のWebAPIではサポートされています。そして、XMLのように閉じタグがないから軽量ですよ、と。
Objectとのマッピング機能はないです。Java8か9には標準で入ると思われる。
とは言うものの、今でもJSON関連はライブラリ使ってるし、やっぱりObjectとマッピングしたいから、これを使うかどうかって言うと微妙かなと思います。でも、悲しいことに世の中ではOSS禁止な!みたいなプロジェクトもあるみたいで、そんなこと言い出す人はお亡くなりになればいいのになと思います。
個人的には、JsonPullParserが好きでよく使ってます。APTかわいいよAPT。

JS2-41 Java Parsistence API on the Grid

JPAとか使ったこと無いからよくわかんないんだけど、うん、Hibernateも使ったことないんだ、実際。みんな使ってるの?正直聞いてみたい。日本以外では結構使われてるんだろうか。日本がガラパゴスなのだろうか。
で、JPAに限らないけど、DBのパフォーマンスの話はあるんだよね。アプリケーションサーバは分けたりするけど、やっぱりDBのマスターはひとつだったりして、(スレーブはあるにしても)。JPAではキャッシュに対応してるのでキャッシュを使うけど、アプリケーションサーバが分けられてる場合には、そのサーバ間で同期しないといけないね。キャッシュをオフにするとパフォーマンス問題が出るね。
キャッシュコーディネーションで同期したりするけど、やっぱ完璧じゃないよね。
とかって言う話です、途中で疲れが出てしまいましたとさ。

JS2-51 The Future of JavaScript in the JDK

なんでわざわざJDKでScript言語サポートするの?うん、Javaはライブラリが豊富だからね。それを使いつつもJavaScript使いたいよね。実はJava5かJava6からサポートしてるんだぜ?知ってた。
今まではRhinoってやつだったけど、次はNashornってやつだ。シームレスにデバッグ出来るぞ。ECMAScript262 Edition5をサポートしてる。
Java部分とScript部分のコンテキストは分離されてる。つまりクラスローダーが別なんだね。そんな感じだからデータのやりとりは出来ない。
NashornはJava8には入るらしいよ使ってみてね。
node.js用に書いたコードをJavaから動かしてたけど、結構面白そうでした。これは機会があれば使ってみたいかな。

スペシャルセッション パネルディスカッション

日本を代表するJavaとかJVMを使う言語とかのコミュニティの人たちが、コミュニティについて話し合うパネルディスカッションでしたね。僕もなかなか赤く染まれない感じです。と言うか、何でしょう。Oracle好きになれない。商売の仕方が。
結構力になるお話が聞けて、勇気を持てる気がしました。がんばります。

その他

出れなかったセッションでも、色々と聞きたいなと思うんですけど、資料とか出席したセッションのしか見れないんですよね?そのあたりが不満かなと思います、なんとかしてください。
あと、写真とか録画とかダメとか言ってましたけど、きょうびこの手のネットになれた人たちが集まる集いでそれはないんじゃないかなぁと思います。改善してくださるようお願いします。そうじゃないと赤くならねーぞ!って言われ続けちゃうんじゃないかなぁと、老婆心ながら思う次第でありますよ。なんかズレてる!みたいな。