为什么Android使用Java概念而不是D语言或C或C ++? 但是Chromium网页浏览器是用C ++编写的,它非常复杂的匹配

Android是32位ARM。 维基

描述:

1)那么,32/64或8/12/16位编译器是可用的D语言,如果不是可以由编译器build立,如果我没有错?

2)Linux标准内核:用C语言和其他语言编写的库可以编译为具有D语言的ARM,我相信不仅D语言也可以用C / C ++。

据Android维基信息开始我的困惑:

  • wiki:Linux内核的修改版本(它不是linux,但是它的修改过的linux,因为硬件兼容性?所以我不能使用RPM打包?因为它不是标准的linux了?)

  • wiki:虽然大多数Android应用程序都是用Java编写的,但平台上没有Java虚拟机 ,Java字节码也不能执行。 Java类被编译成Dalvik可执行文件并在Dalvik虚拟机上运行。 Dalvik是专门为Androiddevise的专用虚拟机,针对内存和CPU有限的电池供电移动设备进行了优化。 J2ME支持可以通过第三方应用程序提供。

问题:为什么Android不是用D或C / C ++语言编写的? 而不是处理所有这些混乱,这是唯一的公司certificate他们需要的Bigtable(世界不能解决那里问题)和移动平台也需要改变,如Android? 那么iPhone /诺基亚实施有什么问题?

问题:为什么Android不运行JVM,但是他们构build了一个Java概念来执行替代JVM处理,而不是像MeeGo或其他类似的方法。 这是一个营销条款还是一个技术术语? 不能用C / C ++或D语言编写只有整个Android? 而不是涉及Java概念或混乱概念?

如果是的话,那么Chromium-web浏览器为什么再次使用C ++? 为什么不只跟随爪哇也为Chromiumnetworking?

它的一切都要了解它如何在实际生活中得到应用,对我来说,它只是为了知道为什么他们为Android做了这样的混乱? 那么我们是否在大学学习了编程语言的错误方式(后来知道Big Google刚刚使用Java for Android)?

在此先感谢您的宝贵意见。

Solutions Collecting From Web of "为什么Android使用Java概念而不是D语言或C或C ++? 但是Chromium网页浏览器是用C ++编写的,它非常复杂的匹配"

为什么Android不是用D或C / C ++语言编写的?

因为它们都不是完全托pipe的语言。 D 垃圾收集,但你也可以做手动内存pipe理…带来的所有风险。

另外,因为从Java基础(以Apache Harmony等forms)开始意味着:

  • Java开发人员将能够转换到Android和
  • Android开发团队实施起来会less一些。

然而,正如@Marchy所指出的那样,谷歌并不是最初的决定:

… Google并没有Build Android,他们买的是一家创业公司,作为一个创业公司,你可以使用任何东西,通过优化来获得快速的动力和极其有限的资源……

尽pipe显然谷歌确实有一个手,因为(据维基百科 )谷歌在收购之前帮助Android公司融资。

为什么Android不运行JVM,但是他们构build了一个Java概念来执行替代的JVM处理。

最终,由于Sun / Oracle对Java语言和平台的限制,使得G​​oogle无法像Android那样进行创新。 具体而言,Sun / Oracle不会授权供应商在移动平台上实施Java SE。

那么我们是否在大学里错误地学习了编程语言呢?

也许做了!

但是当我在大学学习编程时,完全知道我从来不会使用一些我被教授的语言。 例如,我从来没有使用Algol-60,Simula-67,SNOBOL或CDC汇编语言。 但是,这并没有使他们受教的原因无效,或者我在学习中获得的宝贵教训。

我想这是因为很多程序员都熟悉Java和Java,因为它作为一种语言的所有缺陷,都有出色的库和工具支持。 另外,虚拟机间接层防止应用程序与硬件耦合过紧。

有很多Java程序员,整个生态系统的基础上。 远远超过D:p在虚拟机上运行大部分程序的操作系统对安全性(http://en.wikipedia.org/wiki/Language-based_system)具有很好的优势。 但是,从用户的angular度来看,对于一个非常重要的应用程序来说,做一些例外可以提高性能。 一个特定的JVM的select,似乎很清楚,是有一些东西适应典型的embedded式资源。 我认为Google在这方面的select非常实用。

对于大学语言教学(咆哮?),我不认为是学习最新的时尚语言。 这是学习如何学习计算机相关的技术,如编程语言。 从1960年代到1970年代,这些概念并没有太大的改变,尽pipe这些概念的实施是不同的。