![]() |
CommunityOne
![]() |
図1 CommunityOne |
---|
![]() |
図2 司会のIan Murdock氏 |
![]() |
図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の冗長性のデモです。
複数台のハードディスクを並列に接続したシステムで,システムに接続したまま任意のハードディスクを破壊しても,システムが問題なく動作することを示しました。そのハードディスクの破壊の仕方が,写真で示したように,ハンマーでたたいてみたり,ドリルで穴を開けてみたりと,とても派手なのです。
この他にも,コミュニティのパネルが行われ,ユーザコミュニティの重要性が増している一方で,その運営の難しさが問題になるなどの問題提起がされていました。
![]() |
![]() |
図5 Rich Green氏 | 図6 OpenSolarisの発表 |
---|---|
![]() |
![]() |
図7 ZFSのデモ | 図8 ZFSのデモ |
The Road to Babel:Bringing JVM Machine Implementers Together
![]() |
図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日に開催されます。皆さんもぜひご一緒しませんか。
|