訂閱
糾錯(cuò)
加入自媒體

華為鴻蒙,自研編程語(yǔ)言補(bǔ)位

       大概所有程序員都?jí)粝胗幸粋(gè)世界,這個(gè)世界只有一種編程語(yǔ)言,通過(guò)這種完美的語(yǔ)言就可以解決所有問(wèn)題。

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

沒(méi)有一種萬(wàn)能的語(yǔ)言,能開(kāi)發(fā)各種平臺(tái)的程序。如果問(wèn)“世界上最好的編程語(yǔ)言是什么?”,這些程序員可能也會(huì)為這個(gè)問(wèn)題辯得熱火朝天。

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

編程語(yǔ)言的難題:空有屠龍技

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

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

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

做不做是一回事,做不做得出來(lái)是另一回事。實(shí)際上,設(shè)計(jì)一門(mén)編程語(yǔ)言的技術(shù)門(mén)檻并不算高。

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

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

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

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

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

編程語(yǔ)言的不斷進(jìn)步,本質(zhì)上是為了解決開(kāi)發(fā)各個(gè)平臺(tái)以及平臺(tái)發(fā)展過(guò)程中現(xiàn)有編程語(yǔ)言難以解決的程序問(wèn)題。

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

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

至于第二個(gè)原因,新編程語(yǔ)言的誕生則很有可能是因?yàn)樾碌男枨罂臻g、新的生態(tài)形成所帶來(lái),比如B語(yǔ)言、C語(yǔ)言的誕生。

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

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

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

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

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

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

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

自研編程語(yǔ)言補(bǔ)位,華為鴻蒙生態(tài)能否迎來(lái)新拐點(diǎn)?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

聲明: 本文由入駐維科號(hào)的作者撰寫(xiě),觀點(diǎn)僅代表作者本人,不代表OFweek立場(chǎng)。如有侵權(quán)或其他問(wèn)題,請(qǐng)聯(lián)系舉報(bào)。

發(fā)表評(píng)論

0條評(píng)論,0人參與

請(qǐng)輸入評(píng)論內(nèi)容...

請(qǐng)輸入評(píng)論/評(píng)論長(zhǎng)度6~500個(gè)字

您提交的評(píng)論過(guò)于頻繁,請(qǐng)輸入驗(yàn)證碼繼續(xù)

  • 看不清,點(diǎn)擊換一張  刷新

暫無(wú)評(píng)論

暫無(wú)評(píng)論

文章糾錯(cuò)
x
*文字標(biāo)題:
*糾錯(cuò)內(nèi)容:
聯(lián)系郵箱:
*驗(yàn) 證 碼:

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