私はたくさんのC/C++ライブラリとGuiツールキットを見てきました。それらの中には、プラットフォームに依存しないと主張するGTK +、Qt、Swingなどのようなものがあります。クロスプラットフォームであると主張するWxWidgets、SWTなどの一部もあります。最初は言い回しの変更だと思っていたのですが、一貫して使われているので気になり始めました。違いは何ですか?
4 に答える
クロスプラットフォームは、複数のプラットフォームをサポートすることを意味するだけです。これは通常、Linux、Mac、およびWindowsを意味します。プラットフォームに依存しないということは、言語がサポートするすべてのプラットフォームをサポートすることを意味します。つまり、言語仕様で指定されていない動作に依存しないことを意味します。ただし、これは私の個人的な意見であり、ほとんどの場合、両方を「複数のプラットフォーム」、通常は「Windowsと...」を意味します。
その価値については、これはウィキペディアが問題について言わなければならないことです:
ソフトウェアがクロスプラットフォームと見なされるためには、複数のコンピュータアーキテクチャまたはオペレーティングシステムで機能できる必要があります。
プラットフォームに依存しないソフトウェアは、単一のプラットフォームの特別な機能に依存していません。依存している場合は、複数のプラットフォームを処理できるようにそれらの特別な機能を処理します。
「プラットフォームに依存しない」は通常、別のプラットフォーム用に再コンパイルまたは調整する必要がなく、「そのまま」(Java、ほとんどのPerlスクリプトなど)実行できる高水準言語で記述されたプログラムです。特定のプラットフォームは言語ランタイムを実装します。これは、プログラムの下にさまざまなプラットフォーム(VMまたはインタープリター)を処理するレイヤーがある場合に可能です。
「クロスプラットフォーム」とは、プログラムを複数のプラットフォーム用にコンパイル/調整できるが、どのプラットフォーム用にもコンパイル/調整できないことを意味します。#ifdef
CおよびC++コードの'を考えてみてください。
クロスプラットフォームとは、プログラムがWindows、Linux、Macなどのさまざまなプラットフォームで動作できることを意味します。
プラットフォームに依存しないということは、コードがWrite Once Run Anywhereであることを意味します。つまり、異なるプラットフォームで実行するためにコードを変更する必要はありません。
プラットフォームに依存しないプログラムはすべてクロスプラットフォームですが、その逆は当てはまりません。