「Write Once, Run Anywhere」の版間の差分
imported>Administrator 細 |
Administrator (トーク | 投稿記録) |
||
(2人の利用者による、間の3版が非表示) | |||
1行目: | 1行目: | ||
− | '''Write Once, Run Anywhere''' | + | '''Write Once, Run Anywhere'''(読み:らいとわんす・らんえにーうぇあ)とは、「[[Java]]で書かれた[[プログラム]]は[[OS]]や[[デバイス]]などのプラットフォームに依存しない」ということを意味する[[Java]]公式スローガン、いわゆる掟である。 |
== 概要 == | == 概要 == | ||
[[Java]]で作られた[[プログラム]]は[[OS]]や[[デバイス]]を問わず動かすことができる(ようにしたい)、という理想である。 | [[Java]]で作られた[[プログラム]]は[[OS]]や[[デバイス]]を問わず動かすことができる(ようにしたい)、という理想である。 | ||
− | [[Java]] | + | === ビジネスモデルとして === |
+ | [[Java]]は第三者によるJavaコンパイラおよび[[Java仮想マシン]]を認めている。ただし、この「Write Once, Run Anywhereという理想を実現する」という大義名分のもと、[[サンマイクロシステムズ]](現:[[オラクル]])の厳しい品質チェックを受け、合格しなければならない。 | ||
− | どうしてもこの枠組みから外れたJava互換品が必要とあらば[[サンマイクロシステムズ]](現:[[オラクル]])にライセンス料を払うことで品質チェックを強引に突破できるようになっている。[[Java]] | + | どうしてもこの枠組みから外れたJava互換品が必要とあらば[[サンマイクロシステムズ]](現:[[オラクル]])にライセンス料を払うことで品質チェックを強引に突破できるようになっている。[[NTTドコモ]]の[[iアプリ]]など、[[フューチャーフォン]](いわゆる[[ガラケー]])に搭載されているJavaのほとんどはこれである。 |
+ | |||
+ | [[Java]]([[JDK]]、[[JRE]]、[[NetBeans]]など)が無料配布されているにもかかわらず、[[Java]]を作っている[[プログラマー]]たちが給料をもらいご飯を食べられているのはこのライセンス料によるものであり、ガラケーが全盛の時代は年間1000億円を超えるライセンス収入を得ていたと言われている。 | ||
== 問題 == | == 問題 == | ||
− | 実際問題として[[Oracle]]純正の[[JRE]]・[[Java仮想マシン]]であっても[[プラットフォーム]]ごとの[[互換性]]は微妙である。たとえばJava標準の画像関連API群である[[Java Advanced Imaging API]](通称[[JAI]] | + | 実際問題として[[Oracle]]純正の[[JRE]]・[[Java仮想マシン]]であっても[[プラットフォーム]]ごとの[[互換性]]は微妙である。たとえばJava標準の画像関連API群である[[Java Advanced Imaging API]](通称[[JAI]])および[[Java Image I/O]]の[[JPEG]]関連の[[コーデック]]は[[Mac OS X]]でまったく動かず、今やそこら中に転がっている[[JPEG]]ひとつ扱うのも一苦労するという。なお、このJAI問題はJavaの仕様書から消えたが実は使える古い[[API]]を密かに使用して回避している[[プログラマー]]が多い。 |
また、[[クロスプラットフォーム]]では、全てのプラットフォームの「[[最大公約数]]」の機能しか持ち合わせないことになるため、プラットフォームの特性や特徴を活かしきることができないという問題を抱えている。この問題点の指摘は[[アップル]]と[[アドビ]]が[[Flash]]を巡る論争から飛び火してきたものである。 | また、[[クロスプラットフォーム]]では、全てのプラットフォームの「[[最大公約数]]」の機能しか持ち合わせないことになるため、プラットフォームの特性や特徴を活かしきることができないという問題を抱えている。この問題点の指摘は[[アップル]]と[[アドビ]]が[[Flash]]を巡る論争から飛び火してきたものである。 | ||
31行目: | 34行目: | ||
そして互換性問題だけが残った。 | そして互換性問題だけが残った。 | ||
− | == [[インスパイヤ]] | + | == インスパイヤ == |
+ | [[インスパイヤ]]された類義語 | ||
* [[Write Once, Run Away]] | * [[Write Once, Run Away]] | ||
2022年4月11日 (月) 08:40時点における最新版
Write Once, Run Anywhere(読み:らいとわんす・らんえにーうぇあ)とは、「Javaで書かれたプログラムはOSやデバイスなどのプラットフォームに依存しない」ということを意味するJava公式スローガン、いわゆる掟である。
概要[編集 | ソースを編集]
Javaで作られたプログラムはOSやデバイスを問わず動かすことができる(ようにしたい)、という理想である。
ビジネスモデルとして[編集 | ソースを編集]
Javaは第三者によるJavaコンパイラおよびJava仮想マシンを認めている。ただし、この「Write Once, Run Anywhereという理想を実現する」という大義名分のもと、サンマイクロシステムズ(現:オラクル)の厳しい品質チェックを受け、合格しなければならない。
どうしてもこの枠組みから外れたJava互換品が必要とあらばサンマイクロシステムズ(現:オラクル)にライセンス料を払うことで品質チェックを強引に突破できるようになっている。NTTドコモのiアプリなど、フューチャーフォン(いわゆるガラケー)に搭載されているJavaのほとんどはこれである。
Java(JDK、JRE、NetBeansなど)が無料配布されているにもかかわらず、Javaを作っているプログラマーたちが給料をもらいご飯を食べられているのはこのライセンス料によるものであり、ガラケーが全盛の時代は年間1000億円を超えるライセンス収入を得ていたと言われている。
問題[編集 | ソースを編集]
実際問題としてOracle純正のJRE・Java仮想マシンであってもプラットフォームごとの互換性は微妙である。たとえばJava標準の画像関連API群であるJava Advanced Imaging API(通称JAI)およびJava Image I/OのJPEG関連のコーデックは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という厳しい掟だが、SunはGoogleのAndroidにのみ特例を認めていた。
グーグルという会社は、サンの創業者の一人であるアンディ・ベクトルシャイムが自身の出身大学であるスタンフォード大学の学生2人に出資して設立された会社であり、いわばサンの子供のような存在であったため、下っ端社員レベルでは口出しできなかったと言われている[2]。
後にオラクルがサンを買収したことで、この特例が認められなくなり訴訟となった。
そして互換性問題だけが残った。
インスパイヤ[編集 | ソースを編集]
インスパイヤされた類義語