¿Por qué Google no admite el lenguaje de programación Go para el desarrollo de Android?

Antes de responder sobre el desarrollo de Go (lenguaje de programación) en Android (sistema operativo), permítanme enfatizar algo sobre Objective-C e iOS.

Como sabrán, Apple tiende a crear ecosistemas estrechos alrededor de sus productos (principalmente computadoras Mac antes del iPhone / iOS), ahora Objective-C es el idioma nativo para la mayoría del ecosistema Mac OS X (probablemente debido a su legado NeXTSTEP). De todos modos, para el desarrollo moderno de OS X con la API de Cocoa, Objective-C es el idioma predeterminado. Entonces, al comenzar el ecosistema iOS, Apple estaba interesado en permitir que su comunidad de desarrolladores usara las herramientas con las que están familiarizados, por lo que Objective-C fue una buena opción para el lenguaje de programación predeterminado. Hoy puede usar los lenguajes de programación compilados más populares para el desarrollo de iOS, pero las API principales siguen siendo Objective-C y, por lo tanto, Objective-C sigue siendo el valor predeterminado.

Android, por otro lado, se basa en una versión bastante mínima del kernel de Linux con una máquina virtual Java llamada Dalvik que se ejecuta encima y la mayoría de las aplicaciones de Android que se ejecutan dentro de la máquina virtual Dalvik, que hacen de Java el lenguaje de programación predeterminado para el desarrollo de Android. La razón, por cierto, es probablemente muy similar a la razón por la cual Objective-C es el lenguaje predeterminado para iOS: Java se usa extensivamente a través del ecosistema de Google (por ejemplo, App Engine, GWT, SDK) e internamente, por lo que fue un paso lógico para usa Java para Android.

Ahora considere IR; Primero, su desarrollo comenzó cuando Android ya estaba en marcha, y se lanzó después de que se lanzó Android. Además, hubo, y por el contrario todavía, hay muy pocos desarrolladores competentes con GO, y si desea un ecosistema de rápido crecimiento, necesita desarrolladores competentes y hacer que los desarrolladores aprendan un nuevo idioma podría estar poniendo la barra de entrada un poco alta para atraer desarrolladores. a un ecosistema en desarrollo. Además de esto, también vale la pena considerar los simples hechos de que Java es más maduro que GO, y que el enfoque principal de GO es el sistema concurrente, que aún debe ser altamente relevante para los teléfonos móviles.

Dicho todo esto, puede usar el comando GO 5g (http://golang.org/cmd/5g/) para crear ejecutables compatibles con ARM que se ejecutarán en un dispositivo Android, pero esta opción está muy limitada en este momento, ya que no hay No es compatible con hardware de punto flotante y no admite interfaces externas, por lo que solo puede escribir aplicaciones de enteros de línea de comandos para Android con GO.

De acuerdo con Brad Fitzpatrick sobre el futuro del lenguaje de programación Go (1.4, 1.5 y 2.0), habrá inicios de compatibilidad con Android en go1.4.

Ejem, Android Java Pick fue antes de que Android INC fuera comprado por Google. Java fue elegido para Android cuando estaba bajo Android INC debido a la experiencia previa de los stakeeholders con Java en peligro SideKick.