Java ME es una versión recortada de Java, diseñada para dispositivos pequeños como bien podrían ser procesadores embebidos, teléfonos inteligentes e incluso, computadoras muy pequeñas. Debería usarse en los teléfonos porque fue diseñado para ellos mucho antes de que Apple o Google decidieran que Objective C o un dialecto de Java, respectivamente, se pondrían en sus teléfonos.
Muchos teléfonos inteligentes han adoptado Java ME y se dice que hay 2.1 millardos de teléfonos que lo usan, incluyendo la serie 40 de Nokia, Bada y Symbian. Sin embargo, el estado actual del mercado de Java ME es de como apenas el 3% de todo el mercado de los teléfonos móviles.
Con la salida de Java 8, el lenguaje como un todo tiene una nueva vitalidad y hace un par de días, Java ME 8 fue liberado con un énfasis en procesadores embebidos y en la Raspberry Pi en particular. Terrence Barr, gerente de producción de Oracle explica: “Esta versión es la culminación de dos años de esfuerzo para hacer una gran actualización de la tecnología Java ME como una plataforma de software embebido moderna”.
La característica clave de Java ME 8 es que se está moviendo a Java 8, pero ahora se soportan muchos dispositivos de bajo costo en el procesamiento embebido, principalmente la Raspberry Pi. El equipo de Java en Oracle no habían sido muy halagüeños con respecto al soporte de la PI, cuando en general se orientaban más al uso de Python para este tipo de procesamiento, pero parece que esto ha cambiado.
Ahora, en ME 8 el énfasis a la Raspberry Pi es más evidente. Hay solamente dos ejemplos soportados por el desarrollo del sistema, el modelo B de la PI y el IoE de Qualcomm. El costo de la Pi es de unos 35 dólares, el de Qualcomm es de 499 dólares. Es claro que la atención se irá al desarrollo en el costo más bajo. Es evidente pues que la Pi es la elección obvia en donde además, ya hay una gran comunidad.
La pregunta es si la Pi puede disparar el interés por Java ME. En principio, desarrollar en Java ME con la Pi es fácil. Java ME soporta Netbeans 8 que es un IDE (un entorno de programación) de muy fácil uso. Desafortunamente la documentación de Oracle es difícil de seguir. Por ejemplo, Python puede ponerse en la Pi pero Netbeans se tiene que poner en a PC y el desarrollo0 se parece a programar el Arduino. Esto lo hace menos poderoso y manejable.
Por otra parte, Java ME tiene una serie de dificultades por la cantidad de candados y seguridad que han puesto en el sistema, sobre todo cuando se habla de teléfonos. El problema es que el programador de Pi no tiene tantas dificultades y preocupaciones por la seguridad. La Pi es de por sí segura pues no hay código de terceros que pueda entrometerse en el que escribimos. La seguridad pues, añade dificultades al principiante, por ejemplo, hasta para hacer código que sea prender o apagar un LED, pues el API pide permisos para poderlo ejecutar. Eso sin duda hace las cosas innecesariamente complicadas.
En promedio, la tarea de usar Java ME en la Pi es sin duda más difícil que poner Python en dicho dispositivo. La recompensa de trabajar con Java ME es que se está usando un sistema en donde el código es fácil transferirlo a otros sistemas embebidos. Eso sería de nuevo esa idea mítica de “escríbae una vez y córrase en cuanto dispositivo se pueda”. El hardware se puede configurar dentro del software. Como sea, en principio la idea suena bien y se dice que ya Oracle está pensando en dar soporte a otros dispositivos y tarjetas de desarrollo.
Referencias: