有关在编程中使用“移植”一词的问题


11

我目前正在修改为UNIX系统编写的C ++代码,以便可以通过从Visual Studio进行编译来工作。我必须更改一些内置函数的名称,并且必须更改动态数组的定义方式。

我的问题是,我可以说是将代码从UNIX“移植”到Windows / Visual Studio,还是仅在从一种编程语言更改为另一种编程语言(从C ++移植到Java)时才使用“移植”?


1
许多年前,我不得不转换16位OS / 2软件才能在32位OS / 2上运行。在项目期间,每个人都将此活动称为“移植到32位”。因此,它甚至不必意味着迁移到不同的OS或什至是不同的硬件,而只是迁移到不同的环境。

Answers:


15

根据Wikipedia和我个人的经验,术语“移植”是指使软件在最初不打算用于的平台上运行。此过程有时需要更改语言,但并非总是如此。

该术语通常不适用于使软件在同一CPU和操作系统上以较少的内存运行的过程,也不适用于用不同语言(即语言转换或翻译)重写源代码。

当人们说Java程序更具“可移植性”时,它们意味着花费较少的额外工作就能使其与各种不同的机器和操作系统兼容。


7
据我所见,当人们说Java程序更具可移植性时,这意味着它们缺乏移植Java程序的经验,仅依靠Sun / Oracle的销售渠道。以我的经验,移植Java实际上比平均难度要大一些(很大程度上是因为人们被鼓励相信移植性是自动/保证的,因此不值得关注或工作)。
杰里·科芬

2
@JerryCoffin:我在这方面没有太多经验。我使用过的Java程序都是可以在Linux,Windows和Mac机上同样良好运行的Web应用程序。但是我听说过一些公司的故事,尽管开发人员抗议他们无法以这种方式实现可移植性,但他们的管理层却在他们身上进行了Java转换。
StriplingWarrior

4
@Jerry-不确定您的经验在哪里,但是几乎我移植的每个Java程序都移植不容易(这包括GUI和Mac / Win / Linux / Solaris上的服务器端应用程序)。Sun和Oracle在一定程度上是正确的,因为Java应用程序比其他任何应用程序都更易于移植-大多数甚至不需要重新编译(即使对于编写良好的可移植C / C ++,这也可能是可移植性第二好)。我看到的最常见的问题是,当开发人员硬编码平台的具体事情,如“/”作为目录分隔符,但这些都是很容易修复....
mikera

@Jerry我为J2ME游戏编程了5年。当我结束时,我们正在做80个游戏版本-每个平台都有不同的性能,错误等。解决方案?他们没有为平台创建标准,而是为J2ME应用程序创建了标准测试。再也不。
苏珊(Sulthan)2013年

2

一个可以在操作系统之间移植软件。一个可以在处理器体系结构之间移植软件。在处理重大平台更改时(苹果的PPC-> x86交换机,或Windows XP-> Windows Vista / 7/8),可能需要执行一些我通常与“移植”相关的活动。我不会认为切换编程语言是“移植”。更像是完全重写。

我已经将软件从Linux移植到Windows,反之亦然。我已经将软件从SPARC移植到x86(我只是喜欢处理endian问题),并且从32位移植到64位。这些天来,我正在用Java编程...我不确定在Javaland中“ porting”一词是否有很多含义,也许在主要的JVM版本之间....


0

随着发行商希望涵盖尽可能多的平台(PC,Xbox,Playstation等),移植在游戏开发中变得越来越受欢迎。如前所述,移植意味着转换原始程序,以使其在完全不同的系统中工作。通常,游戏制造商会将主机游戏转换为PC。


越来越多的开发人员依赖于像Unity这样的跨平台开发工具,因此他们不必移植。首先开发一个可以在多个平台上运行的代码库与“移植”不是一回事,这意味着某些东西是在一个平台上设计并运行的,然后又修改为可以在另一个平台上运行。

听起来很有趣!它如何影响性能和可伸缩性?一个问题很可能是控制台仍然比大多数高端PC慢很多的事实-Unity如何在不影响更快系统的最高质量的情况下实现这一目标?
Juha Untinen 2013年
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.