Write Once, Run Anywhere

提供: MonoBook
Write once, run anywhereから転送)
移動: 案内検索

Write Once, Run Anywhere(読み:らいとわんす・らんえにーうぇあ)とは、Javaで書かれたプログラムOSデバイスなどのプラットフォームに依存しない、ということを意味するJava公式スローガン、いわゆる掟である。

概要[編集]

Javaで作られたプログラムOSデバイスを問わず動かすことができる(ようにしたい)、という理想である。

ビジネスモデルとして[編集]

Javaは第三者によるJavaコンパイラおよびJava仮想マシンを認めている。ただし、この「Write Once, Run Anywhereという理想を実現する」という大義名分のもと、サンマイクロシステムズ(現:オラクル)の厳しい品質チェックを受け、合格しなければならない。

どうしてもこの枠組みから外れたJava互換品が必要とあらばサンマイクロシステムズ(現:オラクル)にライセンス料を払うことで品質チェックを強引に突破できるようになっている。NTTドコモiアプリなど、フューチャーフォン(いわゆるガラケー)に搭載されているJavaのほとんどはこれである。

JavaJDKJRENetBeansなど)が無料配布されているにもかかわらず、Javaを作っているプログラマーたちが給料をもらいご飯を食べられているのはこのライセンス料によるものであり、ガラケーが全盛の時代は年間1000億円を超えるライセンス収入を得ていたと言われている。

問題[編集]

実際問題としてOracle純正のJREJava仮想マシンであってもプラットフォームごとの互換性は微妙である。たとえばJava標準の画像関連API群であるJava Advanced Imaging API(通称JAI)およびJava Image I/OJPEG関連のコーデックMac OS Xでまったく動かず、今やそこら中に転がっているJPEGひとつ扱うのも一苦労するという。なお、このJAI問題はJavaの仕様書から消えたが実は使える古いAPIを密かに使用して回避しているプログラマーが多い。

また、クロスプラットフォームでは、全てのプラットフォームの「最大公約数」の機能しか持ち合わせないことになるため、プラットフォームの特性や特徴を活かしきることができないという問題を抱えている。この問題点の指摘はアップルアドビFlashを巡る論争から飛び火してきたものである。

Windows問題[編集]

マイクロソフトJavaからネイティブコードを呼び出せるように改造したとして、この品質チェックに不合格となった。不合格になったにも関わらず、マイクロソフトJava仮想マシンWindowsに同梱配布したとして裁判所に訴えられた話は有名である。そしてWindowsからJavaが消え去った。

ちなみにマイクロソフトが実装したこの機能と同様なものが欲しいという要望が殺到したのか知らないが、後にJava Native Interfaceと名前を変えて公式に再実装されている。

Mac問題[編集]

アップルが純正Javaにはない文字列描画時のアンチエイリアスを搭載し、純正Javaよりも綺麗に文字列描画を行うように改造したとして、この品質チェックに不合格となった。そしてMac OS XからJavaが消え去った。 [1]

Android問題[編集]

このWrite Once, Run Anywhereという厳しい掟だが、SunGoogleAndroidにのみ特例を認めていた。

グーグルという会社は、サンの創業者の一人であるアンディ・ベクトルシャイムが自身の出身大学であるスタンフォード大学の学生2人に出資して設立された会社であり、いわばサンの子供のような存在であったため、下っ端社員レベルでは口出しできなかったと言われている[2]

後にオラクルサンを買収したことで、この特例が認められなくなり訴訟となった。

そして互換性問題だけが残った。

インスパイヤ[編集]

関連項目[編集]

参考文献[編集]

外部リンク[編集]