InfoQ

InfoQ

News

マイブックマーク

ブックマークするためにログイン または 会員登録 する

ブックマークされました!

ブックマークがエラーになりました。もう一度お願いします。

Oracle が Eclipse の Java 問題に対処

作者 Alex Blewitt , 翻訳者 吉田 英人 投稿日 2010年8月17日

セクション
デベロップメント
トピック
Java
タグ
Oracle ,
Eclipse ,
Java SE

原文(投稿日:2010/07/30)へのリンク

先週報告したとおり,Oracle は Java 6u21 のブランド変更に関する問題に迅速に対応した。Java インストーラの再設計によって Windows マシン用の最新リリースビルドは 1.6.0_21-b07 になった。問題が影響するのは Windows のみであるため,Solaris 用と Linux 用はバージョン 1.6.0_21-b06 のままだ。

この問題に対する Oracle の素早い対応と解決は賞賛に値する。Eclipse のランチャーが非サポート API を使ってベンダを検出していたのが原因なのだから,本来 Oracle には解決する義務はない。それでも幸運なことに Oracle は,Eclipse がビルドを再設計するよりもずっと早く,この問題に対応することができた。Eclipse Foundation のマーケティングディレクタである Ian Skerrett氏はその状況を, "Oracle は Eclipse の修正において,素晴らしいコミュニティサポートを実演してみせた" という見出しで完璧に要約した。

残念なのは,Ed Burnette 氏が ZDNet ブログにおいて,もっと批判的な "Oracle の Java ブランド変更が Eclipse を破損した" というタイトルを使用して,これが Slashdot で繰り返し取り上げられたことだ。皮肉なことに,Ed のブログポストの内容では,(月曜日にリリースされた)フィックスによって問題が解決したことが実証されていた - しかし Twitter の 140 文字という制限のため,タイトルが Ed のポストを指し示すただひとつのメッセージになってしまったのだ。

Twitter などソーシャルネットワークの出現による情報展開の加速を示すこのエピソードには,いくつもの教訓が含まれている。

  • 一見して無害なものでも,連鎖反応(knock-on effecr)を持つようになる場合がある。今回のような事態を JVM チームが予見することは,現実的には不可能だった。また Eclipse チームも,このようなブランド変更が起きるとは知るすべがなかった。しかしながら,"誰にも危害は加えないだろう" と思った小さな波及効果でさえ,予期せぬ結果をもたらすことがあるのだ。この件に関する最大のアドバイスは,マイナーリリースはバグフィックスのみに限定すること,不要な変更は次のバージョンへ回すこと,の2つだ。
  • 見出しは、コンテンツよりも多く繰り返される 。とりわけ Twitter においては,内容すべてが見出しと言っても過言ではない。ひとたび見出しを参照して "つぶやく (tweet this)" ボタンを (ZDNet がやったように) 押したならば,それが内容そのものよりも早く広まることになる。内容を読まずにタイトルだけで推測する人も現れるだろう。
  • ブランド変更は,いずれ JDK7で行われる。Oracle は多くの資金を使って Java の 権利を取得したのだから,JDK7 がリリースされたときには,当然ブランド名を変更するだろう。今回の件はその前触れと理解すべきだ。
  • これは Eclipse Helios リリースだけの問題ではない。問題の発端は,この探索処理が取り入れられた Eclipse 3.3 の時点までさかのぼる。Eclipse のすべてのバージョンがこの問題に影響されるにも関わらず,フィックスが予定されているのは Eclipse Helios だけなのだ。
  • Eclipse は単なる IDE ではなく,プラットフォームだ。したがって影響を受けるのは,最新かつ最大の JDT だけではない (いずれにしても,開発者はツールの更新に対する反応が早いものだ)。Eclipse には派生 IDE や,それをベースとする市販アプリケーションがたくさんある。IBM はツールの全スイートがそうであるし,Windriver や Oracle 自身も所有している。彼らの製品ロードマップは,Eclipse のリリーストレイン自体に丸一年遅れている場合もある。さらにこれらの企業は,Eclipse Foundation とその開発者にとってのスポンサーでもあるのだ。"使い続けるためには,最新のものにアップグレードしなければならない" と言うのでは恐喝も同然だ。

この変更に対する Eclipse の対応は後手に回っている。Oracle の迅速な発想とコミュニティ精神を持った対応がなかったならば,Eclipse 派生プロダクト (プラットフォームあるいは IDE) の開発者すべてが影響を受けていたことだろう。Eclipse がリリース手法として同期リリーストレインを毎年実施するようになってから,この6年の間は緊急の問題に対処する必要がなかった,という指摘もある。5番目あるいは6番目のマイルストンにおいて問題点をすべて解決してきた,というのだ (ただし Eclipse m5a あるいは m6a の再設計が必要になったことは度々あった)。それでも9月に計画されている 3.6.1 リリースでは,今回の問題への対応としてはあまりにも遅すぎる。Galileo の (最も早い場合で) 3.5.3 リリースでも同じことだ。立ち上げ直後に発覚した重大なバグに対処しなくてならない,という状況は,Eclipse にとっては未知の新領域である。自らには原因がないとしても,速やかに対応可能な立場であることが,ソフトウェア開発者としての彼らの責任の証明に他ならない。Microsoft の "火曜日パッチ" の批判者は,緊急性のあるパッチを次のリリーススケジュールまで残すのは容認しがたい,と言う。Eclipse のリリース手順についても同じことだ。

Oracle は当面の障害解決への対処では柔軟性を見せたものの,問題は解決せずに先送りされたままだ。最新の IDE 利用者のみならず,問題の生じるプラットフォーム上にソフトウェアを構築した開発者に対して,今後この問題を解決する責任があるのは Eclipse だ。

特集コンテンツ一覧

GAE開発の落とし穴

Googleのクラウド環境をつかったGoogle App Engineによる開発するにあたり、初めての試みで苦悩する開発者達の経験をもとに、各開発フェーズにあわせて問題点やどう解決したかをご紹介します

イベントレポート:「Coqチュートリアル#1」

去る1月12日、定理証明支援系ツールCoqの初心者向けチュートリアルが開催さ れた(http://kokucheese.com/event/index/23667/)。今後も2月2日 (http://kokucheese.com/event/index/23744/)、2月9日、2月16日と引き続き開 催されていく予定である。本記事では、開催の様子をレポートする。

Javaの未来についてのNeal Gafter氏とのディスカッション

Choosing Options

Neal Gafter氏はOracleによるJava買収の影響に関する議論、Javaにセグメンテッドスタックやメタオブジェクトプロトコルを追加することについての主張、そしてJavaとC#との比較について話をしてくれた。

Google Dartのエッセンス:アプリケーションの構築、スナップショット、Isolate

GoogleはVMをともなう新しい言語であり、JSコンパイラでもあるDartをプレビューした。 InfoQはDartのアプリの構築に貢献する文法の裏側を探った:スナップショット、Isolate、モジュール方式

CSPベースのモデル検査ツール「Process Analysis Toolkit」

本記事ではCSPベースの「マルチドメイン・モデル検査ツール」である、PAT(Process Analysis Toolkit)について紹介する。モデル検査は、形式手法(Formal Method)という方法論を基礎とする技術であり、複雑さが増大しながらも安全性を求められる、現在のソフトウェア開発の状況に対する処方箋の1つとして注目されている手法である。

Jenkinsによる継続的インテグレーションのススメ(4) ~CloudBeesでJenkinsをサービスとして使う~

前回まで、Jenkinsの幾つかの側面に注目して解説をしてきました。シリーズ最後の今回は、Jenkinsをサービスとして使う方法を紹介します。

書籍『抽象によるソフトウェア設計-Alloyではじめる形式手法-』の紹介

Alloyは、MITにて開発された仕様記述言語であり、ツールによる自動解析を使い、インクリメンタルに形式仕様が書けることが特長である。筆者らはAlloy開発者による、Alloyを使った形式手法入門書を翻訳、今夏にオーム社より刊行した。本記事では、Alloyの簡単な概要と、翻訳書『抽象によるソフトウェア設計』(「Alloy本」)を紹介する。

Windows デバイスで開発するタッチユーザーインターフェイス

スマートフォンを中心としたマルチデバイスにおけるタッチユーザーインターフェイスへの対応は、既に必須の項目となりつつある。本記事では、Windows デバイスにおける UX のベースとなっている「メトロ」というデザイン言語を掘り下げながら、既存環境を意識しつつもどのようにタッチユーザーインターフェイス開発に取り組んでいくべきであるかについて解説していく。