Escribe una vez, corre a cualquier lugar
Escribe una vez, ejecuta en cualquier lugar (WORA), o a veces Escribe una vez, ejecuta en cualquier lugar (WORE), fue un eslogan de 1995 creado por Sun Microsystems para ilustrar los beneficios multiplataforma del lenguaje Java. Idealmente, esto significaba que un programa Java podría desarrollarse en cualquier dispositivo, compilarse en un código de bytes estándar y esperarse que se ejecutara en cualquier dispositivo equipado con una máquina virtual Java (JVM). La instalación de un intérprete JVM o Java en chips, dispositivos o paquetes de software se convirtió en una práctica estándar de la industria.
Un programador podría desarrollar código en una PC y esperar que se ejecute en teléfonos móviles habilitados para Java, así como en enrutadores y computadoras centrales equipadas con Java, sin ningún ajuste. Esto tenía como objetivo ahorrar a los desarrolladores de software el esfuerzo de escribir una versión diferente de su software para cada plataforma o sistema operativo en el que pretendan implementar.
Esta idea se originó a más tardar en la década de 1960, con el IBM M44/44X, y a finales de la década de 1970 se desarrolló el sistema UCSD Pascal para producir e interpretar código p. UCSD Pascal (junto con la máquina virtual Smalltalk) fue una influencia clave en el diseño de la JVM, como lo cita James Gosling.
El problema es que, dado que existen múltiples implementaciones de JVM, además de una amplia variedad de sistemas operativos diferentes, podría haber diferencias sutiles en cómo se ejecuta un programa en cada combinación de JVM/OS, lo que posiblemente requiera que se pruebe una aplicación. cada plataforma de destino. Esto dio lugar a una broma entre los desarrolladores de Java: Escribe una vez, depura en todas partes.
En comparación, el lenguaje y entorno de programación Squeak Smalltalk se jacta de ser verdaderamente de escritura una vez ejecutado en cualquier lugar, porque ejecuta imágenes de bits idénticos en su amplia base de portabilidad.
Al igual que Squeak, MicroEJ proporciona un entorno de ejecución virtual que garantiza una política de subprocesos Java única en todas las implementaciones, asegurando una verdadera semántica WORA en millones de dispositivos.
Contenido relacionado
Tarjeta perforada
CPython
Arquitectura Harvard