路與遠方:從方舟開源,說到中國軟體行業的生態未來

naojiti發表於2019-09-07

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

這來自於它本身的架構級最佳化,也來自於其在特殊時間背景下,與鴻蒙OS的關係。此外還有一點,就是自誕生之日起,方舟編譯器就宣佈將會開源。

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

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

據悉,本次方舟編譯器的開源版本,開放了編譯器框架部分原始碼,包括編譯器中間表達(IR)+語言編譯實現,開發者可以透過官方網站及程式碼託管網站獲得相關程式碼和文件,供參考學習、瞭解方舟編譯器的架構和程式碼。

而向更廣闊的未來看,這次開源不僅是一種技術的外放。基於方舟編譯器,華為引領行業共同構建生態與社群,這是中國底層軟體開源之路的探索。

“方舟”和“開源”,或許有理由把這兩件事融合到一起來看。因為軟體開源與社群建設,長時間以來都被認為是中國軟體行業必須補完的關鍵環節。而方舟編譯器的戰略價值,恰好成為了一個契機與視窗。

開源是路,而方舟是匙。二者結合時,我們或許已經可以窺見中國移動產業與軟體行業的生態未來。

五十年,軟體開源史與產業洪流

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

這個問題要回到五十年的漫長曆史中去回答。事實上,整個資訊革命程式,始終伴隨著軟體開源事業的不斷髮展和深化。一部開源史,也是一部資訊科技與網際網路的產業革命史。

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

1984年,理查德·斯托曼發起了 GNU 專案,目標是建立一個完全自由且向下相容 UNIX 的作業系統。次年,他圍繞GNU建立了自由軟體基金會,至此首個推廣自由軟體的民間非營利性組織誕生,為軟體行業正式啟動開源工作奠定了基礎。

1991年,影響至今的Linux 核心誕生。事實上,大名鼎鼎的Linux在當時採用了GNU的系統軟體集,可以說是對GNU專案的發展和繼承。Linux核心很快也被開源了出來,其開發生態直接影響了網際網路產業的程式。

我們耳熟能詳的安卓,就是採用Linux 核心編寫的移動端作業系統。而安卓的開源與生態化建設,直接造就了繁盛的移動網際網路和智慧手機時代。相比於iOS的封閉,安卓的開源雖然有很多問題,但它的高開放度、低門檻,也帶來了行業普惠價值,以及極強的成長空間。

而開源之路並沒有就此終止,2008年大名鼎鼎的 GitHub 釋出。這一平臺的價值在於,它是一個開源的分散式軟體版本控制系統,各種開源專案都可以在平臺上進行公開公平的軟體開源,從而與全世界開發者共同打造更優軟體體驗。如今GitHub已經成為了被廣泛認可的開源民主化平臺,其社群生態影響著全球各領域的軟體開放程式。

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

所以,開源史帶給世界的結論,是平臺化技術的開源是長期紅利的基礎,是產業繁榮的先導。不斷適應時代需求的開源技術與開源社群生態,是疊層築造的軟體高塔。在這座高塔之上,軟體用全球開發者的智慧讓自己變得更好,再反哺世界科技的發展。

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

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

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

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

今日,方舟的船舵

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

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

對於廣大APP廠商、軟體開發者、網際網路企業來說,對方舟編譯器的理解和應用可以帶來核心價值,即對自身應用體驗的直接提升。而向長遠角度看,方舟編譯器背後的技術思路與生態價值,更是對行業具有長線推動作用。

這次開源的方舟編譯器框架程式碼,可以完成Java靜態編譯,包括類層次關係分析、虛方法表和介面表的生成、native函式的處理等,以及基於引用計數的記憶體管理方式,提供樸素的RC插入功能。

這一階段的框架開源,主要滿足編譯器領域專家及愛好者研究學習的需要,同時華為將繼續最佳化其他編譯器元件,以便讓原始碼更適應開源社群的開發環境。同時,開發者可透過程式碼託管平臺參與社群貢獻,包括文件貢獻和程式碼貢獻,同時也可在此平臺上反饋相關問題和需求。

從近到遠,我們可以看到方舟編譯器開源,到相關社群與貢獻制度建立,對於整個軟體行業來說具備三重價值:

1、開發者可以透過加強對方舟編譯器的理解,加強自身產業競爭力。

方舟編譯器具備多語言聯合最佳化能力、高效的記憶體回收機制、靈活的編譯最佳化方式和極低的學習使用成本等特點。如今方舟編譯器已經在產業合作中,廣泛滲透到各APP開發領域,成為使用者體驗提升的新技術撬點。而方舟開源本身,對於這些APP開發者以及移動應用開發行業來說,是透過提升理解,加強自身產業與方舟編譯器耦合的機會。在同質化競爭激烈的移動網際網路產業,這也是差異化競爭力的又一來源。

2、理解跨語言編譯機制,提升自身業務能力和麵向未來的移動端程式設計能力。

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

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

3、參與方舟生態建立,在成長的開源環境中獲得長期紅利。

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

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

路與遠方

移動時代之後,科技產業的下一個時代從何而來?我想現在這個問題應該已經具備了初步共識:5G提升聯接能力;AI改變互動;IoT裝置作為硬體形態,共同編織成了下一個時代。

而對於軟體和移動產業來說,今天最關鍵的問題就是:我應該如何邁進這條路?

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

如何讓這條未來之路真正開啟呢?吸取五十年的資訊科技史,我們會發現開源和技術民主,是確定行業底層技術共識的最佳途徑。

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

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

我們知道,方舟編譯器是鴻蒙OS的重要工具,而鴻蒙OS則是面向IoT全場景生態的底層作業系統,也是AI和5G融入新硬體時代的關鍵介面。

如果我們把方舟的開源到鴻蒙的開源,看作一個長期執行、長期生態化的系統工程,就會發現華為事實上在基於剛剛發生的方舟開源,開啟面向未來,中國開源社群的第一步。

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

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

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

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

而如今,很多事情已經改變。從方舟到開源,從開源到生態——鴻蒙已開,春來草自青。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31561483/viewspace-2656359/,如需轉載,請註明出處,否則將追究法律責任。

相關文章