Java|为什么Android开发使用Java而不是C语言?

Java|为什么Android开发使用Java而不是C语言?

文章图片

Java|为什么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 , 不过思路其实都差不多 , 只是很多细节优化了 。


【Java|为什么Android开发使用Java而不是C语言?】
总结:Android未来还会进化 , 我觉得最终像底层的C和C++将来也要被慢慢地替换 , 可能是rust也可能是别的新语言 , 最终的形式应该是大一统 , 就一个语言从上到下解决所有问题 。 目前Linux好像有一部分功能想用rust重写 。 我估计随着时间的发展 , 旧的语言必然会被更先进省时省力的语言替代 , 这是趋势 。