域名預(yù)訂/競(jìng)價(jià),好“米”不錯(cuò)過(guò)
華為的方舟編譯器一直以來(lái)都是行業(yè)矚目的對(duì)象,作為中國(guó)企業(yè)首度研發(fā)的編譯器產(chǎn)品,如果能夠順利啟用,那么未來(lái)中國(guó)科技行業(yè)很多地方都可以不再受制于人,是非常關(guān)鍵的一個(gè)技術(shù)產(chǎn)品。
這么重要的技術(shù),其研發(fā)從來(lái)不是一件簡(jiǎn)單的事情,也絕非用短短一兩年功夫就可以做到了。其實(shí)早在10年前,華為就組建了一支由海內(nèi)外尖端研發(fā)人員組成的編譯組,而4年后,華為推出面向基站領(lǐng)域的編譯器HCC,并正式提出編譯器框架構(gòu)想。到2019年才正式發(fā)布方舟編譯器,足見華為的謹(jǐn)慎和項(xiàng)目的困難。
而在8月31日,華為方舟編譯器正式宣布開源,框架開源代碼公之于眾,可以說(shuō)是引發(fā)了行業(yè)的關(guān)注和震動(dòng),也邁出了自己重構(gòu)核心生態(tài)的關(guān)鍵一步。
方舟編譯器開源,華為自主技術(shù)與開發(fā)者生態(tài)再進(jìn)一步
本次方舟編譯器開放的框架代碼包括編譯器中間表示(IR)和語(yǔ)言編譯實(shí)現(xiàn),同時(shí)搭配編譯器其他二進(jìn)制組件,實(shí)現(xiàn)Java程序到aarch64匯編指令的編譯過(guò)程。開發(fā)者可基于開源代碼+二進(jìn)制,編譯構(gòu)建出編譯器工具鏈,嘗試對(duì)Java程序進(jìn)行編譯。社區(qū)參與者可以通過(guò)框架源碼學(xué)習(xí)方舟編譯器的編譯器中間表達(dá)(IR)及基本的中端編譯框架,熟悉方舟編譯器的架構(gòu)思想,并參與諸如對(duì)編譯器中端優(yōu)化的貢獻(xiàn)。同時(shí)華為也上線了自己的開源社區(qū),并在努力引入更多的國(guó)內(nèi)技術(shù)大廠共同進(jìn)行建設(shè),這也是行業(yè)的一件大事,說(shuō)是一個(gè)時(shí)代的開啟也不為過(guò)。
(方舟編譯器整體框架 )
而方舟編譯器對(duì)開發(fā)者、對(duì)華為、對(duì)手機(jī)廠商的研發(fā)部分而言,也有著格外的價(jià)值和意義。因?yàn)?,從安卓系統(tǒng)問(wèn)世至今已經(jīng)有11年的時(shí)間,然而,安卓的詬病卻十一年如一日的未解。一方面,對(duì)用戶來(lái)說(shuō),始終感覺低了蘋果手機(jī)一頭,用一段時(shí)間之后往往就會(huì)出現(xiàn)卡頓等問(wèn)題。另一方面,對(duì)開發(fā)者來(lái)說(shuō),隨著安卓系統(tǒng)的不斷大幅升級(jí)迭代,碎片化系統(tǒng)和機(jī)型越來(lái)越多,開發(fā)的效率和成本代價(jià)也日趨增加,繁重的開發(fā)任務(wù)也讓開發(fā)者有苦難言。
而究其原因,主要在于Java的“虛擬機(jī)”機(jī)制。安卓系統(tǒng)初期為了吸引開發(fā)者,選擇了開發(fā)者使用較多的Java語(yǔ)言,并使用虛擬機(jī)來(lái)運(yùn)行應(yīng)用。在虛擬機(jī)里,還需要集成翻譯器或者編譯器,來(lái)將Java的字節(jié)碼(即中間代碼)解釋成機(jī)器聽得懂的機(jī)器語(yǔ)言,或者直接編譯成機(jī)器直接執(zhí)行的010101的機(jī)器碼。這個(gè)邊解釋邊執(zhí)行的過(guò)程,就是安卓不夠流暢的原因之一。雖然在2014年10月,谷歌推出了Android 5.0版本,將虛擬機(jī)從Dalvik替代成ART(Android Run Time),并對(duì)Dalvik的純JIT編譯方式做了改進(jìn)。但安卓手機(jī)的體驗(yàn)仍然不如蘋果手機(jī),在使用APP的過(guò)程中,用戶總是覺得安卓手機(jī)比蘋果手機(jī)要慢。
而具體到此次開源的華為方舟編譯器,其一大突破就是不再需要依賴Android的ART虛擬機(jī),有望解決安卓虛擬機(jī)存在的性能問(wèn)題可以說(shuō),華為方舟編譯器的開源,對(duì)華為手機(jī)、開發(fā)者和其他手機(jī)廠商來(lái)說(shuō),都是一次顛覆安卓傳統(tǒng)“惡習(xí)”的革命,也是華為自主技術(shù)和開發(fā)者生態(tài)的再進(jìn)一步。
華為方舟編譯器將為開發(fā)者打造“五星級(jí)”開發(fā)環(huán)境
華為方舟編譯器作為中國(guó)自主技術(shù)研發(fā)的編譯運(yùn)行系統(tǒng),從官方宣傳中可以看出其定位的是面向開發(fā)者的支持多語(yǔ)言、支持平臺(tái)的編程平臺(tái)。也就是說(shuō)未來(lái)應(yīng)用開發(fā)將使用方舟編譯器的相關(guān)部件,包括編譯器、調(diào)試器、調(diào)優(yōu)工具,并且通過(guò)支撐多語(yǔ)言、消除跨語(yǔ)言的調(diào)用開銷,幫助開發(fā)者在選擇編程語(yǔ)言時(shí)不用再糾結(jié)語(yǔ)言的性能問(wèn)題。對(duì)多平臺(tái)的支持,也將幫助開發(fā)在未來(lái)的多端設(shè)備開發(fā)上,始終使用同一套編程平臺(tái),不用在不同的開發(fā)平臺(tái)間來(lái)回切換。這也相當(dāng)于為開發(fā)者打造了一個(gè)“五星級(jí)”的舒適開發(fā)環(huán)境,不再為傳統(tǒng)的終端程序開發(fā)而“心塞不已”,可以更省心、高效的進(jìn)行各種程序應(yīng)用的開發(fā)、調(diào)試和升級(jí)迭代。華為方舟編譯器還直接將編譯器的代碼優(yōu)化搬到了開發(fā)者環(huán)境,不再被手機(jī)端的硬件資源所限制,這更是讓數(shù)以萬(wàn)計(jì)的開發(fā)者為代碼優(yōu)化提供了無(wú)限可能。
有知乎網(wǎng)友大膽猜測(cè),“華為的野心是,Java、Java、Python、C、C++都要翻譯到Maple IR,并且Maple IR是為了在芯片上運(yùn)行做優(yōu)化為目的的語(yǔ)言。”
另有專業(yè)網(wǎng)友發(fā)帖稱,“今天把官方給的(方舟編譯器)文檔和源代碼都解讀(翻譯了)一遍,目前讀下來(lái)的感覺是:把Java的類、接口、異常處理、都做了,工作量真的挺大的。國(guó)人自己搞一個(gè)這么硬核的項(xiàng)目,在以前是沒有的。能把Java翻譯到自己設(shè)計(jì)的語(yǔ)言上,再執(zhí)行對(duì),太難了,工作量超級(jí)大,可以說(shuō)國(guó)內(nèi)做這種級(jí)別的東西,可謂是第一次。”
也有人直言,“(方舟編譯器)這種級(jí)別的控制復(fù)雜度,和建立抽象的能力,以前貌似是只有老外這么干過(guò)”,“就算搞個(gè)跟國(guó)外進(jìn)化下來(lái)的最強(qiáng)開源的,一樣牛逼的,只要是自己一行一行寫起來(lái)的,那已經(jīng)很吊了”。
華為的一小步,行業(yè)的一大步,自主技術(shù)創(chuàng)新大生態(tài)時(shí)代已然到來(lái)
值得一提的是,開發(fā)者使用方舟編譯器,并不需要改變?cè)瓉?lái)的編碼習(xí)慣。開發(fā)者可以自行開發(fā)代碼優(yōu)化算法,也可以僅通過(guò)方舟編譯器預(yù)置的算法進(jìn)行代碼優(yōu)化。而未來(lái),華為還將提供代碼調(diào)優(yōu)工具,開發(fā)者可以選擇根據(jù)工具的優(yōu)化建議來(lái)調(diào)整代碼,和方舟編譯器配合獲得更優(yōu)的執(zhí)行效果。
不難預(yù)見的是,隨著未來(lái)數(shù)以萬(wàn)計(jì)的開發(fā)者使用方舟編譯器,手機(jī)用戶的體驗(yàn)也將在不久之后達(dá)到一個(gè)前所未有的高度。而這對(duì)于整個(gè)終端生態(tài),可以說(shuō)華為都是做了一件世界前所未有的大事件。
從技術(shù)突破上看,華為方舟編譯器團(tuán)隊(duì)是基于多個(gè)編程語(yǔ)言的深刻理解和大量研發(fā)積累,將混合語(yǔ)言開創(chuàng)性的實(shí)現(xiàn)了統(tǒng)一的中間表示IR,這就相當(dāng)于同一個(gè)人能夠理解全世界的語(yǔ)言。而這,可以說(shuō)更是華為自主技術(shù)創(chuàng)新的又一次革命性突破。
根據(jù)華為在開發(fā)者大會(huì)上公布的信息,作為鴻蒙OS的重要工具,方舟編譯器從今年開始,將持續(xù)進(jìn)行開源。譬如,明年計(jì)劃開放Java編譯器工具鏈,支持Java程序編譯;后年則計(jì)劃開放對(duì)Java語(yǔ)言的支持能力,用于JS應(yīng)用的編譯。
值得注意的是,不僅方舟編譯器,就連華為的鴻蒙OS也將陸續(xù)開源。而華為通過(guò)這種持續(xù)的開放、開源,正是在將自身十多年來(lái)的研發(fā)成果和技術(shù)能力不斷貢獻(xiàn)給行業(yè),同時(shí)在開源社區(qū)中,吸引更多的開發(fā)者參與并貢獻(xiàn)自己的力量,藉此共同推進(jìn)中國(guó)自主技術(shù)和開源盛世的發(fā)展。
整體來(lái)看,對(duì)于華為這樣的超級(jí)技術(shù)型企業(yè)而言,方舟編譯器的開源可能只是一小步,但是對(duì)整個(gè)行業(yè)而言,對(duì)世界舞臺(tái)而言,卻是十足的一大步,是對(duì)中國(guó)乃至全球開源領(lǐng)域的強(qiáng)勢(shì)引領(lǐng)??梢云诖氖?,以華為的實(shí)力和眼光、高度,華為勢(shì)必還將持續(xù)擁抱開源,更有望繼續(xù)在主流基金會(huì)及開源社區(qū)中積極貢獻(xiàn),進(jìn)而為全球億萬(wàn)開發(fā)者進(jìn)行更深入、更全面的賦能,最終引領(lǐng)一個(gè)自主技術(shù)創(chuàng)新大生態(tài)時(shí)代的全面到來(lái)。
申請(qǐng)創(chuàng)業(yè)報(bào)道,分享創(chuàng)業(yè)好點(diǎn)子。點(diǎn)擊此處,共同探討創(chuàng)業(yè)新機(jī)遇!