在今天看見明天

Python 弱掉了!中國工程師開發「文言文程式語言」,讓你的 coding 充滿文學情懷

郭家宏

焦點新聞

Barret 李靖 twitter 帳號

2019-12-19 14:07

不管是 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 傳送門
coding 介面

 

(圖片來源:Github

 

網友:可讓孩子學這個!學程式又學古文,一舉兩得

 

不少網友在 Barret 李靖的推文下留言,大力稱讚這個文言文程式碼。網友表示,用文言文寫程式「古意十足」。另有網友留言:「如果要寫這種程式,工程師必須文理雙全」,對國文不好的工程師來說,這種程式碼應該是個噩夢。也有網友說:「可以讓孩子學這個,學程式又學古文,一舉兩得」。如果孩子真的學會這個,老工程師們應該會跟他跪吧。

 

還有網友留言:「遊戲開掛可以寫的跟符咒一樣」。原來打個遊戲還要這麼高端,需要具備中國文學素養啊!但如果是打三國這種以中國為背景的遊戲,用這種程式碼會真的很有味道。

 

不管是 C、C++、Java、JavaScript、Python、R,還是這次的文言文程式語言,雖然每個程式語言的表現方式有差異,但背後基本的邏輯推理架構與演算法是可以通用的,因此精通一種程式語言之後,要學會下一個程式語言的難度通常不會太高。如果你想提升自己的國文造詣,想在萬行程式碼當中注入文學氣息,展現自己的人文情懷,那你就可以改用文言文寫程式。但如果你需要與其他工程師溝通、協作的話,還是先考慮考慮吧,免得被整個團隊黑特啊!

 

 

 

延伸閱讀

不想要一輩子只寫程式?當了 5 年的工程師後,你可以考慮往這 5 個職位發展
【GitHub 年度報告】JavaScript 登最熱門程式語言,Python 首次擊敗 Java 當第二
只會用 Excel 還不夠!七大主題,教你如何用 Python 優化數據分析效能

 

※本文獲科技報橘授權轉載,原文:Python 弱掉了!中國工程師開發「文言文程式語言」,讓你的 coding 充滿文學情懷

 

延伸閱讀

總統政見會有人說謊、還成了「甩耳光」會?苦苓: 創三個史上之最

2019-12-19

害蘋果每年損失30億美元?富士康鄭州廠高層傳盜賣iPhone零組件 郭台銘回應了

2019-12-18

一週9萬人流感就醫》得流感吃「克流感」就好了?耳鼻喉科醫師告訴你:流感為什麼很可怕

2019-12-18

保費越貴,保障越高?良心業務員:你不知道的4個保險真相

2019-12-18

「遺產像是一把刀,讓我們四兄妹互相殘殺...」一個故事告訴我們,千萬別留錢給孩子

2019-12-17

編輯推薦