BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース Javaの将来: Josh Bloch氏との対話

Javaの将来: Josh Bloch氏との対話

原文(投稿日:2010/04/29)へのリンク

Josh Bloch氏は、何年もの間、SunでJavaプラットフォームに貢献し(Java Collectionsフレームワークを使ったことがあれば、彼の業績をご存知だろう)、現在はGoogleに在籍する。賞を取った "Effective Java" と "Effective Java Second Edition" の著者でもある。彼は最近Webで開催されたRed Hat Middleware 2020カンファレンスで講演した。講演のポイントは、Oracleの管理下にあるJavaプラットフォームの将来に対する慎重ながらも楽観的な見方と懸念についてだった。InfoQはJosh氏にコンタクトして、彼の考えをもっと多くの人に伝えることに興味があるか尋ねた。増加しているOracleから元Sunの人材流出、Oracleがコミュニティや不明瞭なJava知的財産にどう対処するのかなど、いろいろな懸念が絡み合って、議論は最高潮に達している。Bloch氏からいくらか話を聞くことができて何よりだ。

InfoQ : あなたの一番の懸念は何ですか?

懸念はひとつではありません。この数年間、いくつかの要因が組み合わさり、Javaの勢いを削いできました。

InfoQ: Javaの進化の歩みが遅くなっていると感じるのはなぜですか?

  1. TCKライセンスに関するSunとApacheのいざこざのせいで、JCPによる進歩がほとんどなくなりました。
  2. Sunによるサポート、リーダーシップ、透明性の欠如のせいで、Java 7プラットフォームにははっきりした進歩が見られません。この数年間、SunがJava SEに割いたリソースがどれだけ少なかったのか、みなさんご存知ではないでしょう。でも、その影響はかなりはっきりしています。毎年あるJavaOneが近づいてきても、Java 7は一向に近づいたようには見えません。そして、Javaの支持者たちの間には、数えきれないくらいの内輪揉めがありました。以前はSunが慈悲深い独裁者の役を演じて、内輪揉めをうまく抑えていたのですが。
  3. OpenJDKのライセンスにGPLv2を使っため、TCK問題に関心がなかった人たちまで、採用を見送る結果になりました。「コピーレフト」条項は多くの潜在的な企業の採用を追い払ったのです。その結果、リソースはHarmonyとOpenJDKに分裂してしまいました。また、各種標準の各種コンポーネントに対して、それぞれのJCPメンバがいろいろなライセンスを使うのは、明らかに混乱を招くだけです。事実上、Javaプラットフォーム開発に税金を課すようなものです。

InfoQ: Sunができなかったことを、Oracleはどのように改善できるのでしょうか?

Oracleはこれまで、こうしたいざこざを終わりにするであろうJCP改革を支持してきました。また、Sunよりも財務状態が良好なので、プラットフォームを生き返らせるだけの余裕が彼らにはあります。そして、そうする意思を公に宣言しています。このSunからOracleへの交代によって、最終的には、いくつかの歴史的なお荷物は捨てられることになると思います。Sunにとっては受け入れ難い変更でも、Oracleなら新鮮な目で状況をよく調べて「なぜ捨てないの?」と言えるでしょう。

InfoQ: 厳密には、すべてライセンス問題に関係しているのですか?

いいえ、確かにライセンス問題は大きな役割を果たしていますが、それを超えるものもあります。先ほど言ったように、リソース、リーダーシップ、フォーカスの欠如です。

InfoQ: 今やApache HarmonyプロジェクトがAndroidライブラリの基盤として使われていますが、こうしたプロジェクトを取り巻く状況は、あなたにとって受け入れられるものでしょうか? (編集者: HarmonyはSunとTCKライセンスについて揉めていた。GoogleがHarmonyをAndroidライブラリの基盤として採用するよりも前のことだ。OpenJDKライブラリではなくHarmonyを使うというGoogleの決定は、OpenJDKのライセンスにGPLv2を使うというSunの決定には関係があるが、HarmonyのTCKライセンス論争にはあまり関係がない。Googleのパートナーはもっと寛容なライセンスなしに再配布することには同意しないだろう。Apacheグループはある時点で正規のTCKライセンスを与えられたが、それを拒絶した。ApacheとJCP ECはTCKライセンスの使用分野制限条項はJCPの合意に違反していると考えており、それを受け入れることができなかったためだ。)

いいえ。先ほど言ったように、こうした状況はプラットフォームの健全さと進歩を阻むものです。そして、企業は途方もないエンジニアの労力を無駄し、リソースはHarmonyとOpenJDKとに不必要に分裂してしまいます。

InfoQ: Harmonyのような案件に対して、Oracleにはどう対処してほしいですか?

Oracle自身が2007年12月12日のJCP ECミーティングで提案した、以下の決議案を成立させてほしいです。

 

決議案 1 (Oracleによる提案、BEAによる支持)

「JCPが、すべてのメンバが以下の件に公平に参加できる、オープンで独立したベンダー中立の標準化団体になることが、Executive Committeeの意見である。

  1. メンバの開発資金調達および管理費用
  2. 付随定款、運営組織、会員などを伴う法人
  3. 幅広い実装を許す、新たな簡易化したIPRポリシー
  4. 厳しい互換性要件
  5. Javaプログラミングモデルの普及への尽力

さらに、ECは、実行可能になれば即座に、Javaコミュニティに対する混乱を最小限にしつつ、移行のための計画を実行しなくてはならない。」

「新たな簡易化したIPRポリシー」に関して、もし、ApacheやBSDのような、広く受け入れられている寛容なオープンソースライセンスがすべてのJava仕様、すべてのコンポーネントに適用されれば、コミュニティ全体に大きな恩恵があると思います。

InfoQ: Oracleの役割は何だと考えていますか?

彼らには、かつてSunが担っていたJavaプラットフォームのリーダーかつ世話役としての役割を取り戻してくれることを心から願っています。もちろん、もう昔とは少し違うでしょう。世界は変化しているのですから。おそらく他の組織がもっとリソースで貢献し、もっと共同管理されるようになると思います。

InfoQ: それに関連して、Dalvikのようなものは、素晴しい新たなOracle Javaの展望にどのようにフィットすると思いますか?

オープンソースの素晴しい新世界において、関連した複数のプラットフォームがあるのは当たり前のことです。数多くのUnixライクなOSが存在し、各種用途に最適化された数多くのLinuxが存在します。Dalvikについては、HotSpotやJRockitとはかなり異なる設計目標と制約のもとに設計されたVMだと考えています。

InfoQ: それでは、Java MEの進化についてはどのように考えていますか? 完全に置き換えられるのでしょうか? Sunは次世代Java MEとしてAndroidを「あがめる」ことができるのでしょうか? Java MEはAndroid/iPhoneの世界でどう戦えるのでしょうか?

私がこういう推測をするのはふさわしいとは思いませんが、開発途上国では「フィーチャーフォン (feature phone)」(「スマートフォン」に対するものとして)の居場所が必ずあり、Java MEはそのフィーチャーフォンを想定して設計されたのだということを指摘しておきましょう。

InfoQ: 少なくとも、ある最近の指標(Tiobeのリスト)によると、Javaの利用は減少しているようですが。

これによると確かに、Javaの利用がわずかに減少しており、それに対してCの利用が増えていますね。これは真実なのか、それとも統計的偏りなのかはわかりませんが、もう35歳になる「汎用アセンブリ言語」がTiobeのリストのトップにあるのは面白いですね。私の心の中にもCへの愛着があることを認めます。

InfoQ: これはおそらく(あれこれやれば)明らかにできると思うのですが、JVMの利用が全体として減少していると思いますか? それとも、Javaとしての利用は減少しても、Ruby/Scala/Jython/Groovyがそれを補っていると思いますか?

実際のところ、こうした言語はTiobeのトップ20に入っていませんね。だからと言って、これらの言語は重要でなかったり、価値がないわけではありません。実際のところ、これらは重要で価値あるものです。でも、まだ主流ではないということです。私は最近続いている言語研究や言語設計には、本当にわくわくしています。そこからは数多くの優れたアイデアが生まれており、それをみんなで探索するというのは素晴しいことです。

InfoQ: あなたはJavaは下り坂にある、あるいは、私たちは憂慮すべきだと考えていますか?

この2、3年、Javaは厳しい時期にあったと言ってもよいでしょう。しかし、JavaプラットフォームやJava言語が下り坂にあるとは思っていません。下り坂に陥いる危険はあると思いますが、私はOracleとJavaコミュニティがそうならないようしてくれるものと期待しています。まあ、心配には及ばないでしょう。高等教育、K-12(幼稚園から高校生まで)、オープンソースコミュニティなど何であれ、プログラミングの世界には強いJavaこそふさわしいと信じています。

InfoQ: あなたの考えでは、何であればJavaを置き換えられると思いますか(JVM上にあるものでなく)?

実際にはWindowsオンリーのプラットフォームであるCLRを除いて、近い将来、本当にJVMの代わりになるものはありません。そして、本当にJavaプログラミング言語に代わるものもありません。偉大なプログラミング言語は数多くありますが、同じ「設計焦点(design center)」をもつものはひとつもありません。言語は道具にすぎません。私たちは仕事に適した道具を使うべきです。万能の言語などないのです。

InfoQ: JREをライセンスするというビジネスケースはあるでしょうか?

難解なバリエーションがあり得るでしょう。しかし、Oracleの関心はSunと同じように、JREがどこにでもあることだと思います。

InfoQ: 最後の質問にも少し関係するのですが、JRockit JVM、Sun JVM、その他様々なVM技術の融和が提案されていることについて、どう感じていますか?

基本的には、様々なJVMのよいところを取り出し、それらを組み合わせて、さらによいもの作るのはよいことだと思っています。でも、これまでSunは、HotSpotのクライアントとサーバを組み合わせることでさえ、うまくやれなかったことを忘れてはいけません。複数のシステムを組み合わせるというのは無謀なことなんです。うまくいくときもありますが、決して簡単なことではありません。そして失敗したときには、その犠牲はかなり大きいでしょう。

InfoQ: 他に付け加えたいことはありますか? 何を言っておくべきだと思いますか?

みなさんに言っておきたいのは、最近のJavaのサクセスストーリーのおかげで、悲観的な見通しはすっかり消えつつあるということです。特に、Google CollectionsGuice、先ほど話に挙がったJVM言語、そして、Androidのおかげです。Oracleによる迅速で断固たる行動と、もっと幅広いJavaコミュニティからの協力があれば、Javaプラットフォームの将来は明るいでしょう。

この記事に星をつける

おすすめ度
スタイル

BT