一位來自中國的MIT博士,開發了一種新的CG特效編程語言Taichi(太極),在業界引起不小的轟動。
趁著這股國產編程語言興起的東風,某科院也加入了隊列中。
2020年1月17日,某科院計算技術研究所計算機體系結構國家重點實驗室宣佈,由該實驗室編譯組主導研發的國產編程語言“木蘭”正式發佈。
該項目負責人稱,這是一門“完全自主設計、開發和實現,真正掌握了核心技術的面向物聯網智能”的國產編程語言。
事情的結果大家應該都已經知道了。
剛官宣沒多久,就有人指出“木蘭”其實就是個Python換殼,迫於壓力“木蘭”團隊也承認了。
一時間,全國譁然。
這樣一來,“國產編程”四個字,似乎又成了諷刺山寨的代名詞。
鑑於此,近日,一位谷歌的工程師琢磨出來一個更加接地氣的編程語言項目:dongbei。
dongbei,也就是一門以東北方言詞彙為基本關鍵字的、以人為本的編程語言。
作者老萬在引言中介紹稱,在母語編程大熱的當下,“這玩意兒可是填補了世界方言編程地圖上的一大片兒空地”。
至於為什麼要開發這個項目,老萬在公眾號中稱,一切都要從“木蘭”換殼Python事件說起。
當時,看到有人吐槽“木蘭”沒有技術含量,老萬內心是這樣的:
“一個大廠的初級程序員需要兩到三天的時間完成這樣一個程序的開發,你還敢說沒有技術含量?How dare you?”
所以,老萬就想借此機會給大家演示一下一門編程語言的設計實現過程。
重點是,用換皮術實現一門編程語言並不神秘。
以下是dongbei編程語言的特點:
- 簡單啊!小學文化程度就行。您能看懂春晚不?能?那就沒問題。
- 好讀啊!看著看著包您不由自主地念出聲兒來。
- 開心啊!呃,做人嘛,最重要的是要開心。
- 開源啊!不但不要錢,而且不要臉 -- 隨時隨地歡迎東北話高手打臉指正。
- 採用了業界領先的 TDD(TreeNewBee-Driven Development) 方式。
之所以叫dongbei,是因為這門語言的語法設計和關鍵詞選擇都是以人民群眾喜聞樂見的東北方言為基礎,飽含白山黑水的深情。
老萬也承認,這是一款完全由他自己自主設計、開發和實現,真正掌握了基於Python 3二次開發技術的、以人為本的編程語言。
我們知道,世界上有很多很多編程語言。比如:過程式、函數式、邏輯式、面向對象式。
但是至今沒有一款“以人為本”的編程語言。
簡單來說就是:dongbei就是用東北話編程,Python換殼什麼的不重要,重要的是“以人為本”。
既然開發者都說了是基於Python 3二次開發,那麼首先,你得有一個Python 3的開發環境。
dongbei語言適用於 Mac OS、Windows、Linux 等系統,安裝也極其簡單,通過指令:src/dongbei.py 安裝即可。
一切準備就緒,接下來就是跑代碼了。
所有編程語言入門第一課必須得是“Hello world”。
東北味的“Hello world”長這樣:
<code>嘮嘮:“這旮旯兒嗷嗷美好哇!”。/<code>
其中,“嘮嘮”是關鍵詞,顯示信息用的。
“嘮嘮”後面跟的是要顯示的內容,在這兒就是一個字符串。
句號(。)表示操作完了,但在東北語言環境中,句號不夠熱情,所以也可以改成用感嘆號(!)結束。
這裡唯一需要注意的是,東北方言代碼文件需要確保字符編碼方式為 UTF-8,即在代碼文件最上一行加上「# -*- coding: utf-8 -*-」。
要是編輯器顯示編碼錯誤,那就把文件內容改成:
<code># -*- coding: utf-8 -*-嘮嘮:“唉呀,這嘎噠真他媽那啥!”。/<code>
執行結果:
<code>唉呀,這嘎噠真他媽那啥!/<code>
由於dongbei語言再三強調以人為本,所以更適應中國人的書寫習慣。
也就是說,在編程過程中,無論你加不加空格、換不換行都無所謂,加了也是白加。
所以,dongbei大概也是世界上第一個空格鍵壞了也能使用的編程語言。
dongbei裡面數字的表達也可以說是非常貼心。
0到10的常數都可以用中文表達:零一二三四五六七八九十,其中“二”也可以寫成“兩”或者“倆”,“三”可以寫作“仨”。
當然,如果你是非東北程序員,沒有東北話基礎,那麼在語法規則上可能會遇到一點小麻煩。
那也不用擔心,作者貼心地為大家準備了dongbei語言考試小抄。
如下圖所示:
在變量中,“變量”=“活雷鋒”。
給變量賦值:
在東北方言中,“賦值”這種文詞是不存在的,在dongbei語言裡這就叫“裝”。
<code>老張裝250。/<code>
就是讓老張裝個250,相當於C語言:
<code>laozhang = 250;/<code>
以此類推,那麼:
<code>老王裝老張。/<code>
就相當於老張和老王都裝的是250了。
要把一個“活雷鋒”的值清空回到原始狀態,可以用”削“:
<code>削老王。/<code>
看到這裡,是不是理解起來就非常容易了?
又比如循環:
所謂循環,就是一遍一遍磨嘰嘛,磨嘰當然也是可以嵌套的。
如果你還是一頭霧水,作者也給出了一些簡單的演示。
當我們需要定義一個“套路”(方法)時,以“九九乘法表”為例,就可以這樣寫:
<code>寫九九表咋整:# 定義套路 寫九九表。 老王從 1 到 9 磨嘰: 老張從老王到 9 磨嘰: 嘮嘮:老王、“*”、老張、“=”、老王乘老張。# 打印 X*Y=Z 磨嘰完了。 嘮嘮:“”。# 空一行。 磨嘰完了。整完了。# 結束套路定義。/<code>
如果需要運行該方法,可以使用整 + 套路名的方式,比如:
<code>整寫九九表/<code>
這樣就可以打印出結果了:
<code>1*1=11*2=21*3=3...8*8=648*9=729*9=81/<code>
有了這份小抄,想必在編程過程中也不會太困難了。
在dongbei的issue區,還有人誇道,“比今年春晚所有小品都好笑!”
東北方言編程還有很多待我們挖掘的地方,不少開發者也紛紛提出了自己的建議:
<code>break - > 完犢子了exit () -> 整沒了Exception - > 整岔劈了type () -> 你瞅啥/<code>
開發者稱,dongbei語言雖然還很稚嫩,但是已經具備了比圖靈完備性更牛叉的鐵嶺被玩性,強烈的中華民族性和完美的可口可樂性。
三性合一的它尤其適合在特殊時期憋在家裡沒事找事做的同學們挑戰自我。親子共同學習效果尤佳。
目前,開發者老萬計劃在下一版的dongbei中加入更多特色功能。
從老萬的主頁我們可以看到,他還是一位Google的高級軟件工程師 / 技術主管。
同時也是Google C++測試框架googletest以及googlemock的原作者。
如果你在家閒來無事,不妨玩一玩。
閱讀更多 一起閱讀吧2020 的文章