arclamp

ITアーキテクト 鈴木雄介のブログ

イマドキのJavaとORACLEについて

2013/1/15-17まで、ORACLEが主催するIOUC(International Oracle User Group Community)に参加してきました。毎年1月に世界中からORACLE本社(カルフォルニア)にユーザーグループが集まって行われるものです。Javaだけではなく、ORACLEのミドルウェア(EBS/JD Edwards/People Soft/Siebel etc)やMySQLの人も来ます。僕は日本のJavaユーザーグループのリーダーとして初参加してきました。

f:id:arclamp:20130114115334j:plain

感じたことは2つ。Javaの進化がようやく安定して、これからの道のりが楽しみであること。そしてSUNの頃とは違う形でORACLEと良好な関係が築けていることです。

実は、この2つは同じ事を言っています。SUNは、良く言えばビジョナリーでありイノベーターでした。彼らは未来を創造し、そして、Javaはこうあるべきだと語ってきたのです。しかし、一方で株式市場に受けるエッジのテーマを強調しすぎたり、JavaOneで発表した技術を1年も経たずに放棄したり、まぁ、飽きっぽいところあったのは否めません。

では、ORACLEは、どのようにJavaを語ったのでしょうか。

今回、Javaには専用のトラックが用意され「JUG(Java User Group) Leaders' Summit」と、やや勝手に名乗りつつ、技術面では組み込み系(ME/SE Embedded)、VM系(SE)、サーバ系(EE)、Java FX、クラウド(Java Cloud Service)、そしてコミュニティ関連ではJCPjava.net、OTNと幅広く説明がありました。

それらの説明はいずれも整合性がとれ、個別の詳細ではなく全体感を重視し、機能だけではなく内部プロセスまで解説していました。

たとえば組み込み系では、これまでのMEだけではなくSE Embeddedというプロファイル(1-3)が用意されますが、これもME、SE、そしてFXから同じような資料を使って説明があり、それらはきれいに整合性がとれていました(ちなみにAndroidとは棲み分けを意識している感じです)。

他にもJavaVMのバージョンアップについて機能面とセキュリティ面のアップデートポリシーが説明され、きちんとリリースされていること、そして、直近のアップデートについてアナウンスがありました(もちろん、直前のセキュリティアラートによるアップデートもきちんとポリシー通りにリリースされています)。

そうなんです、ちゃんとしているのです。

コミュニティとの付き合い方にも変化があります。Javaの仕様策定はJCP(Java Community Process)と呼ばれる仕様策定プロセスを通じて決定されます。仕様はJSR(Java Specification Request)という案が提出され、それをJSRごとのEG(Expert Group)が中心となって議論を行い、ドラフトや最終案の発表など、いくつかの段階を経て策定に至ります。JCPは非常に有益な仕組みでしたが、SUN後期には形骸化してしまい、JSRの放置や偏ったメンバーによる策定といった問題がありました。

ORACLEは、JCPを立て直すべく、JCP.nextと銘打ってプロセスの見直しを行っています。いくつか改定のポイントがあるのですが、その1つにEGへのユーザーグループへの参加が上げられます。SUN時代、JCPには企業やOSS組織しか参加できませんでしたが、現在ではユーザーグループも参加が可能です。既にブラジル、イギリス、そして中国のユーザーグループが参加しています。

これに限らずORACLEは非常にユーザーを大事にしているのだなと感じました。今回のIOUCもORACLEが主催し、ORACLEが招待しています。各地域のRelationship Managerがホストとなり、イベントの開始と終了を受け持ちます。彼ら/彼女らはユーザーグループ同士が交流できるように様々な仕掛けを用意していました。

もう、ずっと前からORACLEはユーザーの声を聞くことによって改善をし続けてきています。たとえばORACLE Databaseの日本語版には全角文字と半角文字を同一に扱う変な仕様があったりするのですが、それも過去に日本から来たリクエストに従ったと聞いています。

オプショナルツアーとしてORACLEのUsability Lab Tourにも参加しましたが、過去20年以上にわたって全世界でユーザーテストをしてきていると教えてもらいました。

ね、ちゃんとしているのでしょ。

繰り返しになりますが、いずれもセッションもORACLEの講演者たちは最初に全体感を説明し、それに対する参加者からの詳細な質問に答え、そして、最後には継続的なユーザーグループからのフィードバックを求めていました。

Java Cloud Servicesなんか、価格設定が定価な上に高いので「何がしたいか分からない!」的な質問が続出するなか「申し訳ないけど、いまはこうなっている。フィードバックをありがとう」と答えてくれます。

もう、本当に普通にきちんとしているんです。

ORACLE側がこういう姿勢ですから、自然とORACLEとユーザーグループの関係も良好になります。特にJavaのユーザーグループは仲が良く、初日にはORACLEの人の家に皆でおしかけてブラジリアンBBQを楽しみました(JavaOneに行ったことがある人ならお馴染みブラジルマントの人がBBQピットで肉を焼いていましたよ)。そして二日目にはJCPとして食事会がありました。


そんなわけで「ORACLEJavaにコミットしているのか?」という質問が無意味なぐらい、ORACLEJava技術だけではなく、Javaユーザーの方を向いているのです。

もちろん、ORACLEは(SUNに比べて)イノベーションが足りないとかスピード感がないとか批判もできるのですが、これだけエンタープライズのユーザーが増えた中では、Java後方互換性を保ちつつ、着実に進化していく、つまりは引き続き安心してJavaを使うことができるというのは大きな価値でしょう。

そう、Javaは本当の意味でオトナになったのかもしれません。


さて、今年はJava EE7、ME/SE/FX 8がリリースされます。過去アナウンスされてきたとおりの内容ですが、改めて内容をしっかりと押さえて頂ければと思います。7ほど派手ではないですが、Lambda(クロージャー)、新たなJavaScript実装のNashornなどが大物です。また、2年後のSE9では仮想化やモジュラティに関する仕様が取り込まれる予定になっています。JRockitの技術もどんどんHotSpotに移植されているので、JVMのランタイム環境は、どんどん魅力的になるでしょう。

ここら辺については5月に予定しているJJUG CCCでも紹介することになると思いますので、ぜひ予習復習のためにいらしてください。


こうしてみると、だいぶORACLE寄りの内容に見えるかもしれませんが、僕としては素直に感じたことを書いたつもりです。改めてオトナになったJavaに触れる機会になれば幸いです。