JavaOne2013に参加するためサンフランシスコに行ってきました。JavaOne参加は今年で3度目です。そのレポート記事です。
去年のレポートはJavaOne2012@サンフランシスコ レポートを見てください(関連記事もたどれます)。
3年前のレポートはJavaOne/Oracle OpenWorldレポート – ラリーエリソン編 –から関連記事をたどってください。
今年のJavaOneもOracle OpenWorldと同時開催です。同時開催と言うと聞こえはいいですが、実態は、メインとなるOracle OpenWorldの片隅でJavaOneがついでに開催させてもらっている雰囲気です。今年のOracle OpenWorldの登録人数は6万人近いと公式発表がありました。JavaOneの登録人数は公式発表がありません。噂で人数を聞きましたが、信憑性が不明なのでここには書きません。イベントの規模を見ると、Oracle OpenWorldが世界最大のITイベントのひとつなので、比較するとJavaOneは悲しくなってきます。
と寂しい話を書きましたが、比較対象のOracle OpenWorldが異常値なだけで、JavaOneは充分に巨大なITイベントです。プログラミング言語を冠にしたイベントで、JavaOne規模の世界的イベントを開催できる言語は他にないはずです。イベント規模だと次点でPythonあたりでしょうか。どうでしょう。
JavaOne以外のサンフランシスコ話を先にします。
サンフランシスコはOracle一色なので、入国が尋常でなく簡単でした。”How long?”の質問に”One week”と答えた後、”Oracle?”と聞かれて”Yes”と答えたら入国時の質問が終わりました。
観光のためJavaOne後に一日サンフランシスコに延滞しました。
せっかくなのでUCB(カリフォルニア大学バークレー校)を見てきました。かつてここにBill JoyがいてBSDを開発していたのだと思うと感慨深いものがありました。コンピュータ演習室を見つけてどんなOSが使われているのか見たかったのですが、残念ながら演習室を見つけられませんでした。ちなみに、15年ほど前にMITを見に行った時は、演習室にあるPCのOSの大半はGNU/Linux(記憶では一部x86 Solarisもあったはず)で、やはりそうかと思ったものです。UCBで演習室が見つけられない代わりに学生が使っているノートPCを観察しましたが、90%の学生がMacを使っていました。カーネルがBSD由来だからでしょうか。使っているテキストエディタは調べていません。UCBの学生なのでvimに違いないと勝手に想像しています。
去年のレポートでユニクロのサンフランシスコ店のオープンの話を書いていますが、一等地にあるユニクロは特に変わりなく、街に馴染んでいました。一方、去年、空港に広告をばんばん載せて、AT&Tパークの近くで窓から海の見下ろす立派なオフィスを構えて飛ぶ鳥を落とす勢いだったGREEですが、あらゆるものが消え失せました。永井さんは元気でしょうか。
JavaOneの話に戻ります。
初日の日曜日(2013年9月22日)の昼12時から基調講演が始まりました。場所はMoscone Northの広いホールです。微妙な時間から開始した理由は、夕方からメインイベントのOracle OpenWorldの基調講演が同じ場所で開催されるからです。
JavaOne基調講演の冒頭、「我々はMosconeに戻ってきたぞ」と会場が盛り上がりました。
この盛り上がりの理由を知るには多少歴史の知識が必要です。SunがOracleに買収される以前のJavaOneはMosconeで開催されていました。SunがOracleに買収されてから冒頭に書いたようにJavaOneはOracle OpenWorldと同時開催になりました。Oracle OpenWorldがMosconeを使うため、JavaOneはMosconeから追い出されて、近くのヒルトンホテル(と他の近隣ホテル)で開催されるようになりました。今回、初日の基調講演だけはMosconeで開催できたので、盛り上がったわけです。
今年のJavaOneの基調講演の一番の盛り上がりはここだったのではないか、と言うぐらい他に盛り上がりはありませんでした。ネタが悪いと言うより、単純に盛り上げるための演出不足の印象です。途中、Project Avatarをオープンソースにする発表もありましたが、あまりにさらっと発表するので、会場も盛り上がるタイミングを逸したという雰囲気でした。個人的にはAvatarのTSA(Thin Server Architecture)がJava EEの標準アーキテクチャになって、はやくJava EEはJSFから訣別すればいいのにと思っています。
基調講演では当然Java8の話がありました。本来の予定であれば今回のJavaOneのタイミングでJava8リリースをして大盛上がりのはずでした。残念ながら、来年の4月にリリースが延びました。今年の基調講演が盛り上がらない最大の戦犯ですが、まあ、良いものがリリースされれば、リリース時期は本質ではありません。とある事情で、個人的にはJava8のリリースが延びて助かっています。
Java8の目玉機能は当然Lambdaです。他にもDate/Time API(JSR310)、Nashorn(Rhinoに代わるJVM上のJavaScript処理系)、Type Annotation、Compact Profile、Securityなどが触れられました。一見地味ですが、Date/Time APIは今回のJavaOneで大きくフィーチャーされていました。もちろん、Lambdaほどではないですが。
基調講演ではJava9の話もありました。Jigsaw、Project Sumatra(GPUを使う機能)、Reification(ジェネリックスの型イレイジャの見直し)、JNI 2.0(ここは少し盛り上がった)、省メモリ対応など挙げていました。コルーチンなどの案も挙がっているようですが詳細は不明です。
去年に引き続き、NetBeansのProject Eazelのデモもありました。
Project EazelはNetBeansを使ってサーバサイドのJavaのみならず、クライアントサイドのJavaScriptも対話的にデバッグできる優れものです。対話的デバッグのため、NetBeansとWebブラウザが内部的にWebSocketで通信すると言っていました。WebSocketと言うと、どうでもいいチャットのサンプルコードばかり取り上げられますが、Project Eazelのような利用は適材適所の印象です。Project Eazelのデモ中に、見事にNetBeansが落ちました。デモが失敗すると会場が大盛上がりでした。思い出してみると、ここが今回のJavaOneの一番の盛り上がりでした。
Project EazelのデモでKnockout.jsを使っているのが印象的でした。他に(聞き取り落としがなければ)Angular.jsとjQueryに言及していました。なお、JavaOne全体のセッションで、Angular.jsへの言及が目立ちました。個人的にJavaScriptライブラリのトレンドが気になるのですが、今回、Angular.jsの躍進が目につきました。
基調講演でJava EE7の紹介もありましたが、遂にリリースしたぞ、という盛り上がりはなく、淡々とJava EE7を紹介をしただけでした。Java EE7は2013年6月のリリースなのでもっと盛り上げてもいいはずなんですが。Java EE7の紹介ではWebSocketの言及に一番時間を割いていました。これは、技術的な重要さと言うより、派手なので言及しやすいだけだと思います。
その後、Raspberry Piベースのタブレット、名づけてDukePadが出てきました。が、ごめんなさい、特に興味ありません。Oracleが本気でタブレットを出すとは思えないので、無意味な余興にしか見えません。好意的に見ればOracle社内のJavaチームに余力があるとも言えます。悪く言うと、会社の中のメインストリームから外れた日陰者に見えてしまいました。斜に構えすぎかもしれません。気にしないでください。
DukePadもそうですが、今回のJavaOne基調講演で妙に力を入れて紹介されていたのが、Java MEでした。Internet of Things(IoT)の時代になってJava MEの重要性が増しているというメッセージを強調していました。家電や車、あるいは今までIT化されていない各種デバイスがインターネットにつながるIoTの時代が来つつあるのは間違いありません。大きな変革であるのも間違いないと思います。
しかし、既に何10億台のデバイスで採用されているJava MEがその中心になる、というメッセージに違和感を感じずにはいられません。と言うのも、その何10億台のデバイスの市場を猛烈な勢いでAndroidに食われているのではないか、と思ってしまうからです。組み込み系の事情に詳しくないので、単に自分の認識不足かもしれません。Androidはしょせんスマートフォンとタブレットだけであって、その他のデバイスの標準は依然としてJava MEなのかもしれません。どうなんでしょうね。
JavaOne最終日のコミュニティ基調講演でも、再びJava MEとIoTが強調されました。Java MEの比較対象は、組み込みでのC/C++開発でした。IoTの時代になった時、組み込みデバイス上のアプリ開発言語の中心がCやC++のまま、というのはさすがに考え辛いので、何か別の言語なんだろうとは思います。それがJavaなのかは別として、です。
最近のコメント