インターネット社会の基盤を支え続けるJavaの20年~Georges Saab特別インタビュー

2015年5月、Javaが生まれてから20年が経ちました。今では手元にあるモバイルデバイスからビッグデータを支えるエンタープライズシステムまで、さまざまなシーンで利用されていいます。Javaが誕生してからの20年、技術の進化と社会変化にはどのような関係があったのか、米Oracle Javaプラットフォーム開発担当バイスプレジデントGeorges Saab氏に、電話での特別インタビューを実施したのでその模様をお届けします。

Javaのターニングポイントはいつか?~1995年からの20年

米Oracle Javaプラットフォーム開発担当
バイスプレジデントGeorges Saab氏
米Oracle Javaプラットフォーム開発担当バイスプレジデントGeorges Saab氏

今から20年前の1995年、Javaが誕生しました。同年は、Javaと同じくインターネット・コンピュータ社会の基礎を築いたといっても過言ではないWindows 95が発売された年でもあります。それから、関連技術が多数開発され、ユーザがインターネットに触れる機会が加速度的に増えていきました。

この20年を振り返ってみて、Javaのターニングポイントを挙げるとすればいつなのか、Georges氏に伺いました。

Georges(以後 G)氏:1つに絞るのは難しいですね。いくつかあったと思います。

まず、誕生初期。Netscapeブラウザに同梱したタイミングは1つのターニングポイントだったと言えるでしょう。当時は画期的とも言えるネットサーフィンという行動に対して、そのツールに同梱することで多くのユーザに届けることができました。結果として、技術がユーザに馴染むことができたと考えています。

2つ目はエンタープライズ分野への進出、いわゆるJava EE(Enterprise Edition)が誕生したときです。1996~1997年ごろからサーバサイドでJavaが使われるようになり、ServletやJSPと言った技術が生まれました。その後、サーバサイドJavaをさらに活用すべく生まれたのが当時のJ2EE(Java EEの前身)です。

そして3つ目がエンタープライズ分野とは異なる方向性の、モバイル端末向けのJava、Java ME(Mobile Edition)が生まれたときでしょう。Java ME(当時のJ2ME)の普及に関しては、ここ日本市場の影響も大変大きかったことを覚えています。携帯電話での採用が進み、多数のユーザ使うための技術として浸透し、そして、アプリケーション開発が進みました。

このように、それぞれの利用シーンで言語として進化を遂げてきたJavaですが、Georges氏はそれ以外にもJavaの進化体系として注目すべき点を挙げました。それは「Java自身の開発スタイルと取り巻く状況」です。

G氏:言語として基礎的な部分の開発や進化とは別に、プラットフォーム(環境)としてのJavaの進化も忘れてはいけません。なぜ、Javaがプラットフォームとして認知され普及したかというと、その要因の1つは「開発モデルの進化」があります。

Javaはオープンコミュニティの中で、1社独占ではなく、たくさんの開発者、たくさんの企業が関わって開発されてきました。それを取りまとめているのがJCP(Java Community Process)です。中でも2000年のJavaOneで発表されたJCP 2.0以降、Javaの標準化プロセスがJCPに一元化されたことが大きいと思います。そして、OpenJDKおよび開発コミュニティの誕生、Sunから引き継いだOracleの存在も大きいでしょう。

何より、コミュニティの関心がつねに高く、Javaコミュニティが在り続けることが、今のJavaを支えています。

Georges SaabとJavaの関係

Georges氏にJavaの20年をJavaの観点で振り返ってもらいました。続いて、Georges氏にとってのJavaとは何か? Javaの存在について語ってもらいました。

G氏:とにかく楽しい。楽しめる存在です。また、今の段階で思うのは人気のある言語で良かったと思っています(笑⁠⁠。

私がJavaに関わり始めたのはJava 1.1のころ、まだ開発者が30名ぐらいの時期でした。そこから現在のバージョン8まで、つねに最も近いところで開発と進化を見られたというのは嬉しいですね。

また、自分自身にとって20年間、Javaで仕事を得られていることに感謝しています。Javaを通じてすばらしい開発者やクリエイターたちと世界中で交流でき、また、技術だけではなく、たとえば金融や航空宇宙といった(Javaを使う)異分野の世界に触れられることも嬉しく思っています。

私にとって、技術としてのJavaはつねに魅力的な存在です。

2015年4月、世界のどこよりも早くJava20周年のお祝いが行われたJava Day Tokyo 2015。インタビューに協力いただいているGeorges氏のセッションはもちろん、Javaの父、James Gosling氏のビデオメッセージなども流れた
2015年4月、世界のどこよりも早くJava20周年のお祝いが行われたJava Day Tokyo 2015。インタビューに協力いただいているGeorges氏のセッションはもちろん、Javaの父、James Gosling氏のビデオメッセージなども流れた

ほぼ20年間、Javaに最も近い開発者の1人として生活してきたGeorges氏ですが、他のプログラミング言語へ移ろうと思ったことはなかったのでしょうか?

G氏:Javaに触れる前は別のプログラミング言語を使っていました。たとえばProlog(論理型言語の一種)やLispです。LispはVMの開発も行っていました。とくにPrologに関しては、自分に近い背景、考え方の人が多く、初期のJVM(Java仮想マシン)開発者の多くはPrologに触れていたように思います。

Javaの開発に関わってからは他のプログラミング言語はもちろん見ますが、自分の興味は「プログラミング言語の進化を見ること」だったので、その点ではJava一辺倒でしたね。

ただ、Java一辺倒ではありながらも、他の言語に触れる機会もたくさんあります。それはJVM上で動く、さまざまな言語が生まれ、普及しているからです。もう7年ほどになりますが、JVM上で動くプログラミング言語をテーマにした小規模な技術カンファレンスも開催しています。そこでは、各種プログラミング言語の開発者たちが一同に集まって、JVM上で動く言語について議論し意見交換を行います。

ですから、他のプログラミング言語へ移ることなく、⁠Javaを中心として)探究的な活動ができているというのも、Javaを選んでいる理由の1つかもしれません。

Javaとコミュニティ

Javaの歴史は開発コミュニティと表裏一体と言っても過言ではありません。これは聞き手の主観ではありますが、他の技術コミュニティと比較しても、Java開発コミュニティの熱量はとても大きく、特別なものだと感じています。それを体感できるものの1つが、毎年米サンフランシスコで開催されている技術カンファレンス「JavaOne」です。

Georges氏には、まず、この開発コミュニティの熱量についてどのように感じているか、伺ってみました。

G氏:(熱量がすごいとの発言に対して)

ありがとうございます。大変嬉しいコメントです。そして、私もそのコメントに同意します。

なぜJava開発コミュニティの熱量が大きいのか――それは、Javaが問題に対する解を提供できうる技術だからです。Javaを使うことで開発者・クリエイター自身のクリエイティビティを具現化し、花開かせることができる技術だからだと思っています。

加えて、先ほどもお伝えしたとおり、JCPの存在を中心に、複数の企業が関われる体制、民主的なプログラミング言語であることも大きな理由の1つでしょう。

米サンフランシスコで開催される、世界最大の開発者カンファレンスJavaOne。毎年世界各地の開発者たちが一堂に会し、技術論やJavaに対するアツい想いを語り、交流を深める。写真はJavaOne 2009の一コマ
米サンフランシスコで開催される、世界最大の開発者カンファレンスJavaOne。毎年世界各地の開発者たちが一堂に会し、技術論やJavaに対するアツい想いを語り、交流を深める。写真はJavaOne 2009の一コマ
今から10年前に開催されたJavaOne 2005では、Javaの10歳の誕生日を開発者たちで祝った
今から10年前に開催されたJavaOne 2005では、Javaの10歳の誕生日を開発者たちで祝った

Javaはファット(複雑な)プログラミング言語になってしまったのか

開発コミュニティの熱量を増やしながら、開発者・利用者とも増やし続けているJavaですが、一方で、バージョンアップに伴う機能の多様化・複雑化といった面もあるように思います。たとえば、言語仕様としてのJavaとプラットフォームとしてのJavaという見方でも、考え方や求められる知識が異なるでしょう。Georges氏に「Javaは複雑になったか」という質問をぶつけてみました。

G氏:まず、言語仕様としてのJavaとプラットフォームとしてのJavaという考え方は、開発当初から存在していました。それはプログラミング言語として、コードと実行環境の切り分けという観点で、です。開発者の立場としては、この2つは区別するものではなく、どちらも(並行して)意識するものだと思います。

プラットフォームとしてのJava、つまりJVMに関しては、JVMをターゲットにした他のプログラミング言語が増え、そして利用されています。ですから、JVMの面に注目が集まっていた時期もあったでしょう。

Javaの歴史で見ると、JVMのインプリメンテーションが進んだ結果、Javaの言語仕様にまつわる進化は鈍化した時期があったと思います。

しかし、バージョン7リリース前後あたりから、Fork-Join、Lambdaなど、バイトコードの機能追加(言語仕様の進化)といった動きが見られはじめ、その動きは加速しています。

2015年のJavaで見れば、⁠もともとの質問であった)言語仕様/プラットフォームとしてのJavaについて、理解が深まり、補完が強まっていると感じています。

バージョン9に向けて~Javaの次の一歩

Javaの20年、過去と今について振り返ってもらいました。少し気が早いですが、次の20年に向けて、次期バージョンについても伺いました。

G氏:(次期バージョンについては)開発者たちが一生懸命取り組んでいますので、焦らず期待していてください(笑)

具体的なところで私が注目しているのは「Modular Source Code⁠⁠、JDKのソースコードのモジュール化です。コードが機能ごとに小さくなり、コード間の依存が簡易化します。また、目的に応じた組み合わせをつくることにより、バイナリのフットプリントを小さくでき、さまざまなデバイスへの適用、パフォーマンスの向上が期待できるでしょう。

その他、Print Loopの再開発が進められていて、開発テストがより簡単になることでしょう。

まだまだたくさんありますが、今、IoTと言われているトレンドに対して、Javaは小型デバイスからクラウドまで、すべての環境で完璧に使えるプログラミング言語に進化し続けています。

日本の開発コミュニティに向けて

短い時間ではありましたが、20年という節目でGeorges氏に「Java」について語ってもらいました。最後に、日本の開発コミュニティに向けてメッセージをいただきました。

G氏:まず、改めてありがとうと言わせてください。Javaの20年において、日本の開発者の皆さん、開発コミュニティの存在はとても大きく、多大な貢献をしてくださいました。日本発のものもたくさん存在しています。

継続して関わっていただけることに感謝するとともに、これからもぜひ積極的にJavaに関わって開発を続けてください。

もしまだ開発したことがない、触れたことがないという方がいらっしゃれば、たとえばJJUGのようなコミュニティに参加して、Javaの魅力に触れてみてください。

今年のJava Day Tokyo 2015でテクニカルセッションを担当したGeroges氏。氏のこれからのJavaへの関わりに注目していきたい
今年のJava Day Tokyo 2015でテクニカルセッションを担当したGeroges氏。氏のこれからのJavaへの関わりに注目していきたい

おすすめ記事

記事・ニュース一覧