2015/10/26

JavaOne 2015 San Francisco 2 日目

このエントリーをはてなブックマークに追加
Morning in San Francisco

さて、2 日目です。

朝ご飯を食べようと思えば食べられるぐらいの時間には起きたものの、写真を撮っていたらくいっぱぐれました ^ ^;;

ケーブルカーが走っている Market St. は San Francisco の目抜き通りの 1 つなのですが、そこに JINS ができてました。ユニクロの並び。これはちょっとびっくり。中国以外では、ここが初めてらしいです。

Duke's Cafe, JavaOne 2015 San Francisco
Duke's Cafe, JavaOne 2015 San Francisco
Duke's Cafe, JavaOne 2015 San Francisco
Duke's Cafe, JavaOne 2015 San Francisco
Duke's Cafe, JavaOne 2015 San Francisco
JavaOne 2015 San Francisco

さて、今日、聴講したのは次の通り。

  • TUT3246 Java 8 Stream API and RxJava Comparison: Patterns and Performance
  • CON6312 JavaFX 9: New and Noeteworthy
  • CON7682 invokedynamic for Mere Mortals
  • CON6841 HiDPI in Java and JavaFX
  • CON6823 Project Jigsaw: Under the Hood
  • BOF1518 Troubleshooting Slowdowns, Freezes, Deadlocks: Introduction to Thread Dump
  • BOF4390 Using Type Annotations to Improve Your Code

初日ということもあって、かなりまじめにセッション取りました。

今日、失敗したのが Jigsaw のセッション。

JavaFX のセッションをとりたかったので、Project Jigsaw Under the Hood の前に行われていた Introduction to Modular Development のセッションをとらなかったのです。Introduction to Modular Development は同じセッションを 2 回やるので、明日とろうと思ったわけです。

ところが、入門用のセッションを聞かずにいきなり応用編を聞いてもさっぱり分からなかったわけです。去年まで Jigsaw のセッション出ているから大丈夫だろうと思ったのが運のつき。

Project Jigsaw は今年になってからかなり進んだので、完全に取り残されました。明日からのセッションでリカバーしなくちゃ。

TUT3246 Java 8 Stream API and RxJava Comparison: Patterns and Performance

José Paumard, TUT3246 Java 8 Stream API and RxJava Comparison: Patterns and Performance, JavaOne 2015 San Francisco

朝イチはチュートリアル。というわけで Stream API と RxJava の対比のセッション。スピーカーは José Paumard。 Institut Galilée の先生です。

リアクティブプログラミングはほとんど知識がなかったので、チュートリアルだし聴講してみるかぐらいだったのですが、内容が濃い >< これをチュートリアルといってしまうのは、かなりつらいです。

はじめは Stream API から。

一般的な filter や map の説明から入ったのですが、すぐに Spliterator インタフェースの説明になってしまいました。普通、Spliterator インタフェースを直接扱うことはないと思うのですが..... チュートリアルですよ、このセッション。

concat や zip 的なものを Spliterator で作ってしまおうというのですが、作れるのは確か!

で、RxJava に移るわけです。非同期イベントと Subscriber 的なものということは分かりました ^ ^;;

なんで、Spliterator が出てきたのかなぞだったのですが、RxJava の機能との対比ということだったようです。確かに、Spliterator でやるよりは RxJava の方が簡単そう。

とはいうものの、RxJava の雰囲気しかわからなかったので、今度ちゃんと調べてみようっと!

CON6312 JavaFX 9: New and Noeteworthy

続いて、JavaFX。スピーカーは JavaFX のチーフアーキテクトの Kevin Rushforth と Jonathan Giles。

セッションには全然関係ないけど、Jonathan 太ったなぁ.... しかも、ひげ面になっていました。

さて、JavaFX 9 ですが、あまり新機能はないんですよね。かなりのリソースを Project Jigsaw 対応に取られてしまったようです。Jigsaw では公開 API と非公開 API が厳密に分かれるのですが、JavaFX はちょっとしたことでも下位のライブラリを使わなくてはいけなかったりするので、明確に分けるのは大変だったのでしょう。

特に話題にあがっていたのが、CSS 関連の API。CSS 関連の API の多くは com.sun のパッケージだったので、Jigsaw でアクセスできなくなってしまいます。そこで、見た目に関する多くのクラスを javafx で始まるパッケージに移行するようです。

ということで、Jigsaw に多くのリソースが取られてしまっているわけですが、Java SE 9 のリリース時期が半年遅れることになったので、もうちょっと機能を盛り込むらしいです。

今、予定されている Java SE 9 の機能としては以下のものがあります。

  • Hi DPI
  • Nested Event Loop
  • Pulse Listener
  • Platform Startup

かなり小規模な感じですね。まぁ、しかたないか...

Kevin Rushforth, CON6312 JavaFX 9: New and Noeteworthy, JavaOne 2015 San Francisco
Jonathan Giles, CON6312 JavaFX 9: New and Noeteworthy, JavaOne 2015 San Francisco

CON7682 invokedynamic for Mere Mortals

David Buck, CON7682 invokedynamic for Mere Mortals, JavaOne 2015 San Francisco

日本在住の David Buck の indy のセッション。David は JJUG でもロックのかなり詳しいところまで喋ってくれてたりするので、このセッションも深いところが聞けるかと思ったら、そうでもなかった ><

ちなみに、ロックに関しては JavaOne でもセッションしてます (CON7570 HotSpot Synchronization: A Peek Under the Hood)。

でも、このセッションは indy のチュートリアル的なセッションでした。

indy が初回に Bootstrap コールして、CallSite を作って、CallSite が MethodHandle を使ってメソッドコールするということなどを説明していました。

で、だいたい知っている話だったことに加えて、時差ボケでうつらうつらしていたら、後で David に「寝てたでしょ」と言われてしまいました ^ ^;;

全然関係ないけど、David が着てた T シャツは JVM Language Summit のもの。いいなぁ、JVM Language Summit は一度参加したいんだよなぁ。

CON6841 HiDPI in Java and JavaFX

Jim Graham, CON6841 HiDPI in Java and JavaFX, JavaOne 2015 San Francisco

昨日の Keynote で、JDK 1.0 当時のクライアントチームの写真に出ていた Jim Graham のセッション。Jim は、ほんとグラフィック一筋だよね。

とはいうものの、このセッション、人気ないです。JavaFX の中でも、かなりマイナーな話題だからなぁ....

先ほどの Kevin と Jonathan のセッションでも JavaFX 9 の新機能という扱いですが、Mac では先行して導入されています。また、JavaFX だけでなく、AWT、Java 2D、Swing での HiDPI についても触れています。

JavaFX での HiDPI はフォントのスケーリングとイメージのスケーリングが中心になってます。DPI に応じたスケーリングを行うのですが、Windows だけはいろいろとセッティングが必要になるようです。

BOF1518 Troubleshooting Slowdowns, Freezes, Deadlocks: Introduction to Thread Dump

サムライズムの山本さんのセッション。

彼のスレッドダンプ解析ツールの侍を使ったスレッドダンプの解析のセッション。写真撮ってたので、あんまり聞いてないです ^ ^;;

Yusuke Yamamoto, BOF1518 Troubleshooting Slowdowns, Freezes, Deadlocks: Introduction to Thread Dump, JavaOne 2015 San Francisco
Yusuke Yamamoto, BOF1518 Troubleshooting Slowdowns, Freezes, Deadlocks: Introduction to Thread Dump, JavaOne 2015 San Francisco
Yusuke Yamamoto, BOF1518 Troubleshooting Slowdowns, Freezes, Deadlocks: Introduction to Thread Dump, JavaOne 2015 San Francisco

Yusuke Yamamoto, BOF1518 Troubleshooting Slowdowns, Freezes, Deadlocks: Introduction to Thread Dump, JavaOne 2015 San Francisco
Yusuke Yamamoto, BOF1518 Troubleshooting Slowdowns, Freezes, Deadlocks: Introduction to Thread Dump, JavaOne 2015 San Francisco

BOF4390 Using Type Annotations to Improve Your Code

今日の最後は、ワシントン大の Michael Ernst と、ワーテルロー大の Werner Dietl の Type Annotation に関するセッション。

Michael のセッションは以前も出たことがあるんだけど、とてもエネルギッシュ。初日の最後にこのパワフルなのはなかなかすごいことです。

今までのアノテーションは宣言に対して記述できたのですが、Java SE 8 で導入された Type Annotation は宣言ではなく、型の使用に関して記述できることが異なります。

じゃあ、Type Annotation を何に使うかというと、型システムの強化に使おうということなのです。Java の型システムは弱い (weak) なので、間違いを防止することが十分にできないといいます。それを補うのが Type Annotation というわけです。

で、彼らが作っているのが Checker Framework です。Checker Framework を使うと、@NonNull とか @Nullable などのアノテーションを使用して、コードをチェックすることができます。

アノテーションの種類によってチェッカがあって、使用するチェッカをコンパイル時に指定するような使い方をします。@NonNull や @Nullable は NullnessChecker です。

チェッカを自作することも可能なので、やってみようかなぁ。

Michael Ernst, BOF4390 Using Type Annotations to Improve Your Code, JavaOne 2015
Werner Dietl, BOF4390 Using Type Annotations to Improve Your Code, JavaOne 2015

おまけ

Session Survey Machine, JavaOne 2015 San Francisco

今まで JavaOne ではセッションのアンケートというのを紙で、マークシートで行っていたのですが、はっきりいってめんどくさかったのです。なので、書かなかったこともしばしば。

ところが、今年は変わりました。

セッション会場の入り口のところに上の写真のようなタッチパネルが設置されていて、アンケートを入力できるのです。

ボタンを押すと、それに応じてアニメーションが表示されます。ちなみに手タレは bitter_fox くんです。

でも、これ 1 人で何度も押せるし、あんまり意味ないんじゃないかなぁ....

これどうやら JavaFX で作られているらしいです。で、裏を見ると、Raspberry Pi がダクトテープで固定されている ^ ^;;

さすが、アメリカ人。やることが雑ww

Session Survey Machine, JavaOne 2015 San Francisco
Session Survey Machine, JavaOne 2015 San Francisco

0 件のコメント: