PR
JavaOne 2008 Report

CommunityOne

CommunityOne
図1 CommunityOne
司会のIan Murdock氏
図2 司会のIan Murdock氏
Jonathan Schwartz氏
図3 Jonathan Schwartz氏
パネル
図4 パネル

今年(2008年)も例年通り,サンフランシスコでJavaOneが開催されました。そこで,今月はJava SE 6完全攻略をお休みして,JavaOneのレポートをしていきます。

今週はあまりメディアで取りあげられることのない,CommunityOneについてレポートします。

CommunityOneは,Sun Microsystemsが関係しているオープンソースプロジェクトに関するカンファレンスです。

NetBeans,OpenJDK,GlassfishなどのJavaに関連するオープンソースプロジェクトだけでなく,OpenSolarisやMySQLも一緒に扱われます。

CommunityOneは,昨年からJavaOneの前日に開催されるようになりました。JavaOneの前日には元々NetBeans Dayが行なわれていたのですが,その他にもオープンソースプロジェクトが増加してきたことからCommunityOneに衣替えされたようです。

今年はJavaOneが5月6日から開催されたので,CommunityOneは5日に行なわれました。

General Session

CommunityOneでも,JavaOne同様,General Session(基調講演)が行なわれます。General Sessionに登壇したのは,Sun Microsystemsでソフトウェアを統括するRich Green氏。

彼が発表したのがOpenSolaris 2008.05です。OpenSolaris 2008.05と共に,円を基調とした新しいロゴもお披露目となりました。

OpenSolarisは今までより多くの人に使ってもらえるように,インストールが容易になっています。また,LiveCDでの配布も行なわれることになりました。

その他の機能強化/改善点としては,Zenをベースにした仮想化,DTraceの強化,ZFSなどがあります。

DTraceは,今までのキャラクターベースのユーザインタフェースに加え,グラフィカルなインタフェースも提供されます。

ブラウザ上で,JavaScriptで実装されたブロック崩しのキー入力とJavaScriptのメソッドコールをリアルタイムにグラフ化するデモが行われ,デスクトップアプリケーションでもDTraceを使ったパフォーマンスチューニングやデバッグが可能なことを示しました。

もちろん,今までどおりJavaのアプリケーションをDTraceで解析することも可能です。

デモの中で最もインパクトがあったのは,OpenSolarisが採用しているファイルシステムZFSの冗長性のデモです。

複数台のハードディスクを並列に接続したシステムで,システムに接続したまま任意のハードディスクを破壊しても,システムが問題なく動作することを示しました。そのハードディスクの破壊の仕方が,写真で示したように,ハンマーでたたいてみたり,ドリルで穴を開けてみたりと,とても派手なのです。

この他にも,コミュニティのパネルが行われ,ユーザコミュニティの重要性が増している一方で,その運営の難しさが問題になるなどの問題提起がされていました。

Rich Green氏 OpenSolarisの発表
図5 Rich Green氏 図6 OpenSolarisの発表
ZFSのデモ ZFSのデモ
図7 ZFSのデモ 図8 ZFSのデモ

The Road to Babel:Bringing JVM Machine Implementers Together

Charles Nutter氏
図9 Charles Nutter氏

基調講演の後は,通常のトラックが行われます。今年は,14のトラックがパラレルに行われました。筆者が聴講した中で興味深かったのは,JRubyの開発者であるCharles Nutter氏によるセッションです。

このセッションは,前半はJVM上で実装されている言語処理系を,後半はJVM上で動作する言語の実装に関する気づきを紹介するものでした。

前半に取り上げられた言語は以下の6種類です。

  • OCaml-Java
  • Scala
  • Groovy
  • JRuby
  • Jython
  • Rhino (JavaScript)

それぞれの言語の特徴,そして現在のステータスを示し,さまざまな言語がJVM上で実装されていることを示しました。たとえば,JRubyでは以下のような項目が示されました。

  • 動的型付け,オペレータオーバーローディング,メタプログラミング
  • Rails on Rubyなどのアプリケーションが動作可能
  • 他の実装に比較してパフォーマンス,スケーラビリティが優れている

後半では,RubyをJVM上で実装することの難しさなどが紹介されました。たとえば,

  • 動的型付けの最適化
  • Ruby独自の型システムの移行
  • C Extensionの依存
  • “eval”,Continuation,バイトを基にした文字列

などがあげられました。このような困難にもかかわらず,RubyをJVM上で実装したのには以下のような理由があるようです。

  • 美しく,エレガントな言語であること
  • Javaの世界に新たな血,新たな考え方を導入するため
  • 優れたランタイム
  • JVMの限界を超えるため

また,言語の実装時に次のような手段を使うことで,実装が容易になるということも示されました。

  • 軽量なコード生成とローディング
  • リフレクションよりもメソッドオブジェクトを生成する
  • パース,インタプリター,コンパイル用のtoolchain

最後に複数言語用のVMとして開発されているDa Vinci Machineプロジェクトを紹介しました。

このプロジェクトはOpenJDKのサブプロジェクトであり,複数の言語を実装しやすくするための機能を持ちます。また,JSR 292 Supporting Dynamically Typed Languages on the Java Platformのリファレンス実装でもあります。

このセッション以外にも多くの興味深いセッションがあります。CommunityOneはコミュニティに対するSunの姿勢を伺いすることのできるイベントなのです。

 

著者紹介 櫻庭祐一

横河電機 ネットワーク開発センタ所属。Java in the Box 主筆

今月の櫻庭

JavaOneに参加するのは同窓会に参加するようなものです。

1年に1度だけ,JavaOneのときにしか会えない友人が多くいます。アメリカに在住の方はもちろん,日本人の方でもなぜかJavaOneでしか会えない人がいます。彼らに会うためにJavaOneに参加しているといっても過言ではありません。

来年も参加できればいいのですが,どうなることやら。

来年のJavaOneは6月2日から5日に開催されます。皆さんもぜひご一緒しませんか。