¿Por qué Google eligió Java para el sistema operativo Android?
Pregunta completa
¿Por qué Google eligió Java para el sistema operativo Android y no para el lenguaje X ?
- Escribir código de python en android
- Combinando el front-end de html y el "back-end" de python en la aplicación móvil
- ¿Es posible usar Python para escribir aplicaciones multiplataforma tanto para iOS como para Android?
- ¿Cómo puedo obtener la versión del núcleo de Android vía adb (o vía comando Python)?
- La lectura de cadena gzip en sqlite3 base de datos (python escribir, Java Android leer)
Donde X sería uno de los siguientes:
- Python versión 2.7 o versión 3
- Que es igualmente potente como Java
- Tiene un montón de útiles bibliotecas de terceros
- Es más rápido de desarrollar gracias a su naturaleza dinámica
- C / C ++ u ObjC
- Que son más difíciles de desarrollar en
- Correr más rápido gracias a menos gastos generales
- Requeriría hardware menos robusto, especialmente RAM
- Son igualmente robustos como Java, pero son más propensos a los fallos de toda la aplicación cuando sólo falla un módulo
Y así. Mi principal preocupación cuando hice esta pregunta era por qué Java y no Python. Puedo agregar otros elementos (idiomas) de comparación más adelante si alguien más está interesado también.
Info: No soy un desarrollador completo.
EDIT Yo era muy consciente de que mi pregunta iba a ser encontrada con algo de oposición y golpear, por eso dije que no soy un desarrollador completo. Tengo mis opiniones personales para apoyarme y sólo eso, pero aún así, todavía tengo grandes respuestas. Entiendo ahora, sí, Dalvik VM ejecuta bytecodes de Java en dispositivos ARM, pero lo diferente es que Java de cualquier otra especificación de Oracle / Sun Java, no lo sé. He estado jugando con Java y Python y escribí al menos un programa útil tanto en GUIs (Swing como en PySide) y al menos en una biblioteca de terceros usada. El orden en que lo hice fue Java, luego Python, que me hizo darme cuenta de cuánto más rápido era escribir todo desde cero en Python que en Java. Incluso los paquetes parecían mucho más fáciles de administrar que la forma de Java de importar paquetes (gracias a Dios por Eclipse y unos cuantos clics intuitivos) … y entonces, ¿qué tan complejas serían las aplicaciones incrustadas que necesitaría tener un cuidado especial para la comprobación de tipos y las pruebas unitarias (Y afaik, pruebas de unidad se supone que es un deber hoy en día para cualquier desarrollador serio) … pero de todos modos, gracias por las respuestas hasta ahora. Es un proceso de aprendizaje. 😉
- ¿Cómo puedo obtener el nombre del contacto con su número?
- ¿Cómo puedo usar Python para ejecutar comandos adb?
- Error al empaquetar Kivy con la biblioteca numpy para Android usando buildozer
- ¿Por qué este script de shell se llama a sí mismo como script python?
- Llame a Python google cloud endpoint api desde android
- Error de GLS: INVALID_AUDIENCE en los puntos finales de la nube de google
- Integración de API de OLA que da error como clave de socio no válida
- ¿Qué marco de Android se puede utilizar para conectar PC a Android y Android a otra PC?
Según Google:
Hemos pasado por un montón de [alternativas a Java], y creo que todos chupar. Llegamos a la conclusión de que tenemos que negociar una licencia para Java en los términos que necesitamos. Fuente
No es un motivo particularmente descriptivo, pero es tan bueno como usted obtendrá de Google, me imagino.
-
Google, como empresa, usa mucho Java. Las funciones de búsqueda están escritas en Java. Por lo que puedo decir desde el exterior, Google le gusta Java.
-
Para la mayoría de las tareas, Java es más rápido que Python. Prefiero trabajar en Python, y sé escribir Python razonablemente eficiente, y sí PyPy realmente está sacudiendo las cosas, pero Google necesitaba proporcionar una experiencia ágil en procesadores telefónicos relativamente poco potentes por lo que probablemente no consideraban a Python un contendiente.
-
Java, al igual que Python, proporciona una gran cantidad de aislamiento de los detalles del hardware subyacente. Creo que todos los teléfonos Android están basados en ARM, pero en teoría se puede hacer un teléfono Android basado en un chip x86 o algo completamente diferente, y mientras hagas un buen trabajo de portar la VM Dalvik, tu código se ejecutará. (Aparte de las aplicaciones que tienen código ARM nativo compilado en, por supuesto.)
A Google le gusta el lenguaje Java, pero eligieron escribir su propia VM ("Dalvik") en lugar de autorizar la máquina virtual Java. Java compilado puede ser traducido directamente a los bytecodes de Dalvik. (Oracle demandó a Google por esto.) Oracle perdió la demanda.