Escreva uma vez, corra em qualquer lugar - Write once, run anywhere

Escreva uma vez, execute em qualquer lugar (WORA) ou, às vezes, Escreva uma vez, execute em qualquer lugar (WORE), foi um slogan de 1995 criado pela Sun Microsystems para ilustrar os benefícios de plataforma cruzada da linguagem Java . Idealmente, isso significava que um programa Java poderia ser desenvolvido em qualquer dispositivo, compilado em bytecode padrão e executado em qualquer dispositivo equipado com uma máquina virtual Java (JVM). A instalação de um interpretador JVM ou Java em chips, dispositivos ou pacotes de software tornou-se uma prática padrão da indústria.

Um programador poderia desenvolver código em um PC e esperar que ele rodasse em telefones celulares habilitados para Java , bem como em roteadores e mainframes equipados com Java, sem quaisquer ajustes. O objetivo era poupar aos desenvolvedores de software o esforço de escrever uma versão diferente de seu software para cada plataforma ou sistema operacional em que pretendem implantar.

Essa ideia surgiu o mais tardar na década de 1960, com o IBM M44 / 44X , e no final da década de 1970 o sistema UCSD Pascal foi desenvolvido para produzir e interpretar p-code . UCSD Pascal (junto com a máquina virtual Smalltalk) foi uma influência chave no design da JVM, conforme citado por James Gosling .

O problema é que, uma vez que existem várias implementações JVM, além de uma ampla variedade de sistemas operacionais diferentes, pode haver diferenças sutis em como um programa é executado em cada combinação JVM / OS, possivelmente exigindo que um aplicativo seja testado em cada plataforma de destino . Isso deu origem a uma piada entre os desenvolvedores Java: Write Once, Debug Everywhere .

Em comparação, o ambiente e a linguagem de programação Squeak Smalltalk se orgulha de ser verdadeiramente escrito uma vez executado em qualquer lugar, porque ele executa imagens bit-idênticas em sua ampla base de portabilidade.

Como o Squeak, MicroEJ fornece um ambiente de execução virtual que garante uma política de thread Java exclusiva em todas as implementações, garantindo uma verdadeira semântica WORA em milhões de dispositivos.

Veja também

Referências