Write Once, Run Anywhere

提供: MonoBook
2012年8月6日 (月) 08:56時点における222.1.4.217 (トーク)による版 (→‎問題)
ナビゲーションに移動 検索に移動

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

概要

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

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


問題

実際問題として、純正のJava仮想マシンであってもプラットフォームごとの互換性は微妙である。

また、クロスプラットフォームでは、全てのプラットフォームの「最大公約数」の機能しか持ち合わせないことになるため、プラットフォームの特性や特徴を活かしきることができないという問題を抱えている。この問題点の指摘はアップルアドビ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]

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

インスパイヤ

関連項目

参考文献

外部リンク