不管是 C 語言、Java 還是 Python,常見的程式語言大多是英文,因此想當個工程師,一定要有基礎的英文能力(至少要看得懂 if、else、return、float、int 吧)。
但你有想過用中文寫程式嗎?
中國有個 GitHub 帳號為 Lingdong Huang 的工程師,開發了一款「文言文程式語言」,讓你用文言文寫程式,在萬行程式碼中展現你的人文情懷。
那麼,這款文言文程式語言是什麼神物?
變數定義、for 迴圈全變成了文言文
有個 twitter 帳號為 Barret 李靖 的中國網友轉發了 Lingdong Huang 的文言文程式,我們以 Barret 李靖貼在 twitter 上的程式碼,帶你了解要怎麼用文言文寫程式。
寫程式前要先定義環境。在文言文的版本中,寫法是:
吾有一術。名之曰「快排」。欲行是術。必先得一列。曰「甲」。乃行是術日。
這個程式要執行快排的工作,而工程師先為這個程式定義「列」。
寫程式也需要定義變數、行、列名稱等等。文言文的寫法是這樣的:
吾有三列。名之曰「首」。曰「頷」。曰「尾」。
工程師定義了三個列。
至於 if、else 邏輯與 for 迴圈,文言文是這樣的:
凡「甲餘」中之「丁」。
若「丁」小於「甲一」者。
充「首」以「丁」。
若非。
充「尾」以「丁」
也。
云云
用「凡」代表 for,「若」代表 if,「若非」代表 else if。不同的是,英文只用大小括號代表迴圈的運算範圍,而在文言文中,結尾還多了「也」、「云云」,增添一層中華韻味。
工程師通常會為程式做註解,方便後續的編輯與溝通。文言文的寫法是這樣的:
批曰。「「曼德博集。亦稱曼德布洛特複數集合。複平面上组成分形之點之集合也。」」
英文寫法是打斜線,文言文則是寫「批曰」,有種古人吟詩作對、或是鑑賞畫作時,為他人的作品寫下評論與簽名的味道。
有興趣的朋友,可以去 GitHub 看看文言文程式語言,試著用文言文寫段程式。
(圖片來源:Github)
網友:可讓孩子學這個!學程式又學古文,一舉兩得
不少網友在 Barret 李靖的推文下留言,大力稱讚這個文言文程式碼。網友表示,用文言文寫程式「古意十足」。另有網友留言:「如果要寫這種程式,工程師必須文理雙全」,對國文不好的工程師來說,這種程式碼應該是個噩夢。也有網友說:「可以讓孩子學這個,學程式又學古文,一舉兩得」。如果孩子真的學會這個,老工程師們應該會跟他跪吧。
還有網友留言:「遊戲開掛可以寫的跟符咒一樣」。原來打個遊戲還要這麼高端,需要具備中國文學素養啊!但如果是打三國這種以中國為背景的遊戲,用這種程式碼會真的很有味道。
不管是 C、C++、Java、JavaScript、Python、R,還是這次的文言文程式語言,雖然每個程式語言的表現方式有差異,但背後基本的邏輯推理架構與演算法是可以通用的,因此精通一種程式語言之後,要學會下一個程式語言的難度通常不會太高。如果你想提升自己的國文造詣,想在萬行程式碼當中注入文學氣息,展現自己的人文情懷,那你就可以改用文言文寫程式。但如果你需要與其他工程師溝通、協作的話,還是先考慮考慮吧,免得被整個團隊黑特啊!
你可能用 Python、JavaScript、Ruby、Java、Go 等语言写过代码,但是你绝对还没有使用「文言文」写过代码,但,有了这个工具以后,或许你就可以了:https://t.co/oeJ0tAiUqj,😅😅😅,思路清奇。 pic.twitter.com/YETtZ3C1uA
— Barret李靖 (@Barret_China) 2019年12月17日
延伸閱讀
不想要一輩子只寫程式?當了 5 年的工程師後,你可以考慮往這 5 個職位發展
【GitHub 年度報告】JavaScript 登最熱門程式語言,Python 首次擊敗 Java 當第二
只會用 Excel 還不夠!七大主題,教你如何用 Python 優化數據分析效能
※本文獲科技報橘授權轉載,原文:Python 弱掉了!中國工程師開發「文言文程式語言」,讓你的 coding 充滿文學情懷