为什么Google会为Android操作系统选择Java?

Pau*_*ole 18 python java android

完整的问题

为什么谷歌选择Android操作系统的Java而不是X语言?

其中X将是以下之一:

  • Python版本2.7或版本3
    • 这与Java一样强大
    • 有很多有用的第三方库
    • 由于它的动态特性,它的发展速度更快
  • C/C++或ObjC
    • 哪个更难发展但是
    • 由于开销较少,运行速度更快
    • 将需要更少的强大硬件,尤其是RAM
    • 与Java一样健壮,但只有一个模块出现故障时更容易发生应用程序范围内的崩溃

等等.当我问这个问题时,我主要担心的是Java而不是Python.如果其他人也感兴趣,我可以稍后添加其他元素(语言)进行比较.

信息:我不是一个成熟的开发者.

编辑我非常清楚我的问题会遭到一些反对和抨击,这就是为什么我说我不是一个成熟的开发者.我有个人意见来支持我,但即便如此,我仍然得到了很好的答案.我现在明白了,是的,Dalvik VM在ARM设备上运行Java字节码,但是我不知道Java与其他任何Oracle/Sun Java规范有多么不同.我一直在玩Java和Python,并且在+ GUI(Swing和PySide)和至少一个第三方库中使用了至少一个有用的程序.我这样做的顺序是Java,然后是Python,这让我意识到在Python中从头开始编写所有内容的速度比在Java编写的速度要快得多.甚至包装似乎比Java导入包的方式更容易管理(感谢上帝的Eclipse和一些直观的点击)......然后嵌入式应用程序的复杂程度是你需要额外注意类型检查和单元测试(并且afaik,单位测试应该是任何严肃的开发人员现在必须的)...但无论如何,感谢到目前为止的答案.这是一个学习过程.;)

Gar*_*tty 15

根据谷歌:

我们已经过了很多[Java的替代品],并认为它们都很糟糕.我们得出结论,我们需要根据我们需要的条款协商Java许可. 资源

这不是一个特别具有描述性的原因,但我认为它与你从Google获得的一样好.


ste*_*eha 9

  • 谷歌作为一家公司,经常使用Java.搜索功能是用Java编写的.据我所知,谷歌喜欢 Java.

  • 对于大多数任务,Java比Python更快.我宁愿在Python中工作,而且我知道如何编写合理有效的Python,并且PyPy真的让人感到震惊,但谷歌需要在相对低功耗的手机处理器上提供快速的体验,所以他们可能不认为Python是竞争者.

  • 与Python一样,Java提供了与底层硬件细节的大量隔离.我认为所有Android手机都是基于ARM的,但从理论上讲,你可以制造一款基于x86芯片的Android手机,或者完全不同的东西,只要你做好移植Dalvik VM的工作,你的代码就会运行.(当然,除了编译本机ARM代码的应用程序.)

谷歌喜欢Java语言,但他们选择编写自己的VM("Dalvik"),而不是许可Java VM.编译的Java可以直接转换为Dalvik字节码.(甲骨文起诉了谷歌.甲骨文失去了诉讼.)

  • 根据 [Google 的 Andy Rubin](http://www.zdnet.com/article/trial-android-chief-on-why-java-was-picked-for-android/),选择 Java 是因为 _“主要是众所周知的品牌名称以及兼容性,因为它是世界各地大学教授的通用语言。”_ (3认同)