當(dāng)前位置:首頁 >  站長 >  編程技術(shù) >  正文

華為方舟編譯器正式開源,開發(fā)者終于找到組織了

 2019-09-03 20:26  來源: A5專欄   我來投稿 撤稿糾錯(cuò)

  域名預(yù)訂/競價(jià),好“米”不錯(cuò)過

華為的方舟編譯器一直以來都是行業(yè)矚目的對(duì)象,作為中國企業(yè)首度研發(fā)的編譯器產(chǎn)品,如果能夠順利啟用,那么未來中國科技行業(yè)很多地方都可以不再受制于人,是非常關(guān)鍵的一個(gè)技術(shù)產(chǎn)品。

這么重要的技術(shù),其研發(fā)從來不是一件簡單的事情,也絕非用短短一兩年功夫就可以做到了。其實(shí)早在10年前,華為就組建了一支由海內(nèi)外尖端研發(fā)人員組成的編譯組,而4年后,華為推出面向基站領(lǐng)域的編譯器HCC,并正式提出編譯器框架構(gòu)想。到2019年才正式發(fā)布方舟編譯器,足見華為的謹(jǐn)慎和項(xiàng)目的困難。

而在8月31日,華為方舟編譯器正式宣布開源,框架開源代碼公之于眾,可以說是引發(fā)了行業(yè)的關(guān)注和震動(dòng),也邁出了自己重構(gòu)核心生態(tài)的關(guān)鍵一步。

方舟編譯器開源,華為自主技術(shù)與開發(fā)者生態(tài)再進(jìn)一步

本次方舟編譯器開放的框架代碼包括編譯器中間表示(IR)和語言編譯實(shí)現(xiàn),同時(shí)搭配編譯器其他二進(jìn)制組件,實(shí)現(xiàn)Java程序到aarch64匯編指令的編譯過程。開發(fā)者可基于開源代碼+二進(jìn)制,編譯構(gòu)建出編譯器工具鏈,嘗試對(duì)Java程序進(jìn)行編譯。社區(qū)參與者可以通過框架源碼學(xué)習(xí)方舟編譯器的編譯器中間表達(dá)(IR)及基本的中端編譯框架,熟悉方舟編譯器的架構(gòu)思想,并參與諸如對(duì)編譯器中端優(yōu)化的貢獻(xiàn)。同時(shí)華為也上線了自己的開源社區(qū),并在努力引入更多的國內(nèi)技術(shù)大廠共同進(jìn)行建設(shè),這也是行業(yè)的一件大事,說是一個(gè)時(shí)代的開啟也不為過。

(方舟編譯器整體框架 )

而方舟編譯器對(duì)開發(fā)者、對(duì)華為、對(duì)手機(jī)廠商的研發(fā)部分而言,也有著格外的價(jià)值和意義。因?yàn)?,從安卓系統(tǒng)問世至今已經(jīng)有11年的時(shí)間,然而,安卓的詬病卻十一年如一日的未解。一方面,對(duì)用戶來說,始終感覺低了蘋果手機(jī)一頭,用一段時(shí)間之后往往就會(huì)出現(xiàn)卡頓等問題。另一方面,對(duì)開發(fā)者來說,隨著安卓系統(tǒng)的不斷大幅升級(jí)迭代,碎片化系統(tǒng)和機(jī)型越來越多,開發(fā)的效率和成本代價(jià)也日趨增加,繁重的開發(fā)任務(wù)也讓開發(fā)者有苦難言。

而究其原因,主要在于Java的“虛擬機(jī)”機(jī)制。安卓系統(tǒng)初期為了吸引開發(fā)者,選擇了開發(fā)者使用較多的Java語言,并使用虛擬機(jī)來運(yùn)行應(yīng)用。在虛擬機(jī)里,還需要集成翻譯器或者編譯器,來將Java的字節(jié)碼(即中間代碼)解釋成機(jī)器聽得懂的機(jī)器語言,或者直接編譯成機(jī)器直接執(zhí)行的010101的機(jī)器碼。這個(gè)邊解釋邊執(zhí)行的過程,就是安卓不夠流暢的原因之一。雖然在2014年10月,谷歌推出了Android 5.0版本,將虛擬機(jī)從Dalvik替代成ART(Android Run Time),并對(duì)Dalvik的純JIT編譯方式做了改進(jìn)。但安卓手機(jī)的體驗(yàn)仍然不如蘋果手機(jī),在使用APP的過程中,用戶總是覺得安卓手機(jī)比蘋果手機(jī)要慢。

而具體到此次開源的華為方舟編譯器,其一大突破就是不再需要依賴Android的ART虛擬機(jī),有望解決安卓虛擬機(jī)存在的性能問題可以說,華為方舟編譯器的開源,對(duì)華為手機(jī)、開發(fā)者和其他手機(jī)廠商來說,都是一次顛覆安卓傳統(tǒng)“惡習(xí)”的革命,也是華為自主技術(shù)和開發(fā)者生態(tài)的再進(jìn)一步。

華為方舟編譯器將為開發(fā)者打造“五星級(jí)”開發(fā)環(huán)境

華為方舟編譯器作為中國自主技術(shù)研發(fā)的編譯運(yùn)行系統(tǒng),從官方宣傳中可以看出其定位的是面向開發(fā)者的支持多語言、支持平臺(tái)的編程平臺(tái)。也就是說未來應(yīng)用開發(fā)將使用方舟編譯器的相關(guān)部件,包括編譯器、調(diào)試器、調(diào)優(yōu)工具,并且通過支撐多語言、消除跨語言的調(diào)用開銷,幫助開發(fā)者在選擇編程語言時(shí)不用再糾結(jié)語言的性能問題。對(duì)多平臺(tái)的支持,也將幫助開發(fā)在未來的多端設(shè)備開發(fā)上,始終使用同一套編程平臺(tái),不用在不同的開發(fā)平臺(tá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ù)以萬計(jì)的開發(fā)者為代碼優(yōu)化提供了無限可能。

有知乎網(wǎng)友大膽猜測,“華為的野心是,Java、Java、Python、C、C++都要翻譯到Maple IR,并且Maple IR是為了在芯片上運(yùn)行做優(yōu)化為目的的語言。”

另有專業(yè)網(wǎng)友發(fā)帖稱,“今天把官方給的(方舟編譯器)文檔和源代碼都解讀(翻譯了)一遍,目前讀下來的感覺是:把Java的類、接口、異常處理、都做了,工作量真的挺大的。國人自己搞一個(gè)這么硬核的項(xiàng)目,在以前是沒有的。能把Java翻譯到自己設(shè)計(jì)的語言上,再執(zhí)行對(duì),太難了,工作量超級(jí)大,可以說國內(nèi)做這種級(jí)別的東西,可謂是第一次。”

也有人直言,“(方舟編譯器)這種級(jí)別的控制復(fù)雜度,和建立抽象的能力,以前貌似是只有老外這么干過”,“就算搞個(gè)跟國外進(jìn)化下來的最強(qiáng)開源的,一樣牛逼的,只要是自己一行一行寫起來的,那已經(jīng)很吊了”。

華為的一小步,行業(yè)的一大步,自主技術(shù)創(chuàng)新大生態(tài)時(shí)代已然到來

值得一提的是,開發(fā)者使用方舟編譯器,并不需要改變?cè)瓉淼木幋a習(xí)慣。開發(fā)者可以自行開發(fā)代碼優(yōu)化算法,也可以僅通過方舟編譯器預(yù)置的算法進(jìn)行代碼優(yōu)化。而未來,華為還將提供代碼調(diào)優(yōu)工具,開發(fā)者可以選擇根據(jù)工具的優(yōu)化建議來調(diào)整代碼,和方舟編譯器配合獲得更優(yōu)的執(zhí)行效果。

不難預(yù)見的是,隨著未來數(shù)以萬計(jì)的開發(fā)者使用方舟編譯器,手機(jī)用戶的體驗(yàn)也將在不久之后達(dá)到一個(gè)前所未有的高度。而這對(duì)于整個(gè)終端生態(tài),可以說華為都是做了一件世界前所未有的大事件。

從技術(shù)突破上看,華為方舟編譯器團(tuán)隊(duì)是基于多個(gè)編程語言的深刻理解和大量研發(fā)積累,將混合語言開創(chuàng)性的實(shí)現(xiàn)了統(tǒng)一的中間表示IR,這就相當(dāng)于同一個(gè)人能夠理解全世界的語言。而這,可以說更是華為自主技術(shù)創(chuàng)新的又一次革命性突破。

根據(jù)華為在開發(fā)者大會(huì)上公布的信息,作為鴻蒙OS的重要工具,方舟編譯器從今年開始,將持續(xù)進(jìn)行開源。譬如,明年計(jì)劃開放Java編譯器工具鏈,支持Java程序編譯;后年則計(jì)劃開放對(duì)Java語言的支持能力,用于JS應(yīng)用的編譯。

值得注意的是,不僅方舟編譯器,就連華為的鴻蒙OS也將陸續(xù)開源。而華為通過這種持續(xù)的開放、開源,正是在將自身十多年來的研發(fā)成果和技術(shù)能力不斷貢獻(xiàn)給行業(yè),同時(shí)在開源社區(qū)中,吸引更多的開發(fā)者參與并貢獻(xiàn)自己的力量,藉此共同推進(jìn)中國自主技術(shù)和開源盛世的發(fā)展。

整體來看,對(duì)于華為這樣的超級(jí)技術(shù)型企業(yè)而言,方舟編譯器的開源可能只是一小步,但是對(duì)整個(gè)行業(yè)而言,對(duì)世界舞臺(tái)而言,卻是十足的一大步,是對(duì)中國乃至全球開源領(lǐng)域的強(qiáng)勢引領(lǐng)。可以期待的是,以華為的實(shí)力和眼光、高度,華為勢必還將持續(xù)擁抱開源,更有望繼續(xù)在主流基金會(huì)及開源社區(qū)中積極貢獻(xiàn),進(jìn)而為全球億萬開發(fā)者進(jìn)行更深入、更全面的賦能,最終引領(lǐng)一個(gè)自主技術(shù)創(chuàng)新大生態(tài)時(shí)代的全面到來。

申請(qǐng)創(chuàng)業(yè)報(bào)道,分享創(chuàng)業(yè)好點(diǎn)子。點(diǎn)擊此處,共同探討創(chuàng)業(yè)新機(jī)遇!

相關(guān)文章

熱門排行

信息推薦