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

时间:2011-09-21 09:02:45

标签: java android python

完整问题

  

Google为什么选择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,单位测试应该是任何严肃的开发人员现在必须的)...但无论如何,感谢到目前为止的答案。这是一个学习过程。 ;)

2 个答案:

答案 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字节码。 (甲骨文起诉了谷歌。甲骨文失去了诉讼。)