完整问题
Google为什么选择Android操作系统的Java而不选择 X 语言?
其中X将是以下之一:
等等。当我问这个问题时,我主要担心的是Java而不是Python。如果其他人也感兴趣,我可以稍后添加其他比较元素(语言)。
信息:我不是一个成熟的开发者。
编辑我非常清楚我的问题会遭到一些反对和抨击,这就是为什么我说我不是一个成熟的开发者。我有个人意见来支持我,但即便如此,我仍然得到了很好的答案。我现在明白了,是的,Dalvik VM在ARM设备上运行Java字节码,但是我不知道Java与其他任何Oracle / Sun Java规范有多么不同。我一直在玩Java和Python,并且在+ GUI(Swing和PySide)和至少一个第三方库中使用了至少一个有用的程序。我这样做的顺序是Java,然后是Python,这让我意识到在Python中从头开始编写所有内容的速度比在Java编写的速度要快得多。甚至包装似乎比Java导入包的方式更容易管理(感谢上帝的Eclipse和一些直观的点击)......然后嵌入式应用程序的复杂程度,你需要额外注意类型检查和单元测试(并且afaik,单位测试应该是任何严肃的开发人员现在必须的)...但无论如何,感谢到目前为止的答案。这是一个学习过程。 ;)
答案 0 :(得分:15)
根据谷歌的说法:
我们已经过了很多[Java的替代品],并认为它们都是 吸。我们得出结论,我们需要在Java下协商Java许可 我们需要的条款。 Source
这不是一个特别具有描述性的原因,但它与你从Google获得的一样好,我想。
答案 1 :(得分:9)
Google作为一家公司,经常使用Java。搜索功能是用Java编写的。据我所知,Google 喜欢 Java。
对于大多数任务,Java比Python更快。我宁愿在Python中工作,而且我知道如何编写合理有效的Python,并且PyPy真的让人感到震惊,但谷歌需要在相对低功耗的手机处理器上提供快速的体验,所以他们可能不认为Python是竞争者。
Java与Python一样,提供了与底层硬件细节的大量隔离。我认为所有Android手机都是基于ARM的,但从理论上讲,你可以制造一款基于x86芯片的Android手机,或者完全不同的东西,只要你做好移植Dalvik VM的工作,你的代码就会运行。 (当然,除了编译了本机ARM代码的应用程序。)
Google喜欢Java语言,但他们选择编写自己的VM(“Dalvik”),而不是授权Java VM。编译的Java可以直接转换为Dalvik字节码。 (甲骨文起诉了谷歌。甲骨文失去了诉讼。)