为什么Android开发使用Java而不是C语言?
Android想要大发展 , 必须选一条足够宽的赛道 , 首先要考虑的就是开发者受众 , 按当时来看 , 编程语言排位 , 前两名就是Java和C语言 , 虽然C语言的受众也很多 , 但是满足不了简单易上手 。 C语言虽然语法不难 , 但是想提高很难 , 就指针这块想用好就要几年时间 。 而Java就不一样 , 首先有JVM直接把指针的问题平滑了 , 这样开发者就不用担心指针会用不好 , 因为JVM层面已经给做好了 , 那么就只有Java这一条路了 。

文章图片
当时2005年Google接手Android的时候 , 上层大部分实现应该就是用的Java , 如果Google换其他语言 , 成本很大 , 其实2005-2008年这段时间 , Google大量的工作就是修bug和加新功能 , 我猜测Google也评估过使用其他语言 , 但是在当时应该没有能替代Java的语言 , 不然Google也不傻 , 早就换了 , 你们说是不?再一个就是成本问题 , 都替换掉 , 从时间和金钱投入上 , 也是不小的开支 , 索性就一直用吧 。

文章图片
但谁知道后面甲骨文杀了出来 , 说Google侵权 , 这下Google意识到 , 想要完整地掌控Android , 必须所有的部分都要归Google所有 , 然后Google就自己开发语言 , 但最后都没成功 , 现在依然还在JVM这条路上走 , 只是形式不太一样了 , Google自己研发了ART虚拟机 , 替代原来的Dalvik , 不过思路其实都差不多 , 只是很多细节优化了 。

文章图片
【为什么Android开发使用Java而不是C语言?】总结:Android未来还会进化 , 我觉得最终像底层的C和C++将来也要被慢慢地替换 , 可能是rust也可能是别的新语言 , 最终的形式应该是大一统 , 就一个语言从上到下解决所有问题 。 目前Linux好像有一部分功能想用rust重写 。 我估计随着时间的发展 , 旧的语言必然会被更先进省时省力的语言替代 , 这是趋势 。
- One|基于Android 13打造:三星Galaxy S22抢先用上One UI 5.0
- meta|促进更逼真AR/VR体验,Meta正在开发全新空间音频工具
- 为什么科学家表示人类“灭绝”的可能性极低?这些理由你赞同吗?
- 为什么科学家知道太阳的原理,却无法制造出人造太阳
- 为什么科学家用昆虫翅膀的起源质疑进化论?达尔文到底是对是错?
- 为什么夜空是黑的?你以为的“正常”,或许隐藏着不知道的秘密
- 为什么温度高到一定程度的物体,就会发光?
- 为什么现在很少有人提及“克隆技术”了?“克隆技术”有何缺点?
- 为什么同学群里,很少有人说话,大部分人都选择沉默或者屏蔽?
- 科学家解释黑洞是不可视的,为什么我们会发现它
