Durante un tiempo, sobre todo desde el anuncio de Swift por parte de Apple, muchos pensamos sin casi pruebas que Go
podría convertirse en "ese lenguaje” perfecto para Android. Poco a poco
y sin demasiado ruido mediático vemos que ese acercamiento entre parte
de la comunidad de Go y Android empieza a dar sus frutos. Hace unas
semanas se anunció la disponibilidad de Go 1.4. Entre las mejoras del lenguajes y sus principales características, ahora los desarrolladores Android podrán programar aplicaciones sencillas usando Go.
Android podría ayudar al crecimiento como lenguaje y a la popularidad de Go.
En su día fue Java el que impulsó la plataforma Android, ahora mucho
más maduro busca la inclusión de un nuevo lenguaje que aporte la
simplicidad a la hora de desarrollar en Android. Siguiendo la estela de
Android Studio como IDE le podría seguir Go como lenguaje nativo.
No es una tarea sencilla. La comunidad de Go es consciente de la dificultad: la plataforma Android es, literalmente, intratable.
Cuenta con una gran cantidad de APIs escritas en Java y no de la mejor
forma. Cualquier intento de envolver esas API tendría consecuencias
nefastas: introduciendo de lags innecesarios en el core de la
plataforma, lentitud, etc.. Pero lo más preocupante sería que Go se
tornaría feo y complejo, alejandose de su paradigma inicial.
El acercamiento de Go 1.4 con Android se ha basado en portar algunas APIs del NDK (escrito en C). Cualquiera que se haya pegado con el NDK de Android apreciará este intento a simplificar acciones pasando por Go en lugar de las vetustas APIs de NDK.
El foco de Go en Android son los juegos. Con el API
para Go podemos dibujar objetos en pantalla, producir sonidos o
gestionar eventos táctiles. Se dota la posibilidad de construir binarios
para procesadores ARM y cargarlos como librerías .so en aplicaciones.
Todo el soporte para Go en Android se encuentra en el core y el repositorio golang.org/x/mobile. Donde podremos encontrar algunos ejemplos de uso y librerías que utilizar.
Google+
@durbon
Editor en Genbetadev