一次編寫,到處運行
外觀
「一次編寫,到處運行」(Write once, run anywhere、WORA,有時也作「write once, run everywhere」、WORE)是昇陽電腦用來展示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.