Oracle による Sun の買収は、Ruby、Python、PHP などの多数の軽量言語の台頭に直面して、Oracle が Java のオープン性を維持し続けることができるかどうかを人々に心配させています。 、Java は開発分野でのリーダーシップを維持できるかどうか。
14 年前、Sun のマーケティングの天才が実験的なクロスプラットフォーム言語の名前を、堅牢性を象徴する Oak から香り豊かな Java に変更したとき、彼はこの言語が将来の可能性を秘めているとは思っていなかったかもしれません。後の栄光。実際、現在 Sun がコンピュータ業界における自社の立場を正確に反映するためにこの言語の名前を変更したいのであれば、Oak の方がより鮮明であるように思われます。今日、Java 言語は実際にはどこでも普及しているわけではありませんが、多くの機会やデバイスに登場しており、安定した動作と優れた設計の Java コードがすべてのコンピュータやすべてのプラットフォームで普及しているという評判を得ています。世界共通言語は手の届くところにあります。
Java の父である James Gosling 氏は、Oracle が主催する OpenWorld カンファレンスで講演するために壇上に上がったときに、この点を強調しました。彼は、8 億 5,000 万台を超える Java 対応デスクトップと約 100 億台の Java 対応デバイスという、膨大な統計を含む JavaFX スライドショーを作成しました。実際、Java 仮想マシンは、電子書籍リーダー Kindle、Blu-ray ディスク プレーヤー、スマートフォン (非スマートフォンも含む) などの電子デバイスで一般的です。 iPhone アプリは何千もの iPhone で実行されますが、Java は 20 ドルで購入できるそれほどスマートフォンから最新世代の BlackBerry や Android 携帯電話に至るまで、26 億台の携帯電話に組み込まれています。
OpenWorld カンファレンスでの講演に Gosling を招待することは、Oracle の責任者である Larry Ellison が、この言語には明るい未来があることをエンジニアに安心させたいと考えている方法の 1 つにすぎません。 OracleはSun Microsystemsの買収を望んでいるが、欧州規制当局の承認を待たなければならない。米国政府はゴーサインを出したが、欧州政府当局者はMySQLの開発への懸念からまだ合意に至っていない。 Gosling氏とSunのMcNealy会長の両氏は、合併と買収が完了すれば、Javaは以前よりも多くの注目とOracleからのリソースを受け取ることになるだろうと述べた。
短期的には、Ellison が伝えたシグナルはそれほど重要ではないかもしれません。Java が気候風土となった今、開発の方向を変えるのは簡単ではないからです。もちろん、Oracle のビジネス モデルは非常に異なっており、Java エコシステムのあらゆる部分に大きな変更が加えられることは避けられないと考える人もいます。全体として、Java が変更されるあらゆる理由と同様に、Oracle が現状を維持したいと考える十分な理由があります。
エンタープライズレベルのアプリケーションが主戦場
Java は最初にサーバー側でその地位を確立しましたが、この領域は依然として、将来的に Java 仮想マシンが登場すると予想される主要な場所です。 Oracle のすべての製品では、大規模サーバーが主なホームでもあるため、このペアが登場するのは理にかなっています。 PHP プログラマーはデータ集約型のエンタープライズ アプリケーションとして MySQL を好みますが、最も重要なプロジェクトの多くは依然として Oracle ベースのアーキテクチャでラップされた Java を使用しており、この状況はすぐには変わらないはずです。
Sun氏によると、GlassFishアプリケーションサーバーは月に100万回以上ダウンロードされており、Tomcatなどの古いプラットフォームも依然として一般的だという。このテクノロジーは高く評価されており、高速で真のクロスプラットフォームであるため、大企業 (銀行や保険会社など) から Java 開発者の需要が高まっています。
しかし、Java はもはや最新かつ最もクールな構文とは考えられていません。プログラマーの中には、静的型付け言語の構造に不満を抱き、Ruby、Python、PHP などの新しい言語またはより単純な言語に切り替えた人もいます。これらの言語で作成されるコードは変更が容易で、すぐにプロトタイプを作成できるため、今日の単純な Web アプリケーションの多くはこれらの言語で開発されています。ただし、これらの使いやすい新しい言語は Java に依存していることが多く、Java 仮想マシンは重いタスクをより適切に処理し、複数のスレッドを解放できるため、Ruby 開発者は JRuby (Java ベースの Ruby 言語) をよく使用します。 Jython (Java をベースにした Python 言語) も同様です。
Java には現在、これらの新しい言語の侵入を抑制するために、最新のプログラミング技術のいくつかが組み込まれています。 Grails は、Ruby on Rails の単純な宣言パターンの多くを明らかに模倣しています。Grails フレームワークは、Groovy などのスクリプト プラグインと Hibernate と呼ばれるデータベース ミドルウェアを組み合わせています。 Groovy 自体は、コード解釈を容易にする多数の動的オプションを追加しており、Java アプリケーション プログラミング インターフェイス (API) の任意の部分に直接リンクできます。 Python や Ruby について考える必要はありません。洗練された最新の構文を備えた Groovy を使用すると、Java プログラマーは一見無限に見える多種多様な膨大なライブラリと基盤となる堅固な仮想マシンにアクセスできるようになります。
モバイルへの移行
市場で最も単純な電話機の多くは Java Platform Micro Edition (Java ME) を実行しているため、Java 電話機の数 (約 26 億台と推定) は驚異的です。これにより、Wattpad.com のような企業は、第三世界全体でスムーズに動作する文書読み取りプラットフォームを構築できるようになります。
ただし、Java を実行しているスマートフォンの数は比較的少数です。 iPhone の大成功により、多くの人が Objective C を再学習するようになりました。この言語を使用すると、プログラマーはメモリ使用量などの一部のシステム問題の制御を改善できます。 Java は根本的な問題のほとんどをプログラマから隠蔽するという利点がありますが、ガベージ コレクションで小さなエラーがあると一部のゲームが実行されないため、メモリなどのリソースを管理する必要がないことが前提となります。残念ながら、バッテリー寿命は非常に重要な要素であるため、スマートフォンでは他のほとんどのプラットフォームよりも厳密なリソース管理が必要です。
BlackBerry は新しいプラットフォームで Java ME を引き続き使用しており、携帯電話のプロファイルにタッチスクリーンと方向センサーのサポートが追加されているため、Java プログラマーは依然として需要があります。 Android には予測不可能な要因が存在します。 Google が Android の使用を開放して以来、多くの携帯電話メーカーが Android の流行に飛びつきました。
Google の Android は、Sun が開発した Java Development Kit (JDK) や Java ME ではなく、オープン ソースの Apache Harmony とそのクラスに基づいて構築されています。 Eclipse でコードを書いている人にとっては、これらはほとんど同じに見えます。 Android 開発では多くの XML フォームが使用されるため、他の多くの場合は問題になりませんが、2 つの開発フレームワークが互いに乖離している場合、この分割は大きな問題になる可能性があります。
デスクトップの地面を取り戻す
ほとんどの人は今でも、Java はデスクトップでは決して成功しなかったし、それは過去のことだと考えています。現在、Java はゆっくりと、しかし着実に最新のオペレーティング システムの隅々に浸透しつつあります。 Swing で作成された標準アプリケーションは、各プラットフォームの最も基本的な部分をターゲットにしようとすると引き続き問題が発生しますが、JavaFX や Web Start などの新しい開発プラットフォームやフレームワークを使用すると、Web 上でソフトウェアを効果的にデプロイすることが可能になります。ネイティブ プラットフォームは、Java アーカイブ (JAR) のすべてのキャッシュを処理します。リンクをクリックし、場合によっては許可を与えるダイアログ ボックスを数回クリックすることで、ソフトウェアをインストールおよび更新し、いつでも実行できます。
JavaFX はまだまったく知られていません。グラフィックス機能は Adobe の Flash と競合するようになりました。コンピューティング エンジンは Java API のほとんどをサポートしていますが、言語は本物の Java、JavaScript、およびその他のマークアップ言語の奇妙なハイブリッドです。コードは通常の Java よりも単純なので、Java プログラマーは新しいことを学ぶ必要があります。ただし、非常にインタラクティブなデスクトップ ツールの場合、新しいアニメーション クラスは時間をかけて学習する価値があるかもしれません。 Web Start は、ブラウザを通じてソフトウェアをデスクトップに直接展開する機能を徐々に改善し続けています。
埋め込まれたフィールドを占領する
Java は、人々があまり期待していない場所でも繁栄しています。 C プログラマは、Java 仮想マシンの優れたストレージと高速実行機能を決して認めないかもしれませんが、スマートフォン以外、セットトップ ボックス、組み込みチップ、Kindle、その他の低電力デバイスにおける Java の成功は、次のことを示しています。組み込みアプリケーション。 Java の人気は、プログラマーが大規模なプラットフォームから小規模なプラットフォームに移行するのにも役立ちます。メインフレーム用のエンタープライズ レベルのアプリケーションの開発から小さな組み込みコードの開発に切り替えるのは簡単ではありませんが、Java 標準を使用すると、この移行が他の多くのツールよりもはるかに簡単になります。
Java パッケージもますます小型化しています。ゴズリング氏は、コインサイズの Java 対応コンピューターを塵を使って説明しました。このような小規模パッケージ用の仮想マシンおよび API である JavaCard は、ネットワーク接続機能を追加するマイルストーン バージョンであるバージョン 3.0 を間もなく導入します。これらの小さな点はまだ人間の目に収まるほど小さくありませんが、インターネットと直接通信できるため、非常に魅力的です。
パートナーは別れることになるのでしょうか?
すべての開発者にとっての最大の懸念は、Oracle による Sun の買収が完了した場合、どのような利益相反が変わるのかということです。 Oracle は多額のソフトウェア ライセンス料を請求することで成長しており、そのソフトウェアは顧客が購入したいあらゆるハードウェア上で実行できます。一方、Sun は通常、ソフトウェアを無料で配布し、その後サーバーを販売することで収益を上げています。慣性が大きすぎるため、これらの分散戦略はすぐには変更されないかもしれませんが、Oracle が将来どのような決定を下すかは誰にもわかりません。
Oracleが過去に多額のライセンス料を請求できなかったことは、Ellison氏がSunに対して同様の戦術を採用することを促すだけだと考える人もいる。おそらく、Oracle の営業チームは今、この機会を切望しているでしょう。Java が以前は無料だったライセンス料金を段階的に引き上げるということです。 Java Platform Enterprise Edition (Java EE) アプリケーションの書き換えを避けるために、多くの企業はおそらく、CPU あたり 100 ドル、200 ドル、さらには 100 万ドルを支払うことを選択します。
批評家は、Oracle がさまざまな市場向けにさまざまなパフォーマンス レベルの Java 仮想マシンの新しいバージョンを簡単に開発できると指摘しています。デスクトップ仮想マシンは引き続き無料になる可能性があり、オラクルは Java や JavaFX を販売するためにコンピュータ ベンダーにお金を払う可能性もあり、極端なマルチスレッド処理のパフォーマンス向上には非常に高いコストがかかる可能性があります。ユーザーからお金を稼ぐ方法はたくさんあり、ライセンス料ははるかに安くなることがよくあります。反抗的なプログラマーに最初に新しい言語を学習させてからコード ベースを書き直すのは、はるかに高価です。
しかし、オラクルがこの動きを採用しないのではないかと考える人もいる。 2006年にOracleが買収したオープンソースデータベース会社Sleepycatに近い関係者によると、Oracleはすべてのデュアルライセンスモデルをそのままにしながら、技術チームの規模を約2倍にしたという。ソフトウェアは依然としてオープンソースまたは商用ライセンスの形式で提供されます。もし Oracle が Java を Sleepycat のように扱っていたら、コミュニティ ライセンスやその他のオプションはこれまでと同様に無料で広く利用でき、より多くのエンジニアがコードの改善に利用できるようになるでしょう。
他の主要な Java パートナーとの長期的な関係については、さらに深い疑問が残っています。 Google は Apache Harmony をサポートし続けています。このプロジェクトには 125 万行を超えるコードが含まれており、世界の中心としての Sun の地位を損なうことに熱心であるようです。 IBMはSunとの入札合戦に敗れ、現在はライバルであるOracleのほうが強いと認識している。 IBM は Eclipse 開発ツールを設計しましたが、Java プラットフォームを別の方向に導き始める可能性もあります。
他のパートナーはもっと積極的でした。 SAP 最高技術責任者の Vishal Sikka 氏は、Oracle が 2007 年に提案した計画、つまりオープンで独立したベンダー中立の標準化組織とすべての標準化組織に管理を引き渡すという計画に焦点を当てて、Java Community Process (JCP) をリリースするよう繰り返し Sun に要請してきました。メンバーは機会均等を前提として参加します。 Oracleは詳細についてはほとんど沈黙しているが、同社がSunから受け継いだいくつかのアイデアに対する敬意を取り戻すだろうと考えて間違いないだろう。
ただし、他のパートナーは脅迫に関与する可能性がありますが、実際には誰もがお互いに抑制されており、過度の行動はブロックされる可能性が高いため、程度の問題を考慮する可能性があります。なぜなら、一度書かれたコンセプトの利点はどこにでもあることを誰もが認識しているからです。 Android スマートフォン用に書かれたコードを Sony Blu-ray プレーヤーや Glassfish サーバーに簡単に移行できない場合は、別の言語が登場する可能性があります。実際、いくつかの企業がすでに、ユーザーが iPhone 上で Ruby on Rails または Python ソフトウェアを簡単に実行できるようにするツールキットを作成しています。
さらに、これらの新しい言語の多くは深刻な競合相手になる可能性があり、内紛が多すぎると優位性を得るのに役立つだけです。あまり知られていない非常に優れたオープンソース パッケージが多数存在しており、熱心な愛好家が少し変換するだけで、通常はあらゆるプラットフォームに移植できます。たとえば、Python はすでに一部の科学分野で主要な言語となっており、Google は App Engine でサポートされる最初の言語として Java ではなく Python を選択しました。 IBM、Oracle、Googleは優位性をめぐる競争で互いにしのぎを削るかもしれないが、独占ではなく標準化から誰もが恩恵を受けることを認識する必要がある。誰かがあえて他を排除しすぎて Java をコントロールしようとすると、他のベンダーが競合他社に殺到する可能性があります。
Javaでもアプリストアをオープンしますか?
Java コードベースが依然として比較的一貫性があり、比較的標準化されているという事実は、Sun (および合併が実現すれば Oracle) が、ライセンス料を値上げしたり、全員に圧力をかけたりすることなく、Java の普及性をどのように利用して富を築くことができるかについての憶測を引き起こしています。誰かが Java エコシステム全体用の App Store を開発し、iPhone 用のアプリと同じように Java で書かれたウィジェットを販売したらどうなるでしょうか。それらはデスクトップ、携帯電話、Blu-ray プレーヤー上で使用できます。また、Java を使用する他のプラットフォームでも実行できたらどうでしょうか? ?
最近では、Android 携帯電話用のアプリケーションがかなりの数になっており、Sun は、人々が単にアプリケーションをデスクトップにドラッグしたり、もう少しコードを書いて各アプリケーションをデスクトップに追加したりできるようにする Java ストアも計画しています。 、Java 世界のほぼあらゆる場所で実行できます。それでも、大きく異なる画面やユーザー インターフェイスに対処するのは困難な場合があります。
このシナリオがどれほど魅力的であるかを想像してみてください。開発者が作成したアプリケーションが Android スマートフォン上で実行され、開発者はデスクでタスクに取り組み、家に帰るとリビング ルームの Blu-ray プレーヤーでスムーズに実行されます。
Java 言語は当初、Oak と呼ばれていた初期のセットトップ ボックスで実行することを目的としていたため、ソファに座っている人に Java アプリケーションを提供することは少し予想外ですらあります。このビジョンは、人気とクロスプラットフォームの安定性という Java プラットフォームの最大の利点に依存します。おそらく、これらの利点は、Java が発明者に継続的な収入をもたらすのに役立つでしょう。