谈谈华为的方舟编译器!从历史讲起......

近期华为的方舟编译器这里有些

谈谈华为的方舟编译器!从历史讲起......

编译器发展史

人不是很明白,这里通过历史给大家讲讲这个事情的来龙去脉!

  • 这个事情其实首先要从linux和java的诞生至今的历史讲起,linux大家都知道,它是linux大神首先以一人之力写了一个很初级的系统,后来被全世界的大神不断迭代和完善发展至今的一个很优秀的系统,而这种出身就使得它一定是完全开源的,谁都能拿来直接用,甚至拿来修改开发自己的定制系统,没有所谓版权问题!谷歌就是看到这一点,用免费的linux内核作为开发手机系统的切入点,这样做可以省时省力,同时当时linux生态已经建立完整了,各种资源库的支持非常的完善。
  • 接下来说说java,上面说的各种资源库的支持非常的完善,其中就有java的支持,java是上世界90年代发展起来的,诞生之初它的一次编写,到处运行的这种机制非常的吸引人,于是迅速得到了大家的支持,很短的时间就崛起了,java也在不断的迭代和更新,并不断的扩大对各种平台的支持,结果就是,到了2007,2008年左右,全世界到处都是使用java的开发者,java成了软件开发界的主流,比当时的周杰伦在歌唱界的统治力度都要高。 这个时候正是ios系统的诞生之际,塞班系统当时如日中天,微软的windowCE系统也虎视眈眈,黑莓的系统也正准备大干一场,谷歌这个时候就在想,如何迅速形成应用生态,如何快速击垮对手,谷歌做了一个正确的觉得,那就是用现成的linux内核做系统底层支持,做到快速形成底层核心支持和资源库支持生态(资源库指的是c,c++,opengL,mysql等等),又由于全世界存在巨大体量的java开发者,因此使用java语言作为上面应用开发层语言,于是就这样,安卓系统诞生了,后面的事情你们都知道了! 这样一来,安卓系统迅速干倒了塞班系统,除ios以外的其他系统消失了,接下来就是安卓和ios了,但是谷歌这样的做法虽然赢了战争,但也给后来和ios的竞争中留下了致命的弱点和缺陷,那就是由于java是一种边解释边运行的语言,这导致它的效率很低,当然,也正是牺牲效率这一点它才能获得“一次编写,到处运行”的这种机制,也才能有后来的大规模的普及和开发者的使用,正所谓得到了一些东西意味着你一定失去了一些东西,这是哲学嘛!违背不了! 好了,现在可以回到正题上了,华为本次做的就是解决谷歌开发安卓的历史遗留下的遗憾和致命缺陷,它要从系统底层解决java的低效问题,把边解释边运行的语言彻底搞成和其他语言一样,去除虚拟机机制,直接运行编译后的机器码,效率提升至其他语言同等水平,而这一点非常的难,因为java内部机制复杂得难以想象,而且现存的app中java还经常调用c,c++等语言,这意味着也要对java和c,c++做统一的协调编译,否则是行不通的,这样一来,工作量有多大,难度有多深,你可以试着去想象! 这也正是为什么连谷歌三星都没有走出这一步,太难了! 华为,你不亏为中国脊梁,恐怕连谷歌都要敬你三分!

作者:月球男神
https://www.bilibili.com/read/cv4865946


分享到:


相關文章: