倉頡編程語言是中文嗎 倉頡編程入門基礎知識

華為又給我們帶來了驚喜 。他給鴻蒙OS專屬打造的自研編程語言,在深閨里躺了小半年,這千呼萬喚始出來,開始了面向部分開發者的內測 。這門自打去年十月份就預告的編程語言取名“倉頡” 。”倉頡”之名源自于咱們方塊字、象形字的創造者“倉頡” 。也正因為如此,許多人單單從這“倉頡”之名就推測這門編程語言,很有可能是純漢字純中文的編程,進而推測華為的方舟編譯器也會基于中文字符編譯 。會不會這樣呢?

倉頡編程語言是中文嗎 倉頡編程入門基礎知識

文章插圖
倉頡編程語言是中文嗎 倉頡編程入門基礎知識

文章插圖
中文編程的依據
其實呢,我自己從感情上就特別地贊同這個猜測 。因為如果是純中文純漢字編程的話,會大大地降低這個編程的入門門檻兒 。不知道大家是否寫過代碼?寫過的朋友請扣1 。中文編程對這部分朋友絕對是個好消息 。不僅如此,純中文編程的話,有可能吸引各行各業的精英都來給倉頡貢獻代碼 。比如許多人研究古代典籍,研究易經等等,這些高人都就來了 。大概想象一下,將會是怎樣的一番盛況 。然而,這個猜測也只是基于這么一點,就是“倉頡”這個名字 。
倉頡編程語言是中文嗎 倉頡編程入門基礎知識

文章插圖
倉頡編程語言是中文嗎 倉頡編程入門基礎知識

文章插圖
理性上的初步判斷
當從理性上來看,概率可能會特別低,甚至說可以可能低于10%(“倉頡”名字一項證據支撐打10分/100分) ?!皞}頡編程“大概率會基于英文字符 。因為咱們現在看到的大部分關于“倉頡”這門語言的作品和報道,其后面的背景,后面的這些代碼都源自于另外一門編程語言:易語言 。易語言雖然也是這個中文的編程,但是它不大適合于大生產環境,許多人在私底下拿它來做幾個小的實驗的項目 。這是第一點 。
倉頡編程語言是中文嗎 倉頡編程入門基礎知識

文章插圖
倉頡編程語言是中文嗎 倉頡編程入門基礎知識

文章插圖
第二點,現在鴻蒙剛剛處于發展階段,但它的目標卻是星辰大海,它的生態越往上發展,就必然要面向全球的開發者 。倘若是中文的話,這門檻就高了,把潛在的國外的開發者拒之門外 。因此從這個角度來看,我覺得應該大概率還是會選擇英文字符 。
倉頡編程語言是中文嗎 倉頡編程入門基礎知識

文章插圖
倉頡編程語言是中文嗎 倉頡編程入門基礎知識

文章插圖
遞歸下的效率與速度
第三點至關重要,無論是對華為還是對鴻蒙來說最重要的是什么?是運行效率 。
華為計劃明年要出的麒麟9010(雙層芯片),如果在性能上比高通驍龍差一點的話,就會對鴻蒙系統的運行效率要求特別高 。然而,如果是中文,它的運行效率會降低 。咱們中文方塊字占兩個字符,而英文字母只占一個字符 。計算機處理單個漢字所耗費的時間是英文字符的兩倍 。極端情況下,你遞歸一遍就是2倍,遞歸執行2次就是4倍,而遞歸執行3次就是8倍,將會以2的指數級驟增 。
倉頡編程語言是中文嗎 倉頡編程入門基礎知識

文章插圖
倉頡編程語言是中文嗎 倉頡編程入門基礎知識

文章插圖
我們直觀理解一下,遞歸88輪的2的88次是什么概念呢?根據大爆炸理論估算的宇宙的半徑是460億光年,2^88米就是460億光年的距離 。也就是說當遇到遞歸的時候,你往前才邁出去一米,人家就已經跑到了宇宙的邊緣 。這才88次遞歸,在某些對遞歸有限制的語言比如python中,默認最大值是3000次,而函數式編程語言則對此沒有限制 。
倉頡編程語言是中文嗎 倉頡編程入門基礎知識

文章插圖
倉頡編程語言是中文嗎 倉頡編程入門基礎知識

文章插圖
編程功夫在語言之外
當然以上是極端情況 ??梢宰鲈S多”編譯“上的優化,甚至不允許使用遞歸 。而當咱們聊到”編譯“的時候,就涉及到一個問題,那就是只有”C語言家族“才有編譯 。咱們完全不必去執著于中文或者漢字 。因為倉頡這門編程語言必然是以C語言或者C++寫的,流行的語言比如Java,python,JavaScript都是如此 。再往下一層,C語言底層的匯編語言也是英文字符 。就連芯片的指令集也是英文字符 。比如麒麟芯片的Arm架構,它的指令集就是英文字符 。因此,咱們不必去糾結于是不是中文 。

推薦閱讀