米サン・マイクロシステムズが開発し、1995年に発表したプログラミング言語、「Java」。インターネットの普及とともにその特性が注目され、今やエンタープライズからコンシューマーまで幅広い分野で活用されるに至った14年史をつづります。Anywhere――1995年5月23日に発表された「Java」のコンセプトは、この言葉に集約される。「一度プログラミングすれば、どんなプラットフォーム上でも動作する」という意味である。Javaはプラットフォーム上にJava仮想マシン(JVM)を搭載すれば、プラットフォームに依存することなくアプリケーションを稼働させることができる。サン・マイクロシステムズ(以下、サン)のOSであるSolaris上で開発したJavaアプリケーションに手を加えなくても、マイクロソフトのWindows上で動作させることができるわけだ。このコンセプトが多くのエンジニアに受け入れられたことで、Javaはアプリケーション開発のデファクトスタンダードに成長していったのである。サンによると、Javaは現在、10億台の携帯電話、7億台のパソコン、12億5000万枚のスマートカード(ICカード)などに利用され、ライセンスを取得した企業は180社以上に、また95年当時30人程度だったJavaの開発者は今や450万人を超えているという。エンジニアの観点からみると、Javaは従来のC++言語と類似しているが、Javaがそうした従来の言語と最も異なるのは、マルチプラットフォームで動かすことを最初から考慮し、実行環境や開発環境などが仕様として存在している点にある。それらが実際に受け入れられ、多くのプラットフォームで移植性の高いプログラミングを実現していることが、高く評価されている要因となっている。した特性をもつJavaは、これまでのプログラミング言語の集大成ともいえる。ライブラリ方式、構造化、オブジェクト指向などの思想がすべて盛り込まれており、ファイルI/O、ネットワーク、RDB、多言語、ウィンドウGUIなどがすべて言語仕様そのものに含まれているからだ。プログラミング言語仕様自体にこのような考慮がなされたものは、実はこれまでになかったのである。Javaのマスコット「Duke」。Javaが発表された当初、さまざまなWebサイトでDukeが手を振るアプレットに多くのエンジニアが興味をもった。写真・画像提供=サン・マイクロシステムズ(株)(Part1すべて)95年当時、Javaに着目したエンジニアの大半は、実はC++の開発者だった。当初のJavaは、Webブラウザにアプレット(ネットワーク上に置かれWebブラウザ上で実行できるJavaプログラム)をダウンロードして、アニメーションを動かす程度のデモしかできなかった。エンジニアたちは、JVMがプラットフォームに依存することなく実装でき、セキュリティやメモリ制御などの機能を備えていたことから、C++よりも安全で記述効率が高いと評価した。C++の欠点を克服し、オブジェクト指向の世界を広げる言語の本命はJavaだと感じたエンジニアたちは、その将来に期待を寄せるようになった。Javaの設計者たちもその期待に応えようと奮闘し、Javaは利用者とともに進化する道を歩み始めた。サンは96年から毎年、Javaの開発者会議「JavaOne」を開催してコミュニティを形成し、エンジニアたちとJavaのロードマップや適用領域の広がりを共有することに努めた。JavaOneの、とくに初期のころの盛り上がりようは、新しいネットワークコンピューティング時代の到来を十分に実感させるものだった。1996年に開催された第1回「JavaOne」。以来、毎年行われている同イベントがJavaによる技術革新の“羅針盤”となっている。Javaの生みの親といわれるジェームズ・ゴスリング氏(当時サンのフェロー)は、Javaを開発した最大の理由について、96年7月のインタビューでこう語っている。「分散コンピューティングにおけるソフトウェアの開発・実行環境を、ネットワーク上で実現したいと考えたのが発端だ。当初はC++をベースにしようとしたが、より高い移植性や信頼性、そしてどんなプラットフォームでも動く新しい言語環境が不可欠になった。Javaによって、エンジニアはすべてのプラットフォームに向けて共通したソフトウェア開発ができるようになる」ゴスリング氏のこうした思いは、JavaOneに参加したエンジニアたちにもまたたく間に浸透した。Javaのその後の普及は、そうしたエンジニアたちの熱い思いに支えられてきたのである。Javaの生みの親といわれるジェームズ・ゴスリング氏(写真はJavaOne2007の基調講演より)。今もJavaのエンジニアたちの教祖的存在となっている。RMIなどの重要な機能が追加された。1.2と位置付けられた。携帯電話の普及4割を超える(普及累積台数5411万台)とはいえ、一般の目からすると、当初のJavaは前述したように「Webブラウザ上で動くアニメーションを作る言語」というイメージが先行した。そのためJavaは、企業システムの開発には無縁の技術と思われていた。Edition)が公開されたことで状況が一変した。アプリケーションサーバーベンダー各社がJ2EE仕様を一斉に採用したことで、J2EEはその後、企業システム開発の標準技術に成長していったのである。Java誕生10周年を祝って、日本をはじめ世界中からJavaのエンジニアが集まった。その最大の要因もまた、プラットフォームに依存しないJavaならではの特性にあった。既存のシステムから全く新しいシステムへ急激に変化させるのでなく、既存のシステムをうまく取り込みながらJavaの世界へと移行することができたからである。はいっても新しい言語環境だけに、実際にさまざまな開発に携わったエンジニアたちの苦労は少なくなかったようだが、そうしたエンジニアたちの努力によって、Javaは今やミッションクリティカルな領域までも含めた企業システム構築基盤となったのである。した企業システム向けとは別な領域で、Javaがアプリケーション開発のデファクトスタンダードになったもうひとつのきっかけがある。Edition)の登場だ。このJ2MEによって、一般ユーザーへのJavaのプレゼンスが大幅に向上した。NTTドコモのiモードの成功は、その大きな要因となった。90年代後半、NTTドコモではメールとWeb閲覧の機能が付いた初期のiモードの成功に続き、アプリケーションを取り込めるようにしようと考えていた。その後のiアプリである。アプリケーションを動かすためにはセキュアな基盤が必要となる。そこでNTTドコモが、これしかないとばかりに選んだのがJavaだった。FX」のモバイル仕様が発表され、携帯デバイスでのJava活用のさらなる広がりを感じさせた。携帯電話サービスはネットワークにつながることが前提のため、同時に悪意のある攻撃を受ける可能性がある。そこで攻撃を防御しながら最適なサービスを提供できる仕組みが必要となる。そのセキュリティの高さが、Java採用の決め手になったのである。これをきっかけに、携帯電話サービスにおけるJavaの有効性が評価され、今では国内外の数多くのキャリアがJavaを採用している。最後に強調しておきたいのは、インターネットとJavaの関係である。Javaが登場した95年は、インターネットが本格的に普及し始めたときでもあり、インターネットとの相乗効果によってJavaも急成長を遂げた。逆にそのタイミングでJavaが登場していなかったら、インターネット技術が今日のように大きく花開くことはなかったかもしれない。その意味では、Javaはベストタイミングで登場した。必然の技術だったのだろう。Java仮想マシンが導入され、ジャストインタイムコンパイラに加えて動的再コンパイル技術、世代別ガベージコレクションを備えた高速なJava仮想マシンを使えるようになった。1.4を公開(2月)このバージョンが、JCPのもとで開発された最初のプラットフォームとなった。5.0を公開(9月)このバージョンで言語仕様に大きく拡張が加えられ、多くの言語機能が追加された。7を公開予定まず登場していただくのは、サン・マイクロシステムズでJavaのエバンジェリストとして活躍されている山口浩氏。Javaのどんなところが多くのエンジニアの技術者魂をかき立てたのか、語ってもらった。「やはりキーワードは“オブジェクト指向”でしょう。昔からある言葉ですが、エンジニアにとっては今も光っている技術です。加えてJavaがネットワークコンピューティングを実現する技術であったことも、多くのエンジニアを魅了したのではないでしょうか。山口浩氏サン・マイクロシステムズ株式会社ソフトウェア・ビジネス統括本部チーフ・テクノロジストまた山口氏は、多くのベンダーがJavaのライセンスを取得している状況について、こんな見方を示した。「サンのJavaに対する取り組み方が、ほかのベンダーからは中立的に見えたのでしょう。実際、サンがJavaを世に出した当初は、まずこの技術をオープンなコミュニティのもとで多くのエンジニアに使ってもらい、スタンダードな技術になっていくことが望ましいと考えていました。一方でサンは、当時からインターネットの世界では確固たる地位を築いていたので、ライセンサーとしても信頼されたのだと思います」そして、Javaのエンジニアへはこんなメッセージを贈ってくれた。「Javaはこれまでも活用領域をどんどん広げてきましたが、プラットフォームに依存しないという特性を考えると、もっと自由な発想で新しい応用技術を生み出せるのではないかと思っています。6では、新機能のひとつとしてJVMでほかの言語を扱うことができるようになり、Rubyなどの最近話題のプログラミング言語とも連携を図れるようになりました。顧客サイドに立ったフィールドSIのエンジニア、田坂氏は製品開発のエンジニアとして、Javaの活用に取り組んできた。富士通のJava活用におけるアプローチは、まさしくJavaによる企業システム開発の道を切り開いた歴史の縮図といえる。いえ、両氏によると当初は社内でもまったく認知されず、肩身が狭かったという。そんな空気が変わったのは、当初動きが鈍かったアプレットを高速に動かす技術を、田坂氏が担当する部隊で開発したのが発端だという。薮田氏によると、「大手銀行のお客様がその技術に着目され、全国の営業店端末システムに採用していただいたことで、俄然Javaは使えるぞ、という機運が社内にも広がりました」。銀行の営業店端末システムといえば、基幹業務を担うシステムである。そのシステムが稼働開始したのは97年。Javaによる企業システム開発の最も早期の事例といえる。アプリケーションマネジメント・ミドルウェア事業部第二開発部サンとのライセンス交渉にも臨み、Javaの日本語化にもかかわってきた田坂氏。早い段階から社内でJavaの推進グループを立ち上げ、日本でのEJBコンポーネントコンソーシアム発足時には中心的な役割を果たした薮田氏。そんな両氏にあらためて、ソフトウェア開発分野にJavaがもたらしたインパクトについて語ってもらった。「Javaのインパクトは、おそらく皆さんが思っておられるよりはるかに大きいと思います。今、サーバー用アプリケーションの大半はJavaでつくられていますが、振り返ってみるとつい最近までおよそ30年間、サーバー用アプリケーションの開発言語はCOBOLだったんですよ。COBOLからJavaへサーバー用アプリケーション開発言語が歴史上、初めて変わったわけです。これは何を意味するかというと、言語だけが変わったのではなく、これまで培ってきた設計や性能検証、見積もりの方式や、レビューのノウハウなどがすべて変わってしまうわけです。それらはあらためて培っていくしかありませんが、このインパクトは本当に大きなものがあると実感しています」(薮田氏)「Javaは当初、言語自体の魅力から多くのエンジニアが扱うようになりましたが、最近ではJavaをベースにしたさまざまなオープンソースソフトウェアが続々と登場してきて、それがまたJavaの適用範囲を大きく広げています。私はそうした相乗効果が、ソフトウェア開発分野全体に及ぼすインパクトも非常に大きいと思っています」(田坂氏)今後Javaに期待することは何か。「Javaにとってこれからいちばん大事なのは、今後50年、安心して使える言語であり続けることです。資産も大量にできつつありますから、短命に終わってもらっては困ります。最後に登場していただくのは、Javaベースのソフトウェア開発を行う構築屋社長の大山弘樹氏。インターネット協会のJava研究部会(通称:Javaカンファレンス)部会長や、日本Javaユーザグループ幹事も務める同氏が語るJava革命とはどのようなものか。「Javaが登場して何がいちばん変わったかというと、アプリケーション開発において技術屋が本当に主役になったことだと思います。いうことかというと、これまでのアプリケーション開発のスタイルは、営業サイドがお客様からいただいたご要望や、マーケティングサイドの指示に基づいて、技術屋があらかじめ決められた仕様にのっとって作業するパターンがほとんどでした。アプリケーションですから内容におけるユーザーニーズは当然ありますが、Javaが主流になったことによって、どんな技術を使って開発するかという主導権は完全に技術屋にゆだねられるようになりました。EJBやオープンソースソフトウェアなど技術の選択肢は豊富にあります。それらをどう組み合わせるかは、技術屋の腕次第。モチベーションもグッと上がります。Javaがもたらしたのは、技術の革命だけでなく、“技術屋にとっての革命”だった。大山氏がそうしたエンジニアの“復権”を痛感したのは、第1回のJavaOneだったという。そのときに出会ったエンジニア仲間との感動の共有がもとになり、その後のJavaカンファレンスというエンジニアコミュニティに発展した。そのJavaカンファレンス発足時にメンバーと交わした言葉が、あとに驚くべきエピソードを生んだという。「Javaカンファレンスはエンジニア仲間でJavaを普及させようと始めたコミュニティですが、発足時に、将来どんな状況になったらJavaが普及したと判断してこのコミュニティを発展的に解消するかを、定義しておこうということになりました。そこで象徴的なシーンとして出たのが、街を歩いている女子高生から自然にJavaという言葉が聞かれるようになったら、もう普及活動をする必要はないだろうと。その後、携帯電話にまでJavaが使われるようになり、ついにその日が来たんです。2001年のある日、私がJavaロゴの入ったポロシャツを着て街を歩いていたところ、すれ違った女子高生のグループから指さされてこう言われたんです。『あっ私の携帯電話のJavaロゴと一緒だ!』。想定していたシーンとまったく同じ。コミュニティで話していたことが検証されたんです。感動したのを今もよく覚えています」そして大山氏はひと言、こうつぶやいた。技術史Javaジェームズ・ゴスリングネットワーク...あなたを求める企業がある!まずはリクナビNEXTの「スカウト」でチャンスを掴もう!根村かやの(総研スタッフ)からのメッセージ現在のJavaは、開発エンジニアにとって仕事に不可欠な「道具」。これほど多くの人が、こんなにも熱くその魅力を語る仕事道具がほかにあるでしょうか。COBOL、VB、CやC++は、どんなに求められ使われても「道具」以上の存在ではないのに。それは、Javaが誕生期に「いじって楽しいオモチャ」だった記憶が、エンジニアコミュニティの中に焼きついているからなのでしょうか。この技術とともに在り技術を育てるのはエンジニアであり、エンジニアを育てるのは技術。その人なしにはありえなかった技術を、その技術なしではありえなかった技術者人生とともに語ります。デジタルオーディオプレーヤー、テレビ、DVDレコーダーなどなど、幅広い適用製品。「言語デザイナー」と呼ばれる、プログラミング言語の開発者たちの言葉を集めました。世界初のカーナビから27年、GPSカーナビの登場から18年。新車だけをとると、「カーナビ付き」は、現在約7割にも達するという。日本の1990年代はバブル崩壊に始まり、再生を模索した時期として記録されています。在籍中に転職活動をする場合、今の会社にバレないようこっそり慎重に進めたいもの。Tech総研リクルートグループサイトへ。