为什么谷歌选择Java作为Android操作系统的开发语言?

20
为什么谷歌选择Java作为Android操作系统而不是其他语言?
我重新审视了这个问题,发现这个问题涉及到很多争论和个人意见。如果可能的话,我想重新阐述这个问题,以便我们不会涉及个人意见和偏好。
为什么特别选择Java?是因为技术优势吗?是因为许多开发人员都熟悉Java吗?还是因为Java实际上是当时最好的垃圾回收语言?还是因为最初的开发人员选择了Java,在项目被正式采纳后他们必须坚持使用它?
我知道今天比2008年Android首次发布时有更多现代化的语言可用。但我不知道Google在2008年有多少可行的替代Java选择。而且,我对Java生态系统不太了解,因为我不是Java开发人员。当时Java是最好的可用开源替代方案吗?因为Sun当时仍在开发它,所以选择Java是否是一个不错的选择?
这些是我想要了解的考虑因素,例如环境约束、技术约束等。我不是指哪种语言更好。我是指哪种语言可以更好地满足他们的需求,以及为什么最终他们选择了Java?

2
•由于其动态特性,开发速度更快。测试和类型错误修复不是开发的一部分,对吧? - Ingo
除非有谷歌的员工发现这个问题,否则你可能得不到答案。也许问题用更通用的方式表达会更好,比如说在移动平台上使用XYZ有哪些优势?* - Felix Kling
7
我在谷歌工作,但是我不会回答这个问题…… - Jon Skeet
1
没有事实支持的陈述是主观的。你所写的一切都只是你个人意见的陈述。顺便说一句,我不同意你的大部分观点。唯一客观的陈述是Google选择了JAVA作为Android的编程语言,但这是不正确的。他们开发了一种名为Dalvik的语言,它在语法和概念上与Java相近,但除此之外的任何相似之处只能根据具体情况进行评估。 - pap
@Jon:我怎么会忘记呢 :D (找到并被允许透露这个信息;)) 无论如何,这个问题本来就注定要关闭... - Felix Kling
2个回答

18

根据Google:

我们已经审查了一堆[取代Java的]方案,并且认为它们都很糟糕。我们得出结论,我们需要以我们所需的条件谈判Java许可证。 来源

这不是一个特别详细的解释,但我想这大概是Google能提供的最好的解释了。


12
  • 作为一家公司,Google 在很多方面都使用 Java 语言。搜索功能就是用 Java 编写的。从外部来看,Google 喜欢使用 Java。

  • 对于大多数任务而言,Java 比 Python 更快。我更喜欢使用 Python,并且我知道如何编写相当高效的 Python 代码。虽然 PyPy 真的让人眼前一亮,但 Google 需要在性能较弱的手机处理器上提供流畅的体验,因此他们很可能不认为 Python 是一个竞争者。

  • Java 和 Python 一样,可以很好地隔离底层硬件细节。我认为所有 Android 手机都是基于 ARM 架构的,但理论上,你可以基于 x86 或完全不同的芯片制造 Android 手机,只要你有好的 Dalvik VM 移植,你的代码就会运行。(当然,这排除了那些含有本地 ARM 代码的应用程序)

Google 喜欢 Java 语言,但他们选择编写自己的虚拟机("Dalvik"),而不是使用 Java 虚拟机许可证。编译后的 Java 代码可以直接转换成 Dalvik 字节码。(Oracle 曾起诉 Google,但 Oracle 最终败诉。)


我相信这是主要原因。他们也经常使用Python,只需看看他们的云GAE。Python在那里得到了广泛采用。 - Phyo Arkar Lwin
3
根据谷歌的安迪·鲁宾所说,选择Java主要是因为它是一个全球大学普遍教授的通用语言,具有知名品牌和兼容性。 - Piovezan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接