訂閱
糾錯
加入自媒體

華為鴻蒙,自研編程語言補位

       大概所有程序員都夢想有一個世界,這個世界只有一種編程語言,通過這種完美的語言就可以解決所有問題。

然而現(xiàn)實世界的編程語言卻多達上千種,雖然其中流行的大概只有C語言、Java、Python等十幾種,但也讓這群程序員的頭發(fā)止不住的往下掉。

沒有一種萬能的語言,能開發(fā)各種平臺的程序。如果問“世界上最好的編程語言是什么?”,這些程序員可能也會為這個問題辯得熱火朝天。

就在最近的華為開發(fā)者大會 2021上,華為消費者業(yè)務(wù)軟件部總裁龔體表示,在不久的將來,華為將發(fā)布為HarmonyOS全新研發(fā)的編程語言。對于程序員來說,未來或許將又多一門可能要學習的語言。

編程語言的難題:空有屠龍技

通常情況下,為了滿足開發(fā)各個方面的需求和減少開發(fā)的難度,那些軟件工程師就想著去開發(fā)更適合平臺開發(fā)的編程語言。這時候就出現(xiàn)了編程語言的進步。

幾十年的時間里,不僅出現(xiàn)越來越多的編程語言,也有編程語言隨著時代發(fā)展地位不斷上升。誰能想到當初用于開發(fā)遙控器程序的Java,會發(fā)展到應(yīng)用如此廣泛的地步。

盡管目前已經(jīng)有成百上千種編程語言,但其中國產(chǎn)編程語言卻少之又少,流行的十幾種編程語言中國產(chǎn)的幾乎不見蹤影。這些編程語言的設(shè)計者和開發(fā)者無一例外全是外國人,在這里我們幾乎失去了發(fā)言權(quán),國產(chǎn)編程語言為何沒有崛起?

做不做是一回事,做不做得出來是另一回事。實際上,設(shè)計一門編程語言的技術(shù)門檻并不算高。

一些游戲公司也會設(shè)計自己的編程語言,這樣既能建立自己的游戲生態(tài),也利于保密防外掛。這些年來也有越來越多的中國人加入到編程語言的研發(fā)行列,只不過設(shè)計的語言仍然有這樣或那樣的不足。

早在七八十年代,國內(nèi)就出現(xiàn)了一款中文培基編程語言,是Basic語言的中文本地化版本;還有基于Python即時編譯語言的中文編程語言中蟒;專注于桌面軟件開發(fā),一直保持活躍更新的aardio;擁有獨立編譯器的知名中文編程語言易語言等等。

GitHub上一個名為“dongbei”的項目,由用戶zhanyong-wang開發(fā),是一個極具特色的東北話編程。這個語言把編程里的英文全部替換成了東北話,嘮嘮=print,沒毛。絫rue,整完了=end......

但是想要做出廣泛流行的國產(chǎn)編程語言卻不太容易。大部分得到承認的程序語言都有一個總體的設(shè)計哲學或是指導原則,用來組織關(guān)鍵字和語法,也就是交給程序員使用的指令集合,并形成一個邏輯上的整體。

Java 和 C++以自身更加精煉以及強大的語言屬性幫助谷歌把一件事做到了極致,那就是搜索,而PHP幫助 Facebook快速進行信息流、信息模塊等一系列新事物制造實驗。

編程語言的不斷進步,本質(zhì)上是為了解決開發(fā)各個平臺以及平臺發(fā)展過程中現(xiàn)有編程語言難以解決的程序問題。

新語言誕生的原因,第一個需要考慮的是,程序員為什么花費時間精力重新學一門編程語言,這是否值得。在近幾十年的發(fā)展過程中,市面上商業(yè)的和開源的語言可以選擇的已經(jīng)有不少,行業(yè)內(nèi)對新語言的需求并不是太大。

而研發(fā)的新編程語言是否比現(xiàn)有語言更加優(yōu)秀或者擁有現(xiàn)有語言所不具備的優(yōu)勢,這將決定程序員是否有動力去學習并推廣一門新興編程語言。

至于第二個原因,新編程語言的誕生則很有可能是因為新的需求空間、新的生態(tài)形成所帶來,比如B語言、C語言的誕生。

20世紀60年代,美國AT&T公司貝爾實驗室研究員Ken Thompson(肯·湯普森)想玩自己曾經(jīng)編寫的游戲Space Travel(星際航行),在編寫游戲運行的系統(tǒng)UNIX的過程中,為了讓游戲更加高效的運行,研發(fā)了B語言。

同樣酷愛Space Travel游戲的Dennis M.Ritchie(丹尼斯·里奇)也加入了Ken Thompson“游戲事業(yè)”中來,在B語言基礎(chǔ)上設(shè)計改進,C語言因此而誕生。相比B語言,C語言具備了良好的移植性,可以讓軟件移植到各種不同的硬件系統(tǒng)。

而華為選擇為HarmonyOS研發(fā)全新編程語言的原因顯然是后者。一方面,華為正在打造鴻蒙生態(tài),可以為新編程語言打開需求空間;另一方面,新研發(fā)的編程語言本質(zhì)上可以幫助華為加強未來對鴻蒙生態(tài)控制以及編程語言標準的把持。

鴻蒙作為一款桌面操作系統(tǒng),擁有屬于自己的高級編程語言和編譯器是一個更好的選擇。比如可以支持鴻蒙的GUI開發(fā),因為GUI結(jié)構(gòu)通常很復雜,通常需要一定的語言特性支撐,而且這個語言必須要與底層容易解耦。

“倉頡”再現(xiàn)的可能性有多大

實際上,在今年9月份,華為副總裁、計算產(chǎn)品線總裁鄧泰華在華為全聯(lián)接大會2021上接受媒體采訪時就提到:華為將推出自研的編程語言倉頡,將鴻蒙和歐拉系統(tǒng)在應(yīng)用開發(fā)生態(tài)上進行打通。

而據(jù)天眼查專業(yè)版APP顯示,早在去年8月,華為就已申請注冊“倉頡語言”商標,只是目前尚不知曉“倉頡語言”是否就是“為HarmonyOS全新研發(fā)的編程語言”。

自研編程語言補位,華為鴻蒙生態(tài)能否迎來新拐點?

那么問題來了,華為為HarmonyOS研發(fā)全新編程語言的成功率大概有多大?能否確保它成為被廣泛使用并具備影響力的語言?

首先,研發(fā)編程語言雖然技術(shù)門檻不高,但同樣需要具備一定的實力才行。

因為編程語言只是提供了功能調(diào)用的使用框架罷了,完善的編程語言還需要在框架內(nèi)做好填充。比如編譯型語言強調(diào)硬件資源的調(diào)用,腳本語言強調(diào)庫函數(shù)的調(diào)用。一門語言能操控多少硬件資源和調(diào)用多少庫函數(shù),是語言能否流行的重要因素。

而且,編程語言的每一次飛躍都會在編程思想、軟件實現(xiàn)、交互方式等方面帶來巨大地提升,但是有多少人有自信說自己寫的匯編代碼可以比C/C++經(jīng)過編譯器優(yōu)化后的代碼更快?相信大多數(shù)人很難做到。

其次,華為打造的鴻蒙生態(tài)能為編程語言提供多大的需求空間。

在物聯(lián)網(wǎng)世界,不同的物聯(lián)網(wǎng)設(shè)備,可能應(yīng)用開發(fā)者會采用不同的編程語言進行開發(fā),同樣有可能導致碎片化的風險。

目前所有應(yīng)用生態(tài)幾乎全部基于智能手機平臺。雖然智能手表、智能電視、車機等IoT設(shè)備已經(jīng)出現(xiàn)好幾年,但是生態(tài)發(fā)展緩慢。在物聯(lián)網(wǎng)設(shè)備越來越多的同時,設(shè)備協(xié)同能力不足的缺陷愈發(fā)凸顯,導致物聯(lián)網(wǎng)生態(tài)整體效率不高。

而統(tǒng)一的編程語言可以有效降低應(yīng)用開發(fā)門檻,避免重復開發(fā)、二次開發(fā)的問題,幫助HarmonyOS實現(xiàn)彈性部署、超級終端、一次開發(fā)多端部署的核心價值。

余承東在今年的華為開發(fā)者大會上稱,自從今年華為P50系列上市,首次在智能手機上搭載,迄今已有超過1.5億設(shè)備使用HarmonyOS,包括智慧屏、平板、手表、智能音箱、IoT設(shè)備等。預計年底,搭載HarmonyOS的1+8產(chǎn)品將達到2億。

HarmonyOS給所有應(yīng)用開發(fā)者提供分布式編程框架,讓大家用統(tǒng)一的編程語言,只寫一次的業(yè)務(wù)邏輯就能夠運行在所有設(shè)備上,可以最大限度地實現(xiàn)生態(tài)在各個孤立設(shè)備上的共享。

也就是說,華為相當于把研發(fā)的編程語言和鴻蒙生態(tài)進行了綁定,一榮俱榮,一損俱損。如果鴻蒙真的能挺過16%的生死線,并且站到物聯(lián)網(wǎng)生態(tài)的頂端,那么為鴻蒙自研的編程語言還是很有想象力的。如果鴻蒙的物聯(lián)網(wǎng)生態(tài)不太成功,自研的編程語言也很難發(fā)揮作用。

最后,還是要回到開頭所述:世界上并沒有完美的編程語言,任何語言在誕生之初,其缺陷就早已注定。

有些編程語言(例如Ruby和Ruby on Rails),由于運行時的速度和啟動速度不夠快,無法支持全面的商業(yè)產(chǎn)品。而有些語言(比如PHP),由于安全性的問題導致Facebook等公司逐漸放棄了使用。

這幾年來Java雖然保持著頑強的生命力,在 TIOBE 指數(shù)上穩(wěn)居榜首,也一直是 Android 開發(fā)的定義語言。但隨著 Kotlin 被更廣泛地采用,它的地位也受到了沖擊。

因此,大多數(shù)具有一定成熟度的系統(tǒng)或生態(tài)在發(fā)展的過程中,也有可能會再去選擇第二種語言,然后是第三種語言。時代在發(fā)展,語言在發(fā)展,系統(tǒng)的需求在發(fā)展,下一代程序員也在進步。

另外,開發(fā)效率和運行效率也像魚和熊掌一樣,兩者不可兼得。

如果研發(fā)的編程語言偏向底層,過于低級,雖然運行效率會比較高,但是開發(fā)起來比較困難,對于開發(fā)者不太友好;如果研發(fā)的編程語言偏向于高級語言,雖然開發(fā)程序容易,但是卻會犧牲運行效率,這也是華為需要去考慮的因素。

昔者蒼頡作書,而天雨粟、鬼夜哭。如今在這個互聯(lián)網(wǎng)時代,組成龐大數(shù)字世界的則是一行行代碼,華為能否真的在數(shù)字時代再現(xiàn)“倉頡”,令人期待。

聲明: 本文由入駐維科號的作者撰寫,觀點僅代表作者本人,不代表OFweek立場。如有侵權(quán)或其他問題,請聯(lián)系舉報。

發(fā)表評論

0條評論,0人參與

請輸入評論內(nèi)容...

請輸入評論/評論長度6~500個字

您提交的評論過于頻繁,請輸入驗證碼繼續(xù)

暫無評論

暫無評論

文章糾錯
x
*文字標題:
*糾錯內(nèi)容:
聯(lián)系郵箱:
*驗 證 碼:

粵公網(wǎng)安備 44030502002758號