一次编写,到处运行
“一次编写,到处运行”(Write once, run anywhere、WORA,有时也作“write once, run everywhere”、WORE)是Sun微系统用来展示Java编程语言的跨平台特性的口号[1][2]。在理想中,这意味着Java可以在任何设备上开发,然后编译成一段标准的字节码,就可以在任何安装有Java虚拟机(JVM)的设备上运行。在芯片、设备和软件包中安装Java已经成为一种工业实践的标准。
它意味着开发者可以在一台PC上进行Java开发,并能在安装有Java的手机、路由器、大型计算机上运行其代码而无需经过调整。这将使开发者能更容易地在不同的平台或操作系统上部署软件,而不必开发不同的版本来面向不同平台。
该想法可以追溯到20世纪70年代,UCSD Pascal系统在p-code上开发、运行。James Gosling提到UCSD Pascal(以及Smalltalk虚拟机)对Java虚拟机的设计有关键性的影响[来源请求]。
美中不足的是,Java虚拟机在各种操作系统(Windows、Linux、Solaris、NetWare、HP-UX以及Mac OS)上有多种不同的实现,导致Java程序在不同的JVM虚拟机和操作系统上执行时有微妙的差别,所以一种应用可能需要在许多平台上进行测试才能确保正确性和稳定性,这造就了一个程序员间的笑话:“一次编译,到处调试”(“Write Once, Debug Everywhere”)。[3]
引用
编辑- ^ JavaSoft ships Java 1.0. Sun Microsystems. 1996-01-23.
Java's write-once-run-everywhere capability along with its easy accessibility have propelled the software and Internet communities to embrace it as the de facto standard for writing applications for complex networks
- ^ Write once, run anywhere?. Computer Weekly. 2002-05-02 [2009-07-27]. (原始内容存档于2021-08-13).
- ^ Wong, William. Write Once, Debug Everywhere. electronicdesign.com. 2002-05-27 [2013-02-04]. (原始内容存档于2019-04-03).
So far, the "write-once, run-everywhere" promise of Java hasn't come true. The bulk of a Java application will migrate between most Java implementations, but taking advantage of a VM-specific feature causes porting problems.