“平台无关”这一术语的相关性'在编程语言的上下文中

时间:2018-01-21 17:19:50

标签: java programming-languages platform-independence

也许我在这里问一个非常明显和愚蠢的问题,但我无法在谷歌上得到任何东西,所以我走了:

为什么有这么多关于Java是平台独立的事实以及其他一些语言并不存在的事实。我的意思是,就我的理解而言,总差异只是编辑步骤的存在与否,不是吗?

在Java中,当您在不同平台上运行字节码时,您不必再次编译代码,而在C或C ++中,您必须再次编译代码,以便在其上运行一个不同的平台(我错在这里吗?)。

因此,依赖于平台只意味着另外一个编译步骤。这太多了吗?我没有多少编程经验,所以也许我错过了一些明显的实用点。

1 个答案:

答案 0 :(得分:1)

平台独立性有不同等级:

  • 二进制平台独立性:相同的已编译可执行文件可以在不同平台上运行,无需任何额外步骤(例如Java)。
  • 源代码平台独立性:可以为不同平台编译相同的源代码(例如,对于精心设计的C ++程序,可能会编译)。
  • 多平台代码:源代码包含多个版本的平台相关代码元素,可以通过在编译之前设置相关的开关来选择(典型的UNIX风格的C程序)。
  • 平台相关代码:源代码仅编译为一个特定平台上的功能可执行文件,例如: Windows 32位。定位不同的平台意味着重写大量代码。

因此,问题是您希望涵盖哪些平台以及您希望投入多少平台的努力。

对于客户端,您可以使用Windows 32和64位,Macintosh,Linux变体,Android和iOS来命名最受欢迎的。唉,由于智能手机和平板电脑的用户交互方式不同,用相同的源代码覆盖所有这些平台很困难。开箱即用,Java只涵盖了经典桌面。 HTML 5和Javascript承诺涵盖整个客户端范围。

在服务器端,主要是Linux版本和Windows 64位,这里Java的平台独立性非常强大。这就是为什么许多Web和应用程序服务器都是基于Java的原因。但其他技术也可以这样做。