クロスプラットフォーム
クロスプラットフォーム(テンプレート:Lang-en-short)とは、異なるプラットフォーム(例えばPC/AT互換機とMacintosh、あるいはWindows・Mac OS X・FreeBSD・Linuxなどのように、仕様が全く異なる機械(ハードウェア)またはオペレーティングシステム)上で、同じ仕様のものを動かすことが出来るプログラム(ソフトウェア)のことを言う。同様の呼称にマルチプラットフォーム[1]がある。
また、家庭用ゲームにおいて複数のハードで同じ作品が発売されることを指して「マルチプラットフォーム」と呼称する場合がある。本項ではこのケースについても後述する。
クロスプラットフォームのアプリケーションプログラムの例
具体的には次のようなものがある。
クロスプラットフォームなプログラムは、表面上はどのオペレーティングシステム上でも全くほぼ同じように動作するが、場合によってはオペレーティングシステム側とのやり取りを行う部分は、それぞれのOSの機能に応じて最適化がなされていて、一方のオペレーティングシステムで動いていたものを、そのまま他のオペレーティングシステムに持っていっても動作しない場合がある。そのため一部のプログラムでは、各オペレーティングシステム専用のコードをどのオペレーティングシステム向けのパッケージにも含ませていることがある。また、保存された設定などの一部データは、他のオペレーティングシステムに移植しても正常に動作することがある。例えば、Mozilla Thunderbird のメールデータや設定などのプロファイルを別のプラットフォームへ持っていけば、新たなプラットフォーム上で引き続き利用できる[2]。
Java の実行環境は Windowsや Mac OS X、Linux や UNIX、携帯電話などに存在するため、Java バイトコードできたアプリケーションはこれらのプラットフォーム上で同じように利用できる。
モジラ・ファウンデーションがオープンソースで開発しているインターネットアプリケーション群も複数のオペレーティングシステムに提供されている。Mozilla は単なるブラウザやメールクライアントなどのアプリケーションという位置だけではなく、それらアプリケーション上で動作する共通のプログラムを扱える。例としては Firefox の拡張機能(エクステンション、アドオン)にFTPクライアントの機能を持たせる FireFTP というものがある。これを用いれば Firefox からFTPを利用できる。つまり、Firefox がインストールできる異なったOSで、同様の機能のソフトを利用できるということである。
Opera のケースでは、オペレーティングシステム環境に依存せず異なる環境へ移植可能で軽量なプログラムコードを用いているため、デスクトップ環境のみならず、容量の少ない携帯電話や家庭用ゲーム機にもブラウザ機能を移植するケースが存在する。
さらに、ダイナミックHTMLを活用したリッチインターネットアプリケーションが既に広く利用されており、ウェブブラウザもクロスプラットフォーム環境である。
家庭用ゲーム機におけるクロスプラットフォーム
家庭用ゲーム機におけるマルチプラットフォームという語は汎用コンピューターにおける意味とは異なり、ある一つのソフトウェアを各ハードウェア向けにそれぞれ別々に開発することを意味する場合がほとんどである。家庭用ゲーム機(コンシューマーゲーム)の場合はマルチプラットフォームという語の方が主に用いられる。
ゲーム機は、インターフェースや表示手段などの動作環境がハードに強く依存しているため、ハードウェア性能が著しく異なる場合、ゲームデザインのレベルから再構成する場合もあり、中には同じ作品でありながら、テーマや世界観以外は全く異なるゲームとして発売されているものも存在する。