Write once, run anywhere

Write once, run anywhere (WORA), or sometimes Write once, run everywhere (WORE), was a 1995[1] slogan created by Sun Microsystems to illustrate the cross-platform benefits of the Java language.[2][3] Ideally, this meant that a Java program could be developed on any device, compiled into standard bytecode, and be expected to run on any device equipped with a Java virtual machine (JVM). The installation of a JVM or Java interpreter on chips, devices, or software packages became an industry standard practice.

A programmer could develop code on a PC and expect it to run on Java-enabled mobile phones, as well as on routers and mainframes equipped with Java, without any adjustments. This was intended to save software developers the effort of writing a different version of their software for each platform or operating system they intend to deploy on.

This idea originated no later than the 1960s, with the IBM M44/44X, and in the late 1970s the UCSD Pascal system was developed to produce and interpret p-code. UCSD Pascal (along with the Smalltalk virtual machine) was a key influence on the design of the JVM, as is cited by James Gosling.[citation needed]

The catch is that since there are multiple JVM implementations, on top of a wide variety of different operating systems, there could be subtle differences in how a program executes on each JVM/OS combination, possibly requiring an application to be tested on each target platform. This gave rise to a joke among Java developers: Write Once, Debug Everywhere.[4]

In comparison, the Squeak Smalltalk programming language and environment boasts of being truly write once run anywhere,[5] because it runs bit-identical images across its wide portability base.[6]

Like Squeak, MicroEJ provides a virtual execution environment that guarantees one unique Java thread policy across all implementations, ensuring a true WORA semantic across millions of devices.

  1. ^ "Write once, run anywhere?". ComputerWeekly.com. Retrieved 2022-10-05.
  2. ^ "JavaSoft ships Java 1.0". Sun Microsystems. 1996-01-23. Archived from the original on 2007-03-10. 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
  3. ^ "Write once, run anywhere?". Computer Weekly. 2002-05-02. Retrieved 2009-07-27.
  4. ^ Wong, William (2002-05-27). "Write Once, Debug Everywhere". electronicdesign.com. Retrieved 2013-02-04. 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.
  5. ^ "Welcome To Squeak". Squeak. Retrieved 5 May 2015.
  6. ^ "Back to the Future The Story of Squeak, A Practical Smalltalk Written in Itself". Dan Ingalls Ted Kaehler John Maloney Scott Wallace Alan Kay. Retrieved 5 May 2015.