有人可以解释一下这些的区别吗?如果程序是平台独立的,它是否也使其可移植,反之亦然?
1 回答
平台无关意味着,这些程序可以在“几乎”所有操作系统中运行。不需要全部,但至少 MS、Linux 和 Mac 可以使用这个词。
并且,让我们挖掘一下“平台无关”这个词背后的事实。
注意:以下句子是我的观点。如果有人阅读,无法理解背后的逻辑或不喜欢,只需按下按钮CTRL+W即可关闭。我注意到这些是因为 Java 程序员在面对这些句子时会变得非常生气。但它始终是开放的讨论。请检查:http ://en.wikipedia.org/wiki/Platform-independent_model
好的,不要打断话题然后回头。
实际上,从逻辑上讲,任何需要平台安装程序的程序都不能被视为独立于平台的。例如,如果我不能在不下载和安装 Java 运行时包服务等的情况下运行 Java 可执行文件......那么我们怎么能说它是平台独立的。如果我们可以说,那么将近 80% 的 Windows 可执行文件也是平台独立的,因为您可以在 Linux 等上使用虚拟机或 WINE 运行它们。当然,如果 Java 独立于平台,PHP、ASP、Perl、Python、Ruby 等. 所有脚本语言也是平台无关的!?啊,当然不是......希望你明白这个逻辑。
但是我们可以做的是,我们可以为许多不同的操作系统编译我们的(自己的)软件。所以我们的软件将是“跨平台”的
真正可以独立于平台的是(正如我在上面写的,我的观点)未编译的程序集、C 等代码......
说到便携,这是另一回事。例如,“windows”操作系统下的“portable software”一词是指;
- 不将注册表或 Appdata 文件夹用于其文件或设置。
- 在它自己的文件夹下工作,它所需的所有文件都位于它自己的文件夹下。
- 还将其设置保存到其自己文件夹下的文件(ini 等)中。
而如果我们在含义上更进一步,甚至不能依赖特定的硬件/软件品牌、型号或特殊模式(如“x”品牌的屏幕卡、“y”分辨率、“z”版本的 DirectX 等)。但实际上你可以忽略最后一个细节,因为这个标准还不成熟,尚未被所有人接受。