A lo largo de los años, Microsoft no ha sido el más grande abogado de Java, a pesar de la amplitud de su uso. De hecho, la compañía ha estado involucrada en una amarga batalla legal sobre la plataforma con el fundador de Java, Sun Microsystems, hace muchos años.
Pero los tiempos han cambiado. Ahora, Microsoft Open Technologies, subsidiaria de Microsoft que se ha enfocado en las tecnologías “abiertas” y la interoperabilidad, está promoviendo un enfoque basado en Java para construir aplicaciones móviles interplataforma.
JUniversal es una herramienta gratuita para desarrollar aplicaciones nativas interplataformas en Java, tal y como se presentó en una reciente entrada de blog de Microsoft Open Tech. Mientras tanto, en el propio sitio de JUniversal se lee “no solo escriba una aplicación para Android. Escriba una aplicación en Java interplataforma”. JUniversal, dice en su sitio, “escriba código en Java (como probablemente ya lo ha hecho si desarrolla para Android) y lleve ese código a lugares que nunca pensó que podría”. La tecnología, que básicamente se enfoca en compartir código en aplicaciones móviles, puede ampliarse a escenarios no móviles.
Los desarrolladores construyen código en su IDE Java favorito. Al construir susscripts, invocan a JUniversal para traducir el código fuente a C# para Windows Phone. Pronto, también podrán convertir el código Java a C++/Objective C++ para la plataforma iOS de Apple o para el código de desempeño crítico en Android NDK/Windows. Se puede usar el convertidor j2ojbc de Google para convertir a Objective C.
Sin embargo, aún tiene “asperezas”, la herramienta se encuentra disponible para que los desarrolladores la prueben ahora. “¿Es JUniversal lo suficientemente estable ahora para entregar aplicaciones de producción basadas en ella? En muchos casos sí, asumiendo que logre que funcione para sus necesidades, pero por favor prueben antes de la entrega para que podamos ver todas las advertencias”, señala el sitio.
La visión para JUniversal provino de empleados de Nokia experimentados en Java y en la construcción de aplicaciones interplataforma, sostiene Microsoft Open Tech. “Ellos construyeron esta herramienta para proporcionar una forma elegante de traducir código fuente y hacer que sea útil en varias plataformas”.
Una meta fundamental del diseño de JUniversal es preservar los comentarios y el formato, produciendo así un código traducido “que se ve muy similar a uno que hubiera escrito un humano”, sostiene Microsoft Open Tech. Con esto en mente, eldebugger, profiler y un stack de excepciones traza todo el trabajo de la misma forma que con un código escrito a mano. Así, el código fuente traducido puede combinarse con el código nativo: “No existe problema con el lenguaje”.
Para las partes del código que no se comparten, los desarrolladores deben escribirlas en el lenguaje de la plataforma nativa como C#, Swift, Objective-C y así sucesivamente. JUniversal tampoco proporciona ningún soporte para la interfaz de usuario. El plan es que la interfaz se escriba nativamente. También en JUniversal se encuentra un conjunto de librerías llamado JSimple, que proporciona versiones amigables a la interplataforma de las API que se necesitan para la mayoría de las aplicaciones móviles. Estas incluyen OAuth, JUnit, wrappers de plataforma I/O de red y archivos, colecciones (incluyendo HashMap y ArrayList) y logging.
Paul Krill, InfoWorld (EE.UU.)