首頁>資訊 >
環(huán)球報道:奮戰(zhàn)開源操作系統(tǒng)二十年:為什么編程語言是突破口? 2022-11-08 15:41:48  來源:36氪

編程語言之于操作系統(tǒng),意味著什么?本文作者飛漫軟件創(chuàng)始人魏永明經(jīng)過二十余年的操作系統(tǒng)開發(fā)探索,明確提出編程語言是自主基礎(chǔ)軟件,尤其是操作系統(tǒng)的重要抓手。如果說操作系統(tǒng)是基礎(chǔ)軟件生態(tài)里的皇冠,那編程語言就是王冠上的明珠。如果沒有自己的編程語言,那所謂的自主,就是海市蜃樓、空中樓閣。由此,他走上了開源編程語言的探索與實踐之路。

01 從低迷的 Linux 桌面系統(tǒng)說起

全世界范圍內(nèi)的開源運動浩浩蕩蕩,滾滾向前。Linux 內(nèi)核作為開源軟件中的杰出代表,在云計算、服務(wù)器端、 智能手機端、嵌入式系統(tǒng)中的成功舉世公認。截止 2021 年底,Linux 在服務(wù)器領(lǐng)域占據(jù)了 96%的市場份額,在超級計算機領(lǐng)域幾乎占領(lǐng)了全部市場,在云計算基礎(chǔ)設(shè)施領(lǐng)域占據(jù)了 90%的市場份額,在智能手機領(lǐng)域也占有 85%的市場份額?,F(xiàn)今,在人們?nèi)粘5墓ぷ骱蜕钪?,Linux 內(nèi)核幾乎無處不在。但與此相反的,則是 Linux 桌面系統(tǒng)地位不斷下滑。據(jù)統(tǒng)計,長期以來,Linux 桌面系統(tǒng)的市場份額徘徊在 2%左右,而原來被微軟 Windows 壓得喘不過氣來的 macOS 系統(tǒng),卻在近幾年取得了不小的進步,獲得了超過 10%的市場份額。

自 2000 年以來,全球有眾多公司如 Red Hat、SUSE 以及中國的若干企業(yè)一直在嘗試打造基于 Linux 內(nèi)核、GNU 工具以及 X Window、GNOME 或 KDE 的桌面系統(tǒng)。但二十年來,我們并沒有得到一個可以媲美 Windows 或 macOS 的桌面系統(tǒng),這其中的教訓(xùn)值得深思。究其原因,大家都會指點一二。比如 Linux 桌面系統(tǒng)的模仿痕跡太重,技術(shù)上始終跟隨 Windows,也沒有自己的產(chǎn)品特色;缺乏 Office 這樣的關(guān)鍵應(yīng)用軟件;各種發(fā)行版滿天飛,造成嚴重的碎片化問題,還導(dǎo)致應(yīng)用之間的互兼容性問題等。


(相關(guān)資料圖)

為什么二十年來,全世界有那么多企業(yè)和社區(qū)前赴后繼、努力打造的 Linux 桌面系統(tǒng),卻始終無法走向大眾市場,而僅僅局限于少數(shù)狂熱的愛好者當(dāng)中?

再以本人的親身經(jīng)歷為例。筆者搞了二十多年嵌入式窗口和圖形系統(tǒng)——MiniGUI,最初模仿 Win32 提供 C 語言的應(yīng)用編程接口。在本世紀最初的十多年間,MiniGUI 在機頂盒、功能手機、數(shù)碼相框等產(chǎn)品中得到了大量的應(yīng)用。但自從 Google 開源發(fā)布了 Android 操作系統(tǒng)之后,包括 MiniGUI 在內(nèi)的很多嵌入式基礎(chǔ)軟件,都遇到了前所未有的危機,這其中也包括針對嵌入式系統(tǒng)的輸入法、字體、瀏覽器等多款軟件產(chǎn)品。為了應(yīng)對這一危機,我們也曾做出過一些嘗試,比如提供類似 Visual Studio 一樣的界面設(shè)計器、類 iPhone 的 UI 特效、對 Java J2SE 應(yīng)用框架的支持等。然而,這些嘗試和 Android 這種具有全新操作系統(tǒng)架構(gòu)和應(yīng)用框架的現(xiàn)代操作系統(tǒng)相比,實在不堪一擊。

這引得我不得不思考:嵌入式領(lǐng)域是本世紀初興起的產(chǎn)業(yè),當(dāng)時,我們在這個領(lǐng)域的基礎(chǔ)軟件水平和美國差不了多少,而且坐擁全球最大的消費類電子產(chǎn)品市場,但為什么在其后十多年的發(fā)展競爭中,我們?nèi)匀宦鋽∮诿绹?/p>

02編程語言是操作系統(tǒng)獲得突破的重要抓手

盡管我們可以將自身發(fā)展不力的原因歸咎于政府保護知識產(chǎn)權(quán)政策不完善等因素,但我們也不得不承認,在引領(lǐng)技術(shù)潮流方面,我們差的不是一星半點:我們的基礎(chǔ)軟件行業(yè),和 Linux 桌面系統(tǒng)一樣,一直將自己定位為追隨者,始終沒有走出模仿的怪圈。要走出這個怪圈,我們首先要想清楚操作系統(tǒng)這類基礎(chǔ)軟件的第一用戶是誰,即我們首要服務(wù)于哪類用戶。

我的觀點是,類似操作系統(tǒng)這樣的基礎(chǔ)軟件,其首要用戶是開發(fā)者。一個基礎(chǔ)軟件,不論是操作系統(tǒng)還是數(shù)據(jù)庫,只有首先滿足了開發(fā)者的需求,服務(wù)甚至取悅開發(fā)者,才能建立起獲得進一步成功的基礎(chǔ)。重視開發(fā)者,優(yōu)先為開發(fā)者服務(wù),是基礎(chǔ)軟件的生存之道。其道理不言而喻:一款基礎(chǔ)軟件要獲得大規(guī)模的應(yīng)用,就離不開開發(fā)者,而基礎(chǔ)軟件的作者本身,縱有七十二變,也不可能把全世界的應(yīng)用需求都給滿足了。

只有將開發(fā)者定義為基礎(chǔ)軟件,尤其是操作系統(tǒng)的第一用戶,我們的思路才可能有一個重要的轉(zhuǎn)變。

如果我們簡單回顧一下成功操作系統(tǒng)的發(fā)展,就可以得出這些操作系統(tǒng)一開始就不遺余力地為服務(wù)開發(fā)者而努力。比如微軟,從 Windows 3.0 開始,就為降低 Windows 上的應(yīng)用開發(fā)門檻在努力,這其中就包括 Visual C++、Visual Basic 以及后來的 Visual Studio、C#編程語言和.Net 應(yīng)用框架。蘋果和谷歌圍繞各自操作系統(tǒng)所走的道路也類似。發(fā)展到今天,我們可以看到幾乎所有成功的操作系統(tǒng)都有自己專屬的一種編程語言以及圍繞其打造的獨特的應(yīng)用框架。

作為反面案例,Linux 桌面系統(tǒng)上從未出現(xiàn)過任何專屬的編程語言、應(yīng)用框架以及開發(fā)工具。在當(dāng)前市場趨勢下,面對跨平臺和融合終端應(yīng)用的開發(fā)需求,Linux 桌面系統(tǒng)更是乏善可陳。GNOME、KDE 兩大陣營,一個基于 C 語言,一個基于 C++ 語言,圍繞這兩個編程語言的應(yīng)用框架,沿用的仍然是二十年前 Unix 工作站所使用的技術(shù)和框架。諷刺的是,Linux 桌面系統(tǒng)上使用最廣的開發(fā)工具,是微軟開發(fā)的 Visual Studio Code。

此前,我曾幾度闡述過編程語言對一個操作系統(tǒng)的重要性。簡而言之,編程語言之所以重要,是因為編程語言是確定一個系統(tǒng)長相的重要基因。就比如 C 語言,它適合開發(fā)貼近硬件的程序,而 C++,適合用于開發(fā)中間件。國外還有很多專注特定領(lǐng)域的編程語言,比如 Go 語言適合開發(fā)服務(wù)器軟件,因為它天生為并發(fā)編程設(shè)計。編程語言可以確定一個系統(tǒng)的長相,也決定了這個系統(tǒng)的軟件棧,及其配套的開發(fā)工具,還可以成為解決一些頑疾的靈丹妙藥。因此,編程語言是自主基礎(chǔ)軟件,尤其是操作系統(tǒng)的重要抓手。如果沒有我們自己的編程語言,那所謂的自主操作系統(tǒng),就是海市蜃樓、空中樓閣。

因此,如果我們要發(fā)展自主的操作系統(tǒng),就必須走出模仿的怪圈,而若想成為技術(shù)上的引領(lǐng)者,就要嘗試為自己的操作系統(tǒng)設(shè)計一款全新的編程語言。沒有自主的編程語言以及圍繞其上的自主應(yīng)用框架,對操作系統(tǒng)而言,就如同缺失了靈魂一樣,便無法勝任技術(shù)引領(lǐng)者的角色。

目前,在中國信創(chuàng)領(lǐng)域,中國政府正在推廣基于 Linux 的桌面系統(tǒng)以及嵌入式系統(tǒng),在政府意志的推動之下,相關(guān)的技術(shù)積累和市場推廣正在穩(wěn)步推進,曾經(jīng)困擾業(yè)界多年的關(guān)鍵應(yīng)用,如辦公套件、輸入法等,通過中國本土的商業(yè)軟件產(chǎn)品得到了有效解決。根據(jù)統(tǒng)計,單單中國政府的桌面系統(tǒng),存量市場就超過了億套,每年的新增安裝量近五百萬套,如果再加上一些關(guān)鍵行業(yè)和要害部門(如能源、交通等),足以支撐全球 10% 的桌面系統(tǒng)市場份額。這將給基于 Linux 的桌面系統(tǒng)和嵌入式系統(tǒng)帶來前所未有的巨大市場機遇。然而,如果我們僅僅止步于跑馬圈地,而無視發(fā)展自主編程語言的重要性,到頭來也將竹籃打水一場空。

03下一代操作系統(tǒng)需要什么樣的編程語言?

隨著云計算和物聯(lián)網(wǎng)技術(shù)的普及,現(xiàn)在的應(yīng)用跟二十年前大不一樣了,最大的特點是需要聯(lián)網(wǎng)、跨平臺,而且可能要運行在不同類型的設(shè)備上,我們暫且稱之為 “融合終端”應(yīng)用。在滿足融合終端類應(yīng)用需求這一方面,主流的操作系統(tǒng)廠商在做全新的嘗試,比如蘋果為 macOS、iOS、padOS、watchOS 開發(fā) Swift 編程語言,谷歌的 Flutter 使用 Dart 編程語言,微軟也正在為 Universal App 做技術(shù)上的準備等等。

操作系統(tǒng)巨頭技術(shù)生態(tài)布局(圖源:《新程序員》)

顯然,要在這場競爭中獲勝,需要我們設(shè)計新的、云計算和物聯(lián)網(wǎng)友好的編程語言和開發(fā)工具。一方面,可用來滿足融合終端類應(yīng)用的需求,另一方面還可用于提高應(yīng)用的開發(fā)效率,同時,還可以成為操作系統(tǒng)生態(tài)的護城河。

那么什么樣的編程語言是符合未來趨勢的?對此,目前階段很難準確描述。但我們可以嘗試從宏觀上描述適應(yīng)上述全新需求的編程語言可能的主要技術(shù)特征:

描述式語言,易讀且容易理解,甚至可支持開發(fā)者使用母語編程,從而讓非職業(yè)程序員也能編寫出滿足需求的程序。 具有更高抽象層次的編程語言,開發(fā)者可以使用更少的代碼實現(xiàn)更多的工作,且無需過多關(guān)心技術(shù)細節(jié)。 提供抽象的跨平臺可移植接口。通過全新的接口設(shè)計來屏蔽底層操作系統(tǒng)或者平臺的差異,這是跨平臺的必然選擇。 支持現(xiàn)代編程技術(shù),如動態(tài)特性,對協(xié)程、并發(fā)、閉包等的支持。 良好的可擴展性和伸縮性,既可以用來開發(fā)腳本程序,也可以支持大型分布式應(yīng)用的開發(fā)。 功能和性能的良好平衡,使之可用于嵌入式系統(tǒng),甚至物聯(lián)網(wǎng)設(shè)備端。

一旦我們?yōu)槲磥淼娜诤辖K端應(yīng)用設(shè)計了自己的編程語言,尤其是讓編程模式都發(fā)生巨大變化的語言,那就可以自頂向下去設(shè)計一個新的操作系統(tǒng)。這個操作系統(tǒng)甚至可以涵蓋云端、客戶端、嵌入式系統(tǒng)和物聯(lián)網(wǎng)。而內(nèi)核、工具鏈、窗口系統(tǒng)、界面構(gòu)件庫、包管理系統(tǒng),所有這些底層的技術(shù)將成為“汽車引擎蓋”下面的東西,一般的應(yīng)用開發(fā)者無需關(guān)心這些技術(shù)。如此,便有了服務(wù)開發(fā)者的基礎(chǔ)。在此之上,我們利用或者圍繞新的編程語言開發(fā) IDE(集成開發(fā)環(huán)境)、自動化測試和部署框架、關(guān)鍵應(yīng)用軟件、應(yīng)用商店、特定應(yīng)用領(lǐng)域內(nèi)的第三方運行時函數(shù)庫等等,而這一切,合起來便是操作系統(tǒng)的生態(tài)。

04自主開源編程語言設(shè)計與開發(fā)之路

為了踐行上述所講的理論,我提出并開發(fā)了全新的編程語言 HVML(Hybrid Virtual Markup Language,中文名為呼嚕貓)。這是一款通用、易學(xué)的開源編程語言,從 2020 年 7 月提出并公開第一份規(guī)范草案,到 2021 年 7 月成立攻堅團隊著手 HVML 解釋器(PurC)的開發(fā),2022 年 7 月 31 日,在 GitHub 上開放了 HVML 相關(guān)的六大源代碼倉庫(或源代碼包),這標志著 HVML 1.0 正式發(fā)布,這其間已經(jīng)走過了兩年的時光。

而在過去整整一年的開發(fā)過程中,筆者帶領(lǐng)團隊實現(xiàn)了所有的設(shè)想以及絕大多數(shù)的功能。作為設(shè)計者,筆者將 HVML 定義為一種全新的編程語言:可編程標記語言(Programmable Markup Language)。并為 HVML 賦予了全新的設(shè)計理念,使之基本滿足前文所說的全新編程語言的技術(shù)特征:

使用標記來定義程序的結(jié)構(gòu)和控制流,大大提高了程序的可讀性,同時大幅降低了學(xué)習(xí)難度。 使用具有動態(tài)功能的擴展 JSON 來定義數(shù)據(jù),隱藏了底層系統(tǒng),而且使其成為粘合不同系統(tǒng)組件的理想膠水。 引入了數(shù)據(jù)驅(qū)動的編程模型,這讓開發(fā)人員更多地關(guān)注數(shù)據(jù)的生成和處理,而不是程序的控制流。 HVML 是動態(tài)的,開發(fā)人員不僅可以從遠程數(shù)據(jù)源獲取數(shù)據(jù)、模板和程序片段,還能刪除已有的變量。 使用獨有的方式來支持協(xié)程、線程、閉包等現(xiàn)代編程語言必備的特性。 具有極強的靈活性,開發(fā)人員可使用 HVML 編寫簡單的腳本工具,也可以使用它來開發(fā)復(fù)雜的 GUI 應(yīng)用程序,甚至是開發(fā)服務(wù)器軟件。 運行飛快,HVML 解釋器使用簡單高效的棧式虛擬機,不使用任何垃圾收集器。 通過預(yù)定義變量重新定義了系統(tǒng)底層的模塊和接口,從而屏蔽了不同操作系統(tǒng)或軟件平臺之間的差異。 相比常見的腳本語言,HVML 具有更高的抽象級別;使用 HVML,開發(fā)者可以用更少的代碼完成更多的工作。

初衷和設(shè)計思想

之所以決定設(shè)計和開發(fā) HVML,除了以上的思考之外,還跟我的經(jīng)歷有關(guān)。

在我所開發(fā)的 MiniGUI(開源 Linux 圖形用戶界面支持系統(tǒng))生意受到 Android 沖擊之后,我?guī)ьI(lǐng)團隊轉(zhuǎn)戰(zhàn)移動互聯(lián)網(wǎng)以及智能硬件,開發(fā)過很多網(wǎng)站和智能手機應(yīng)用。幾年前,隨著美國打壓中國高科技產(chǎn)業(yè)愈演愈烈,國家又開始重視基礎(chǔ)軟件的自主可控,MiniGUI 的生意又回來了,我們也幫著一些客戶開發(fā)了基于 MiniGUI 的解決方案。但由奢入儉難,習(xí)慣了網(wǎng)頁前端開發(fā)技術(shù)的便利性,作為開發(fā)者,我們自己都難以接受使用 C/C++這樣的編程語言來編寫帶有圖形用戶界面的應(yīng)用程序——我發(fā)現(xiàn)使用 C/C++這類編程語言開發(fā)帶 GUI 的應(yīng)用,跟用牛刀殺雞并無二致;就算有可視化的界面設(shè)計器幫助開發(fā)者,其開發(fā)效率也很難和 Web 前端技術(shù)相比。

有了這樣的認知,我開始思考為正在開發(fā)中的 HybridOS(合璧操作系統(tǒng))設(shè)計一款專門的編程語言。最初,我們的目標是讓熟悉 C/C++或其他編程語言的開發(fā)人員可以通過 HVML 使用 Web 前端技術(shù)(如 HTML/SVG/ MathML 和 CSS)輕松開發(fā) GUI 應(yīng)用程序,而不是在 Web 瀏覽器或 Node.js 中使用 JavaScript 編程語言做繞轉(zhuǎn)。最后,我們不光實現(xiàn)了這一目標,而且還將 HVML 實現(xiàn)為一種通用的編程語言。

為了將 Web 前端技術(shù)引入到通用的 GUI 應(yīng)用的開發(fā)中, 開源社區(qū)也做了大量的探索性工作,比如 Electron 開源項目,就嘗試用 Chromium+Node.js 來搞定一切。但這個項目存在一些問題,究其原因,跟 Web 前端技術(shù)本身的局限性有關(guān):所有的一切都離不開瀏覽器,尤其是 JavaScript 編程語言。

后來,我們在開源的瀏覽器引擎 WebKit 中,嘗試引入了一些具有動態(tài)能力的標簽,可以用來實現(xiàn)循環(huán)迭代、分支控制等功能。有了這個基礎(chǔ),我提出了一個大膽設(shè)想:何不干脆設(shè)計一種全新的標記語言?于是,就有了 HVML。

簡單來講,HVML 嘗試用一種新的思路來解決前面的那個問題:

第一,將 Web 前端技術(shù)(主要是 DOM、CSS 等)引入到其他編程語言中,而不是用 JavaScript 替代其他編程語言。

第二,采用類似 HTML 的描述式語言來操控 Web 頁面中的元素、屬性和樣式,而非 JavaScript。

在設(shè)計 HVML 的過程中,我有意使用了數(shù)據(jù)驅(qū)動的概念,使得 HVML 可以非常方便地和其他編程語言以及各種網(wǎng)絡(luò)連接協(xié)議,如數(shù)據(jù)總線、消息協(xié)議等結(jié)合在一起。這樣,開發(fā)者熟悉哪種編程語言,就使用這種編程語言來開發(fā)應(yīng)用的非 GUI 部分,而所有操控 GUI 的功能,交給 HVML 來完成,它們之間,通過模塊間流轉(zhuǎn)的數(shù)據(jù)來驅(qū)動,而 HVML 提供了對數(shù)據(jù)流轉(zhuǎn)過程的抽象處理能力。

這樣,圍繞 HVML 形成的應(yīng)用框架,和傳統(tǒng)的 GUI 應(yīng)用框架以及 Web 前端技術(shù)都有顯著的不同。傳統(tǒng)的 GUI 應(yīng)用,代碼設(shè)計模式無外乎直接調(diào)用 C/C++或其他編程語言提供的接口,在一個事件循環(huán)中完成創(chuàng)建界面元素、響應(yīng)用戶交互的工作。Web 前端技術(shù)和傳統(tǒng) GUI 應(yīng)用的最大區(qū)別在于描述式的 HTML 和 CSS 語言,但程序的框架在本質(zhì)上是一樣的——事件循環(huán),而且必須使用 JavaScript 語言。

但 HVML 提供了一個完全不一樣的應(yīng)用框架。在完整的基于 HVML 的應(yīng)用框架中,包含一個獨立運行的圖形用戶界面渲染引擎,開發(fā)者通過編寫 HVML 程序來操控渲染引擎,而 HVML 程序在 HVML 解釋器中運行,并可以和其他已有的編程語言的運行時環(huán)境結(jié)合在一起,接收由其他編程語言程序生成的數(shù)據(jù),并按照 HVML 程序的指令,將其轉(zhuǎn)換為圖形用戶界面的描述信息或者變更信息。通過這樣的設(shè)計,我們將所有涉及到圖形用戶界面的應(yīng)用程序分開成兩個松散的模塊:

第一,一個和 GUI 無關(guān)的數(shù)據(jù)處理模塊,開發(fā)者可以使用任何其熟悉的編程語言和開發(fā)工具開發(fā)這個模塊。比如,涉及到人工智能處理時,開發(fā)者選擇 C++;在 C++代碼中,除了裝載 HVML 程序之外,開發(fā)者無需考慮任何和界面渲染及交互相關(guān)的東西,比如創(chuàng)建一個按鈕或者點擊一個菜單后完成某項操作等的這類工作,開發(fā)者只需要在 C++ 代碼中準備好渲染界面所需要的數(shù)據(jù)即可。

第二,一個或者多個使用 HVML 語言編寫的程序(HVML 程序),用來完成對用戶界面的操控。HVML 程序根據(jù)數(shù)據(jù)處理模塊提供的數(shù)據(jù)生成用戶界面的描 述信息,并根據(jù)用戶的交互或者從數(shù)據(jù)處理模塊中獲得的計算結(jié)果來更新用戶界面,或者根據(jù)用戶的交互驅(qū)動數(shù)據(jù)處理模塊完成某些工作。

通過這樣的設(shè)計,HVML 應(yīng)用框架將操控界面元素的代碼從原先調(diào)用 C、C++ 等接口的設(shè)計模式中解放了出來,轉(zhuǎn)而使用 HVML 代碼來處理。而 HVML 使用類似 HTML 的描述式語言來操控 GUI 元素,通過隱藏大量細節(jié),降低了直接使用低級編程語言操控界面元素帶來的程序復(fù)雜度。

在 HVML 應(yīng)用框架中,有一個獨立運行的圖形用戶界面渲染器。我們將這個渲染器設(shè)計為類似字符控制臺的啞設(shè)備,這樣,可以將 HVML 程序和應(yīng)用的其他模塊從控制界面元素展現(xiàn)行為的細節(jié)中解放出來。舉個例子,我們在字符終端程序的開發(fā)中,可以使用一些轉(zhuǎn)義控制指令來設(shè)置字符的顏色、是否閃爍等,而字符終端程序無需包含任何處理字符顏色以及閃爍的代碼——因為這些細節(jié)字符控制臺(可能是硬件,也可能是一個偽終端程序)幫我們默默處理了。HVML 的界面渲染器也遵循同樣的設(shè)計思路,HVML 程序創(chuàng)建好一個按鈕,至于這個按鈕顯示出來是什么樣子的,用戶如何跟它交互,這些統(tǒng)統(tǒng)無需 HVML 程序來操心——一切由渲染器在給定的描述式語言(如 HTML、CSS)的控制下運轉(zhuǎn)。這帶來另一個好處,由于在界面渲染器中不包含任何的應(yīng)用運行邏輯代碼和敏感的數(shù)據(jù),從某種程度上講,提高了安全性。

有了這樣的應(yīng)用框架設(shè)計,HVML 可以讓幾乎所有的編程語言,不論是 C/C++這類傳統(tǒng)編程語言,還是 Python 這類腳本語言,都可以使用統(tǒng)一的模式來開發(fā) GUI 應(yīng)用。而在此之前,不同的編程語言有不同的 Toolkit 庫,這些 Toolkit 庫的能力不同,接口不同,渲染效果參差不齊。而 HVML 可以將這些交互類應(yīng)用的統(tǒng)一起來,甚至也包括那些傳統(tǒng)的字符界面應(yīng)用程序。我們還可以將 HVML 程序運行在另外一臺遠程設(shè)備上(或云端),而渲染器運行在和用戶交互的設(shè)備上,從而形成一個新的遠程應(yīng)用(或云應(yīng)用)解決方案。

盡管 HVML 最初是為了解決 GUI 應(yīng)用的開發(fā)而設(shè)計,但隨著開發(fā)的深入,我們引入了一個全新的棧式虛擬機作為 HVML 程序的假象運行機器。有了棧式虛擬機這一堅實的理論基礎(chǔ),我們?yōu)?HVML 賦予了通用計算的能力。也就說,HVML 不僅僅可以作為交互式應(yīng)用的膠水語言,還可以當(dāng)做通用的腳本語言使用。同時,由于我們?yōu)?HVML 提供了協(xié)程、并發(fā)執(zhí)行等的現(xiàn)代編程機制,因此,HVML 還可以用于高并發(fā)的服務(wù)器軟件的開發(fā)。

05任重道遠,開源協(xié)作是正道

完成了最初的設(shè)計與開發(fā)后,HVML 已經(jīng)進入到了開源協(xié)作的新階段,開發(fā)團隊和社區(qū)還有很多工作要做。首要目的,便是實現(xiàn) HVML 規(guī)范 1.0 定義的所有特性和接口。這項工作將在 2022 年內(nèi)完成。另外,作為 HVML 技術(shù)棧的一部分,針對嵌入式系統(tǒng)的渲染器也已提上日程,將在年底隨合璧操作系統(tǒng)的新版本一并發(fā)布。

當(dāng)然,一個編程語言走向成熟并獲得廣泛應(yīng)用將是一個漫長的過程。這需要構(gòu)建一個強有力的開源協(xié)作社區(qū),而成功的社區(qū)運營,又需要資金、人才等各方面的支持。這在國內(nèi)尚無成功先例,更是一個需要長期實踐的課題。

目前 HVML 社區(qū)非?;钴S,很多小伙伴幫助我們開發(fā)了各個 Linux 發(fā)行版的打包腳本,還有小伙伴制作了教學(xué)視頻。作為社區(qū)領(lǐng)導(dǎo)者,我目前最希望的便是能夠獲得足夠數(shù)量的贊助資金,用這些資金來激勵 HVML 社區(qū)的小伙伴們,使得社區(qū)可以盡快進入到良性循環(huán)當(dāng)中。另外,也希望有更多的基礎(chǔ)軟件企業(yè)加入到 HVML 的開發(fā)當(dāng)中,助力 HVML 盡快走向成熟。

關(guān)于未來,如果 HVML 技術(shù)得到大量開發(fā)者的認同,我相信找到合適的商業(yè)模式,也只是時間的問題。另外,圍繞 HVML 創(chuàng)立一個適當(dāng)規(guī)模的基礎(chǔ)軟件企業(yè),也不一定非要由我去做。假如有更加擅長企業(yè)經(jīng)營的人圍繞 HVML 開發(fā)了新的產(chǎn)品,找到了一套行之有效的商業(yè)模式,成功融資甚至上市,我本人也會非常高興。我想,這是成熟生態(tài)的一部分。

未來無需假設(shè),投身其中,讓自己的設(shè)想變成現(xiàn)實,才有可能書寫歷史。

關(guān)鍵詞: 編程語言 操作系統(tǒng) 嵌入式系統(tǒng)

相關(guān)閱讀:
熱點
圖片 圖片