談?wù)勅A為的方舟編譯器!從歷史講起......!
????????

近期華為的方舟編譯器這里有些人不是很明白,這里通過歷史給大家講講這個事情的來龍去脈!
????????這個事情其實首先要從linux和java的誕生至今的歷史講起,linux大家都知道,它是linux大神首先以一人之力寫了一個很初級的系統(tǒng),后來被全世界的大神不斷迭代和完善發(fā)展至今的一個很優(yōu)秀的系統(tǒng),而這種出身就使得它一定是完全開源的,誰都能拿來直接用,甚至拿來修改開發(fā)自己的定制系統(tǒng),沒有所謂版權(quán)問題!谷歌就是看到這一點,用免費的linux內(nèi)核作為開發(fā)手機系統(tǒng)的切入點,這樣做可以省時省力,同時當時linux生態(tài)已經(jīng)建立完整了,各種資源庫的支持非常的完善。
????????接下來說說java,上面說的各種資源庫的支持非常的完善,其中就有java的支持,java是上世界90年代發(fā)展起來的,誕生之初它的一次編寫,到處運行的這種機制非常的吸引人,于是迅速得到了大家的支持,很短的時間就崛起了,java也在不斷的迭代和更新,并不斷的擴大對各種平臺的支持,結(jié)果就是,到了2007,2008年左右,全世界到處都是使用java的開發(fā)者,java成了軟件開發(fā)界的主流,比當時的周杰倫在歌唱界的統(tǒng)治力度都要高。
????????這個時候正是ios系統(tǒng)的誕生之際,塞班系統(tǒng)當時如日中天,微軟的windowCE系統(tǒng)也虎視眈眈,黑莓的系統(tǒng)也正準備大干一場,谷歌這個時候就在想,如何迅速形成應(yīng)用生態(tài),如何快速擊垮對手,谷歌做了一個正確的覺得,那就是用現(xiàn)成的linux內(nèi)核做系統(tǒng)底層支持,做到快速形成底層核心支持和資源庫支持生態(tài)(資源庫指的是c,c++,opengL,mysql等等),又由于全世界存在巨大體量的java開發(fā)者,因此使用java語言作為上面應(yīng)用開發(fā)層語言,于是就這樣,安卓系統(tǒng)誕生了,后面的事情你們都知道了!
????????這樣一來,安卓系統(tǒng)迅速干倒了塞班系統(tǒng),除ios以外的其他系統(tǒng)消失了,接下來就是安卓和ios了,但是谷歌這樣的做法雖然贏了戰(zhàn)爭,但也給后來和ios的競爭中留下了致命的弱點和缺陷,那就是由于java是一種邊解釋邊運行的語言,這導(dǎo)致它的效率很低,當然,也正是犧牲效率這一點它才能獲得“一次編寫,到處運行”的這種機制,也才能有后來的大規(guī)模的普及和開發(fā)者的使用,正所謂得到了一些東西意味著你一定失去了一些東西,這是哲學(xué)嘛!違背不了!
????????好了,現(xiàn)在可以回到正題上了,華為本次做的就是解決谷歌開發(fā)安卓的歷史遺留下的遺憾和致命缺陷,它要從系統(tǒng)底層解決java的低效問題,把邊解釋邊運行的語言徹底搞成和其他語言一樣,去除虛擬機機制,直接運行編譯后的機器碼,效率提升至其他語言同等水平,而這一點非常的難,因為java內(nèi)部機制復(fù)雜得難以想象,而且現(xiàn)存的app中java還經(jīng)常調(diào)用c,c++等語言,這意味著也要對java和c,c++做統(tǒng)一的協(xié)調(diào)編譯,否則是行不通的,這樣一來,工作量有多大,難度有多深,你可以試著去想象!
????????這也正是為什么連谷歌三星都沒有走出這一步,太難了!
????????華為,你不虧為中國脊梁,恐怕連谷歌都要敬你三分!