什么是平台独立性?跨平台和“平台独立性”是否相同?


11

平台独立性的真正含义是什么?所谓独立于语言平台的标准是什么?跨平台和“平台独立性”是否相同?

(这可能是一个自我学习的问题,但是我想从Stack Overflow的专家那里听到。在Internet上有很多关于它的定义和观点,其中有些令人困惑)


我认为“独立于平台”一词更适合用于特定的程序产品,而不是语言本身。

3
我个人将Java视为独立于平台的,因为每个平台上的JVM必须为任何Java程序支持相同的指令集和代码集(对于“ any”的通用值)。另一方面,由于C#可在Mono和.NET上运行,但程度不同,因此可以认为是跨平台的。

1
@Randolph,您似乎忘记了很多dotnet基础架构对Windows都很累-例如所有ui东西。您无法将Java的平台独立性与dotnet + mono进行比较,它甚至还不紧密。这么多的部分被称为标准的一部分,唯一的问题是它们只能在Windows上运行。别忘了pinvoke散布在各处,使用起来也不会很方便。
mP01 2011年

您能否解释一下跨平台和平台独立性之间的区别?

@mP-我一点都没有忘记。实际上,我认为当我说“程度不同”时,我已经很清楚了,因为大多数UI都与Windows相关。如果您仔细阅读,我没有将Java与.NET和Mono进行比较:我说Java是平台无关的,而.NET / Mono是跨平台的。如果可以比较的话,我想这意味着苹果和梨也应该等效。原谅我的想法,但我不喜欢在我嘴里说的话。

Answers:


8

没有平台独立性和跨平台不相同。让我们看一下下面的解释以了解。


跨平台软件


跨平台或跨平台是授予在多个计算机平台上实现并互操作的计算机软件或计算方法和概念的属性

它可以分为两种类型。

  1. 需要针对其支持的每个平台进行单独的构建或编译,
  2. 另一个可以直接在任何平台上运行而无需特殊准备,例如,用解释语言编写的软件或预编译的便携式字节码,对于这些解释器或运行时程序包,它们是所有平台的通用或标准组件。

多平台或跨平台软件:该软件可在多个平台(操作系统)上使用。这可能意味着两件事-

  1. 该软件提供了针对不同平台的不同内部版本/应用程序(适用于Windows的不同软件包,适用于Linux的软件包)。
  2. 该软件可以在多个平台上运行(下载相同),但不能全部运行。

平台无关


与平台无关的软件不依赖任何单个平台的任何特殊功能,或者可以(如果需要)处理这些特殊功能,使其可以处理多个平台。

平台独立软件:严格意义上的平台独立软件–

  • 随处安装,随处运行–无论您身在何处都可以。尽管您可能会获得不同的安装程序(针对不同的平台),但这只是为了使用户放心。您可以选择直接从源代码安装。




来自不同来源的汇总


@Shekhar:巧合的是,我也从您那里拿到了同样的资料(维基百科和openalternatives.org/site/2008/08/…)。非常感谢你。

我在帖子底部提到的

0

我的“胆量定义”与谢克哈尔所说的相符。multiplatform ==可为许多不兼容的平台构建,与平台无关的==不管平台如何均可工作。

当然,如果平台==操作系统很容易看到,那么在这种情况下,只要您打算在OS上运行Python解释器,Python脚本就可能是“平台无关的”。

在某种程度上,脚本的平台 Python。毕竟,平台是抽象一些功能的标准软件+硬件堆栈。

不过,不确定我的意思是什么。


0

为了稍微扩展一下Shekhar_Pro的答案

独立平台将执行任何平台。考虑一下没有任何平台特定内容的Java或Python应用程序,这些东西可以在Windows,Mac和Linux上执行而无需重新编译或重写。

跨平台产品完全是另一种鱼。如果跨平台产品的某些方面可能具有共同的需求甚至是源代码(例如,一些用C实现的数学函数),则每个产品版本都是针对特定平台编写和编译的。例如,以Mozilla Firefox为例,它具有在Mac,Windows,Linux,BeOS,Android等上运行的不同版本。每个版本都是相似的,甚至可能具有兼容的数据结构,但是每个版本也是独立开发的,通常使用完全不同的编程语言和API,不同的版本编号等编写。


-1

平台独立性是指在一个平台或操作系统上编写,测试和运行的程序可以在未修改的平台/操作系统上运行。自然地,如果将其复制到其他目录,则一些小的配置文件可能需要固定路径,但它不能正常工作。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.