プラットフォーム独立とは何ですか?クロスプラットフォームと「プラットフォームの独立性」は同じですか?


11

プラットフォームの独立性とはどういう意味ですか?言語プラットフォームを独立と呼ぶ基準は何ですか?クロスプラットフォームと「プラットフォームの独立性」は同じですか?

(これは自習用の質問かもしれませんが、スタックオーバーフローの専門家から聞きたいと思います。インターネットに関するそれに関する多くの定義と見解があり、それらのいくつかは混乱しています)


「プラットフォーム独立」という用語は、言語自体ではなく、特定のプログラム製品に適用するのに適していると思います。

3
私は個人的にJavaをプラットフォームに依存しないと考えています。なぜなら、各プラットフォームのJVMは、すべてのJavaプログラムに対して同じ一連の命令とコードをサポートする必要があるからです(「any」の一般的な値)。一方、C#はMonoと.NETの両方で実行されるという点でクロスプラットフォームと見なされますが、同程度ではありません。

1
@Randolphは、ドットネットインフラストラクチャの多くがWindowsに疲れていることを忘れているようです。たとえば、すべてのUIのものです。Javaのプラットフォーム独立性をdotnet + monoと比較することはできません。ここには、標準の一部と呼ばれる非常に多くの部分がありますが、唯一の問題は、Windowsでのみ動作することです。ピンボークはあちこちに散らばっており、その使用は携帯性がないことを忘れないでください。
mP01

クロスプラットフォームとプラットフォーム独立の違いを説明してください。

@mP-私はそれをまったく忘れていませんでした。実際、ほとんどのUIがWindowsに結び付けられているという事実のために、「同程度ではない」と言ったとき、私は非常に明確だと思いました。注意深く読んだ場合、Javaを.NETおよびMonoと比較していませんでした。Javaはプラットフォームに依存せず、.NET / Monoはクロスプラットフォームだと言いました。それが比較であれば、リンゴと梨も同等であるべきだと思います。私が保証として出くわした場合、私を許してください、しかし、私は私の口に入れられた言葉に感謝しません。

回答:


8

プラットフォーム非依存とクロスプラットフォームは同じではありません。以下の説明を見て理解してください。


クロスプラットフォームソフトウェア


クロスプラットフォーム、またはマルチプラットフォームは、複数のコンピュータープラットフォームで実装および相互運用されるコンピューターソフトウェアまたはコンピューティングの方法と概念に付与される属性です。

2つのタイプに分けられます。

  1. サポートするプラットフォームごとに個別のビルドまたはコンパイルが必要です。
  2. もう1つは、特別な準備なしで任意のプラットフォームで直接実行できます。たとえば、インタープリター言語またはランタイムパッケージが共通またはすべてのプラットフォームの標準コンポーネントであるプリコンパイルされたポータブルバイトコードで書かれたソフトウェアなどです。

マルチプラットフォームまたはクロスプラットフォームソフトウェア:ソフトウェアは複数のプラットフォーム(オペレーティングシステム)で利用可能です。これは2つのことを意味します-

  1. このソフトウェアには、さまざまなプラットフォーム用のさまざまなビルド/アプリケーションが用意されています[Windows用のさまざまなパッケージ、Linux用のこのパッケージ]。
  2. ソフトウェアは複数のプラットフォームで(同じダウンロードで)実行できますが、すべてではありません。

プラットフォームに依存しない


プラットフォームに依存しないソフトウェアは、単一のプラットフォームの特別な機能に依存しません。または、依存する場合は、それらの特別な機能を処理して、複数のプラットフォームに対応できます。

プラットフォームに依存しないソフトウェア:厳密な意味でのプラットフォームに依存しないソフトウェア–

  • どこにでもインストールしてどこでも実行できます。どこにいても問題ありません。異なるインストーラー(異なるプラットフォーム用)を入手できますが、これはユーザーの使いやすさのためだけです。ソースコードから直接インストールするオプションがあります。




さまざまなソースから集約


@Shekhar:偶然にも、私はあなたが物を撮ったかもしれない場所から同じソース(Wikipedia ANDopenalternatives.org/site/2008/08/…)を見つけました。どうもありがとうございました。

@CSharpLearner投稿の最後に言及したとおり

0

私の「腸の定義」は、シェカーが言ったことと一致しています。multiplatform ==は多くの互換性のないプラットフォーム用にビルドされ、プラットフォームに依存しない==はプラットフォームに関係なく動作します。

もちろん、プラットフォーム==オペレーティングシステムが見やすい場合、その場合、実行するOSにPythonインタープリターがあれば、Pythonスクリプトはおそらく「プラットフォームに依存しない」でしょう。

ある意味では、スクリプトのプラットフォーム Pythonです。プラットフォームは、結局のところ、いくつかの機能を抽象化するソフトウェア+ハードウェアの標準スタックです。

しかし、私のポイントが何であるかはわかりません。


0

Shekhar_Proの答えを少し拡大するには、

Platform Independentは、あらゆるプラットフォームを実行します。必ずしも再コンパイルや書き換えをせずにWindows、Mac、Linuxで実行できるプラットフォーム固有のもののないJavaまたはPythonアプリケーションを考えてください。

クロスプラットフォーム製品は、まったく異なる魚のやかんです。クロスプラットフォーム製品のいくつかの側面が共通の要件とソースコードさえ共有する場合(たとえば、Cで実装される一部の数学関数)、各製品バージョンは特定のプラットフォーム用に完全に記述およびコンパイルされます。たとえば、Mac、Windows、Linux、BeOS、Androidなどで実行されている異なるバージョンのMozilla Firefoxを考えてください。各バージョンは類似しており、互換性のあるデータ構造を持つこともありますが、各バージョンも独立して開発され、多くの場合、まったく異なるプログラミング言語とAPI、異なるバージョン番号などを使用して記述されます。


-1

プラットフォーム非依存とは、1つのプラットフォームまたはオペレーティングシステムで記述され、テストされ、機能するプログラムが、異なるプラットフォーム/ OSで変更されずに動作することを意味します。当然、それが別のディレクトリにコピーされた場合、いくつかの小さな構成ファイルは修正されたパスを必要とするかもしれませんが、それ以外は機能するはずです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.