路與遠方:從方舟開源,說到中國軟件行業(yè)的生態(tài)未來

原標題:路與遠方:從方舟開源,說到中國軟件行業(yè)的生態(tài)未來

方舟編譯器,最近幾個月始終地處科技界熱詞的頂端。

這來自于它本身的架構級優(yōu)化,也來自于其在特殊時間背景下,與鴻蒙OS的關系。此外還有一點,就是自誕生之日起,方舟編譯器就宣布將會開源。

對于中國軟件開發(fā)者來說,開源是一個既熟悉又陌生的詞匯。熟悉的是差不多人人都用GitHub,陌生的是似乎還沒有移動端的中國底層軟件技術走向過開源之路。

在不久前的華為開發(fā)者大會上,華為給出了鴻蒙OS及方舟編譯器的開源時間表。而不到一個月,8月31日,華為方舟編譯器開源官網(wǎng)正式上線,框架開源代碼如約與廣大關注方舟編譯器的愛好者、開發(fā)者見面。

據(jù)悉,本次方舟編譯器的開源版本,開放了編譯器框架部分源碼,包括編譯器中間表達(IR)+語言編譯實現(xiàn),開發(fā)者可以通過官方網(wǎng)站及代碼托管網(wǎng)站獲得相關代碼和文檔,供參考學習、了解方舟編譯器的架構和代碼。

而向更廣闊的未來看,這次開源不僅是一種技術的外放。基于方舟編譯器,華為引領行業(yè)共同構建生態(tài)與社區(qū),這是中國底層軟件開源之路的探索。

“方舟”和“開源”,或許有理由把這兩件事融合到一起來看。因為軟件開源與社區(qū)建設,長時間以來都被認為是中國軟件行業(yè)必須補完的關鍵環(huán)節(jié)。而方舟編譯器的戰(zhàn)略價值,恰好成為了一個契機與窗口。

開源是路,而方舟是匙。二者結合時,我們或許已經(jīng)可以窺見中國移動產(chǎn)業(yè)與軟件行業(yè)的生態(tài)未來。

五十年,軟件開源史與產(chǎn)業(yè)洪流

想要明白方舟開源對行業(yè)的價值,必須先解釋這樣一個問題:軟件開源為什么重要。

這個問題要回到五十年的漫長歷史中去回答。事實上,整個信息革命進程,始終伴隨著軟件開源事業(yè)的不斷發(fā)展和深化。一部開源史,也是一部信息技術與互聯(lián)網(wǎng)的產(chǎn)業(yè)革命史。

1969年,AT&T 貝爾實驗室開發(fā)出了 UNIX。此后的10年,業(yè)界可以以低廉的成本獲取 UNIX 源代碼,并在此基礎上進行革新改進。事實上,UNIX和貝爾實驗室在當時已經(jīng)打造了原始版本的開源意識和社區(qū)化思想。雖然之后AT&T出于商業(yè)考慮,停止了免費的UNIX版本更新,但軟件開發(fā)者的自由與分享意識已經(jīng)覺醒。此后的計算機時代,始終伴隨著軟件工作者對開源事業(yè)的熱愛與執(zhí)念。

1984年,理查德·斯托曼發(fā)起了 GNU 項目,目標是創(chuàng)建一個完全自由且向下兼容 UNIX 的操作系統(tǒng)。次年,他圍繞GNU建立了自由軟件基金會,至此首個推廣自由軟件的民間非營利性組織誕生,為軟件行業(yè)正式啟動開源工作奠定了基礎。

1991年,影響至今的Linux 內(nèi)核誕生。事實上,大名鼎鼎的Linux在當時采用了GNU的系統(tǒng)軟件集,可以說是對GNU項目的發(fā)展和繼承。Linux內(nèi)核很快也被開源了出來,其開發(fā)生態(tài)直接影響了互聯(lián)網(wǎng)產(chǎn)業(yè)的進程。

我們耳熟能詳?shù)陌沧?,就是采用Linux 內(nèi)核編寫的移動端操作系統(tǒng)。而安卓的開源與生態(tài)化建設,直接造就了繁盛的移動互聯(lián)網(wǎng)和智能手機時代。相比于iOS的封閉,安卓的開源雖然有很多問題,但它的高開放度、低門檻,也帶來了行業(yè)普惠價值,以及極強的成長空間。

而開源之路并沒有就此終止,2008年大名鼎鼎的 GitHub 發(fā)布。這一平臺的價值在于,它是一個開源的分布式軟件版本控制系統(tǒng),各種開源項目都可以在平臺上進行公開公平的軟件開源,從而與全世界開發(fā)者共同打造更優(yōu)軟件體驗。如今GitHub已經(jīng)成為了被廣泛認可的開源民主化平臺,其社區(qū)生態(tài)影響著全球各領域的軟件開放進程。

回顧五十年的開源史,我們會發(fā)現(xiàn)開源平臺與技術,是在時代需要與前輩技術基礎上逐步發(fā)展起來的。而更優(yōu)質、更徹底、更自由的底層軟件開源,并不會降低一家公司的競爭力。相反這可以推動行業(yè)共識和生態(tài)繁榮,用所有開發(fā)者的智慧共同做大技術紅利。

所以,開源史帶給世界的結論,是平臺化技術的開源是長期紅利的基礎,是產(chǎn)業(yè)繁榮的先導。不斷適應時代需求的開源技術與開源社區(qū)生態(tài),是疊層筑造的軟件高塔。在這座高塔之上,軟件用全球開發(fā)者的智慧讓自己變得更好,再反哺世界科技的發(fā)展。

生態(tài)開源的底層模式、技術民主化,以及貢獻越大話語權越大的社區(qū)機制,用五十年時間奠定了軟件產(chǎn)業(yè)持續(xù)進化的基礎能力與全球產(chǎn)業(yè)共識。遺憾的是,這場宏偉變革中中國軟件人更多處在應用者與學習者,而非變革推動者的角色。

當然,這一境況若干年來正在發(fā)生變化。比如華為等中國公司正在持續(xù)擁抱開源事業(yè)。目前華為在有重大國際影響力的開源社區(qū)中擁有十多個董事席位,及200多個TSC、PTL、Core Committer席位。作為Linux基金會白金成員,華為對Linux kernel累計貢獻6800+補丁,是TOP 5中唯一的亞洲廠商。

在開源事業(yè)中不斷積累的華為,今天準備在移動生態(tài)這片軟件沃土上,開啟由中國科技公司主導的開源平臺建設。

歷史的時針,或許就此撥動。

今日,方舟的船舵

從歷史中回看,底層軟件開源之路帶來的行業(yè)紅利,主要由這樣的模式產(chǎn)生:軟件本身具有極大應用價值,開源后各廠商與開發(fā)者可以獲得直接效用;而廣大開發(fā)者反過來重新思考、雕琢和優(yōu)化這一軟件,匯聚而成開源社區(qū)。這個社區(qū)既是底層技術的不斷優(yōu)化,也是產(chǎn)業(yè)共識的自然建立。

而方舟編譯器的開源,顯然滿足這一邏輯的基礎。

對于廣大APP廠商、軟件開發(fā)者、互聯(lián)網(wǎng)企業(yè)來說,對方舟編譯器的理解和應用可以帶來核心價值,即對自身應用體驗的直接提升。而向長遠角度看,方舟編譯器背后的技術思路與生態(tài)價值,更是對行業(yè)具有長線推動作用。

這次開源的方舟編譯器框架代碼,可以完成Java靜態(tài)編譯,包括類層次關系分析、虛方法表和接口表的生成、native函數(shù)的處理等,以及基于引用計數(shù)的內(nèi)存管理方式,提供樸素的RC插入功能。

這一階段的框架開源,主要滿足編譯器領域專家及愛好者研究學習的需要,同時華為將繼續(xù)優(yōu)化其他編譯器組件,以便讓源代碼更適應開源社區(qū)的開發(fā)環(huán)境。同時,開發(fā)者可通過代碼托管平臺參與社區(qū)貢獻,包括文檔貢獻和代碼貢獻,同時也可在此平臺上反饋相關問題和需求。

從近到遠,我們可以看到方舟編譯器開源,到相關社區(qū)與貢獻制度建立,對于整個軟件行業(yè)來說具備三重價值:

1、開發(fā)者可以通過加強對方舟編譯器的理解,加強自身產(chǎn)業(yè)競爭力。

方舟編譯器具備多語言聯(lián)合優(yōu)化能力、高效的內(nèi)存回收機制、靈活的編譯優(yōu)化方式和極低的學習使用成本等特點。如今方舟編譯器已經(jīng)在產(chǎn)業(yè)合作中,廣泛滲透到各APP開發(fā)領域,成為用戶體驗提升的新技術撬點。而方舟開源本身,對于這些APP開發(fā)者以及移動應用開發(fā)行業(yè)來說,是通過提升理解,加強自身產(chǎn)業(yè)與方舟編譯器耦合的機會。在同質化競爭激烈的移動互聯(lián)網(wǎng)產(chǎn)業(yè),這也是差異化競爭力的又一來源。

2、理解跨語言編譯機制,提升自身業(yè)務能力和面向未來的移動端編程能力。

方舟編譯器本身是一種新的編譯機制,尤其具備跨語言編程的能力。這在極大程度上是對現(xiàn)行編程基礎的一次優(yōu)化與提升。業(yè)內(nèi)人士都知道,跨語言編譯雖然已經(jīng)成為行業(yè)主流,但卻存在大量痛點。比如JNI和反射機制開銷巨大;Java代碼和C/C++代碼互相不可見;跨語言的全程序優(yōu)化無法實施等等。

此次開源的方舟編譯器框架代碼,包括編譯器中間表示(IR)和語言編譯實現(xiàn)。開發(fā)者可基于開源代碼+二進制,編譯構建出編譯器工具鏈,嘗試對Java程序進行編譯。如此,開發(fā)者可以通過熟悉方舟編譯器的架構思想,提升自身在跨語言編程領域的業(yè)務能力和理解水準——通過對方舟的“拆招解式”,實現(xiàn)行業(yè)基礎軟件水準的共同進步。

3、參與方舟生態(tài)建立,在成長的開源環(huán)境中獲得長期紅利。

編譯器是個龐大的軟件工程,需要建立生態(tài)逐步完善。而對于軟件開發(fā)者、高校研究者和終端廠商來說,此時方舟開源推動建立的開源社區(qū),可以說是中國移動軟件開源社區(qū)的基礎,是尋求未來產(chǎn)業(yè)共識的良好平臺。此時加入,不僅可以短期加強業(yè)務競爭力,更有助于通過長期貢獻,積累未來社區(qū)中的話語權。方舟編譯器的陸續(xù)開源進程中,將通過建立托管平臺,實行按貢獻大小決定話語權、走向開放治理機制,最終形成社區(qū)生態(tài)。這是中國終端軟件的一次全新嘗試,無論是補完產(chǎn)業(yè)鏈,還是走向未來,都將源源不斷激發(fā)技術與社區(qū)紅利。這些紅利將長期釋放給行業(yè)和開發(fā)者生態(tài),尤其對于早期參與者和積極貢獻者來說。

就像很多偉大的底層技術一樣,方舟編譯器也會開源開放給所有聰明的大腦。而開發(fā)者在此刻擁抱方舟時,一定會注意這樣一件事:這艘方舟,正航向哪里?

路與遠方

移動時代之后,科技產(chǎn)業(yè)的下一個時代從何而來?我想現(xiàn)在這個問題應該已經(jīng)具備了初步共識:5G提升聯(lián)接能力;AI改變交互;IoT設備作為硬件形態(tài),共同編織成了下一個時代。

而對于軟件和移動產(chǎn)業(yè)來說,今天最關鍵的問題就是:我應該如何邁進這條路?

要知道,AI、5G、IoT的想象力相輔相成,但其中涉及太多的技術難點,并且在草創(chuàng)階段嚴重缺乏技術共識。比如AIoT的芯片、網(wǎng)絡、應用、算法,以及未來演進方向,這些在今天都充滿了不確定性,甚至自相矛盾的產(chǎn)業(yè)現(xiàn)狀。

如何讓這條未來之路真正打開呢?吸取五十年的信息技術史,我們會發(fā)現(xiàn)開源和技術民主,是確定行業(yè)底層技術共識的最佳途徑。

5G交融AI的智能時代,是中國和中國開發(fā)者首次完整抓住的科技產(chǎn)業(yè)革命,但這是機會同時也是考驗。當我們需要開源生態(tài)和社區(qū)化的長期紅利,首先要建設生態(tài)與社區(qū)。未來技術大門需要一把鑰匙去開啟,開源社區(qū)與技術生態(tài)需要第一捧泥土去堆積。

從哪開始呢?又何不從方舟開始呢?

我們知道,方舟編譯器是鴻蒙OS的重要工具,而鴻蒙OS則是面向IoT全場景生態(tài)的底層操作系統(tǒng),也是AI和5G融入新硬件時代的關鍵接口。

如果我們把方舟的開源到鴻蒙的開源,看作一個長期執(zhí)行、長期生態(tài)化的系統(tǒng)工程,就會發(fā)現(xiàn)華為事實上在基于剛剛發(fā)生的方舟開源,打開面向未來,中國開源社區(qū)的第一步。

方舟開源和完善,是一個不間斷的過程,是系統(tǒng)化的工程,也是行業(yè)紅利釋放的長期軌跡。接下來,2020年方舟編譯器將開放Java編譯器工具鏈,支持Java程序編譯;2021年方舟編譯器將開放對Java語言的支持能力,可用于JS應用的編譯。

同期,鴻蒙OS的開源工作也將陸續(xù)展開,華為將把軟件方面的技術能力在社區(qū)中不斷貢獻給行業(yè),與行業(yè)一起探尋更好的、更符合時代需求的軟件技術。

沿著這條路徑,我們已經(jīng)可以在今天想象很多事,比如基于AIoT邏輯的殺手級應用和明星公司成長起來;比如IoT產(chǎn)業(yè)迎來大量共識,快速提高產(chǎn)業(yè)效率;比如軟件開發(fā)行業(yè)普遍效率得到提升,將有更多創(chuàng)造性思維與人才聚集到軟件中來。

未來還長,但鑰匙已在手中。過去,當我們追問中國軟件產(chǎn)業(yè),為什么總是追隨者而不是創(chuàng)造者的時候,其實很多時候答案很簡單,因為沒有人踏出第一步,沒有人選擇最苦最累的工作完成,沒有開源開放的共識與思維。

而如今,很多事情已經(jīng)改變。從方舟到開源,從開源到生態(tài)——鴻蒙已開,春來草自青。

極客網(wǎng)企業(yè)會員

免責聲明:本網(wǎng)站內(nèi)容主要來自原創(chuàng)、合作伙伴供稿和第三方自媒體作者投稿,凡在本網(wǎng)站出現(xiàn)的信息,均僅供參考。本網(wǎng)站將盡力確保所提供信息的準確性及可靠性,但不保證有關資料的準確性及可靠性,讀者在使用前請進一步核實,并對任何自主決定的行為負責。本網(wǎng)站對有關資料所引致的錯誤、不確或遺漏,概不負任何法律責任。任何單位或個人認為本網(wǎng)站中的網(wǎng)頁或鏈接內(nèi)容可能涉嫌侵犯其知識產(chǎn)權或存在不實內(nèi)容時,應及時向本網(wǎng)站提出書面權利通知或不實情況說明,并提供身份證明、權屬證明及詳細侵權或不實情況證明。本網(wǎng)站在收到上述法律文件后,將會依法盡快聯(lián)系相關文章源頭核實,溝通刪除相關內(nèi)容或斷開相關鏈接。

2019-09-07
路與遠方:從方舟開源,說到中國軟件行業(yè)的生態(tài)未來
基于方舟編譯器,華為引領行業(yè)共同構建生態(tài)與社區(qū),這是中國底層軟件開源之路的探索。

長按掃碼 閱讀全文