Java Day Tokyo 2013に参加!

念願のhttps://oj-events.jp/public/application/add/64#a01に行ってきました。

  • 基調講演

Simon RitterさんのJavaSE8のお話ではじまりました。リリースは来年の2月で、その後2年ごとにバージョンアップしていくそうです。
その過程でプリミティブ型がなくなりすべてオブジェクトになるとか、Java12とか、、将来の展開が楽しみです。
JavaSE8は実際downloadしてちょっとだけですが使っています。今日時点では、b89です。

次に、Nandini RamaniさんのJavaME、JavaFXのお話。企業が業務用アプリにJavaFXを使っている事例も紹介されていました。
Jim Weaverさんが、港のコンテナを3Dで表示するデモをしました。それとJava8のDownloadをいつするの「今でしょ!」と日本語でお話されたのでとても印象に残っています。
日本でも企業がJavaFXを使ってくれるようになって、いつかJavaFXを使ったシステム開発に参加できればと思いました。
次に、Cameron PurdyさんのJavaEEのお話。Arun GuptaさんがWebSocketのデモをしました。
WebSocketは是非使ってみたいです。
最後に、Sharat Chanderさんによるコミュニティーのお話。日本のコミュニティはアクティブであると紹介されていました。
JJUG会長の鈴木さんが、日本での活動を紹介していました。そういえば、今までJJUGに登録するのをハードル高く思ってしていなかったのですが、「いつ登録するの?今でしょ?」で早速登録しました。

  • Ask The Experts!

貴重なお昼の時間を質疑応答に対応していただいたスピーカー、スタッフの方々、ありがとうございます!

  • Raspberry Pi Night Hacking

Raspberry Piを使った3Dのデモがとっても面白かったです。
Stephen Chinさんと言えば、各国でNight Hackingツアーをしているイメージがあります。是非日本でもツアーをして欲しいです、、、

実際のコードを使ってLambdaのお話などなど。
個人的には以下のコードをJava7でコンパイルした時は、「RunnableSample$1.class」クラスが生成されるのですが、Java8でlabmda式で実装すると生成されない仕組みが聞きたかったです。
(レベルが高くてきっと理解できないと思いますが、、、)

  • Java7での実装
import java.util.concurrent.*;
public class RunnableSample{
    public static void main(String... args){
        Runnable r = new Runnable(){
            @Override public void run(){
                System.out.println("Run Java7");
            }
        };
        FutureTask<?> task = new FutureTask<Void>(r, null);
        task.run();
    }
}

  • Java8での実装
import java.util.concurrent.*;
public class RunnableSample{
    public static void main(String... args){
        FutureTask<?> task = new FutureTask<Void>(
            () -> System.out.println("Run Java8")    // ここ
            , null);
        task.run();
    }
}

最近ですがJava8のb87、b88を使っていた時、「Stream」が使えないと悩んでました、、、
でその後、最新版のb89では「Stream」が使えるようになったのですが、今度はb88では使えた「Iterator#forEachRemaining」が最新版のb89では使えなくなっていました。
そのことをスピーカーのSimon Ritterさんにセッションが終わって質問したのですが、「Java8はまだ開発途中なので今はそういった変更の時期です、しかし今後1ヶ月ぐらいでそういった変更はなくなっていく予定です」ととても親切に回答していただきました。とても緊張していたので「RunnableSample$1.class」クラスは質問できずに、(英語力不足でもあるし、、、)

JavaFXと他の言語、GroovyFX、ScalaFX、ClojureFX、Visageでのコードの紹介、実際のコードの行数と文字数を紹介していました。
それと各言語をアニメで表現していました。アニメのことがよくわからないのですが、とってもうけていました。
スピーカーであるStephen Chinさんから「JRuby」の開発者の方が会場にいるかの質問がありましたが、誰もいないようでした。
質疑応答で誰も質問する方がいなかったので、各言語のパフォーマンスについて質問させていただきました。実装によるところが大きいですが、Java、????の順ですと回答いただきました。(すみません、各言語の順番を回答いただいたと思うのですが、このブログを書いている時点で思い出せないです、、、セッションに参加していた方でコメントいただけると嬉しいです)
JavaFX1つでの機能がおおくてまだまだ使いこなせていないので他の言語に挑戦するのは先になりそうです。(涙)

Jim Weaverさんは、Windows8を使ってデモを行っていました。JavaFXで簡単にタブレットでの操作を書けるのでぜひ近いうちに挑戦したいです。
(その前にデバイスを購入しないといけないのですが、、、)
そうそう、Weaverさんは「いつやるの?今でしょ!」をここでも使ってました。それと発表の中でPaginationのデモで数字を「イチ」「ニ」、、、とここでも日本語を使っていました。
日本のことが好きになってくれているようで嬉しいです!

9名の方々がそれぞれ8分のLTを行いました。しかも7名の方がJavaFXを使用していました。2番目には大学生の方も参加していました。
最後に拍手の大きさで、@さんと@さんにトロフィーが授与されました。おめでとうございます!
@さんの資料はHeapStatsのデモ (Java The Night)です。
個人的には、@さんのJavaFXで作ったプレゼンツール「CARAIBE」は是非使ってみたいです。
最後の@さんのミニ4駆のお話は最後までお聞きしたかったです。早くもブログが書かれていました。Java Day Tokyo 2013 #jdt2013 - blog4j 2.0

最後に@さんからJavaSE7のAPI日本語化の発表がありました。14 | 5月 | 2013 | 寺田 佳央 - Yoshio Terada
日本語化にご尽力いただいた方々、日本ORACLEの方々本当にありがとうございます。

参加したセッションがとっても興味深いものばかりで、勉強したいことがまたまた増えました。嬉しいような、いつまでも追いつかないので悲しいような複雑な感じです。。。
実際のセッションでは、本当に学ぶことが多く、このブログには書ききれていませんが、今後勉強していく過程での励みにしていきたいと思います。
当日は緊張していて、Twitterでつぶやくこともできなく、昨日のことを思い出しながらこのブログを書いているので、記載内容に誤りなどありましたら、是非コメントいただけると幸いです。

最後に、スピーカー、スタッフの方々に感謝、感謝です!
ありがとうございます!とっても楽しい充実した日でした。