注: 文后的索引為2018-07-16知乎"中文編程"專欄的最新內(nèi)容. 尚未決定是否將之后的文章在知乎和簡(jiǎn)書同時(shí)發(fā)布.
在中文編程專欄開通之際, 略述個(gè)人對(duì)它的理解. 無(wú)疑這是個(gè)非常有爭(zhēng)議的論題. 在下才疏學(xué)淺, 若非自認(rèn)為看到明確的市場(chǎng)需求和已近成熟的時(shí)機(jī), 也不敢斗膽出頭. 道理不辨不明, 非常歡迎各位的批評(píng)指點(diǎn).
經(jīng)過(guò)三個(gè)多月的集體探討, 初步將中文編程的幾個(gè)方面羅列如下. 各個(gè)方面相輔相成, 沒有高低之分. 如有遺漏還請(qǐng)多多指正.
以中文命名
即在代碼中將業(yè)務(wù)相關(guān)的部分用中文命名. 包括類/接口名, 變/常量, 方法名, 數(shù)據(jù)庫(kù)中的表/列名等等. 它的意義在于, 提升代碼可讀性, 降低維護(hù)成本. 風(fēng)險(xiǎn)是, 代碼風(fēng)格需要總結(jié), 第三方庫(kù)對(duì)Unicode支持不佳, 系統(tǒng)編碼不一致等等. 優(yōu)勢(shì)是, 不需依賴任何外部工具, 在支持中文命名的語(yǔ)言中可以立刻實(shí)施.
漢化現(xiàn)有庫(kù)/框架的接口(API), 翻譯其相關(guān)文檔
上一項(xiàng)雖然已經(jīng)包括了使用中文命名接口, 但現(xiàn)有的大量庫(kù)和框架仍有視情況漢化的價(jià)值. 意義在于, 接口更易于學(xué)習(xí)和使用, 同樣增加業(yè)務(wù)代碼可讀性. 風(fēng)險(xiǎn)是, 需要謹(jǐn)慎選擇庫(kù), 確保漢化和維護(hù)的工作量可控; 另外, 統(tǒng)一術(shù)語(yǔ)用詞也是挑戰(zhàn). 優(yōu)勢(shì)是, 技術(shù)門檻較低, 易于團(tuán)隊(duì)分工.
將現(xiàn)有編程語(yǔ)言的語(yǔ)法進(jìn)行漢化
包括漢化關(guān)鍵詞, 內(nèi)建函數(shù)甚至核心庫(kù)等. 意義在于, 漢化后的語(yǔ)言對(duì)新手更友好; 反思關(guān)鍵詞意義; 對(duì)設(shè)計(jì)新語(yǔ)言提供借鑒; 積累編譯器實(shí)現(xiàn)經(jīng)驗(yàn)等. 風(fēng)險(xiǎn)是, 維護(hù)的工作量; 關(guān)鍵詞推敲等. 優(yōu)勢(shì)是, 有不少已有的嘗試可以借鑒.
改進(jìn)現(xiàn)有的, 以及創(chuàng)立新的中文編程語(yǔ)言及對(duì)應(yīng)的開發(fā)集成環(huán)境
包括改進(jìn)現(xiàn)有的IDE對(duì)英文編程語(yǔ)言中使用中文代碼的支持). 意義不言自明. 風(fēng)險(xiǎn)是, 需要和所有主流編程語(yǔ)言競(jìng)爭(zhēng). 優(yōu)勢(shì)是, 中文是我們的母語(yǔ).
希望認(rèn)識(shí)對(duì)中文編程任何方面有興趣和經(jīng)驗(yàn)的同好, 為推進(jìn)中文編程的切磋, 實(shí)戰(zhàn), 推廣和市場(chǎng)化群策群力, 望各位多多進(jìn)言, 踴躍投稿!
下面是本專欄的文章分類, 以及其他相關(guān)的知乎文章(開頭帶*), 排序無(wú)先后
綜述
*發(fā)展中文編程的意義:讓大眾化編程促進(jìn)軟件產(chǎn)業(yè)的建設(shè)
漢化了十?dāng)?shù)個(gè)編譯器的前輩的心得體會(huì)
中文命名
對(duì)在代碼中使用中文命名的質(zhì)疑與回應(yīng)
在Maven Central發(fā)布中文API的Java庫(kù)
Python3選擇支持非ASCII碼標(biāo)識(shí)符的緣由
手機(jī)編程環(huán)境初嘗試-用AIDE開發(fā)Android應(yīng)用
淺嘗The Little Prover一書, 重逢Chez Scheme
History in Threads: 火狐插件實(shí)現(xiàn)瀏覽歷史按主題顯示(樹)
中文代碼示例[譯]Scala中創(chuàng)建隱式函數(shù)
中文代碼示例視頻演示Python入門教程第三章 簡(jiǎn)介Python
中文代碼示例視頻演示Python入門第五章 數(shù)據(jù)結(jié)構(gòu)
"西游記"主題Python入門示例嘗試-數(shù)據(jù)結(jié)構(gòu) 5.1-5.1.2
漢化現(xiàn)有編程語(yǔ)言
如何使GCC支持中文(utf-8)的變量名朗鸠、函數(shù)名蚯撩?
語(yǔ)言/IDE設(shè)計(jì), 實(shí)現(xiàn), 與推廣
日語(yǔ)編程語(yǔ)言"撫子" - 第三版特色初探
*中文編程不僅語(yǔ)言重要,生態(tài)環(huán)境也重要
國(guó)人創(chuàng)造中文編程語(yǔ)言的優(yōu)勢(shì)
編程語(yǔ)言試驗(yàn)之Antlr4實(shí)現(xiàn)"圈2"
中文編程語(yǔ)言之Z語(yǔ)言初嘗試: ZLOGO 4
中英文代碼對(duì)比之ZLOGO 4 & LOGO
編程語(yǔ)言試驗(yàn)之Antlr4+JavaScript實(shí)現(xiàn)"圈4"
JavaScript實(shí)現(xiàn)ZLOGO子集: 前進(jìn)+轉(zhuǎn)向
JavaScript實(shí)現(xiàn)ZLOGO子集: 單層循環(huán)功能
JavaScript實(shí)現(xiàn)ZLOGO子集: 測(cè)試用例
日語(yǔ)編程語(yǔ)言"撫子"-第三版實(shí)現(xiàn)初探
為新語(yǔ)言編寫Visual Studio Code語(yǔ)法高亮插件
JavaScript實(shí)現(xiàn)ZLOGO: 用語(yǔ)法樹實(shí)現(xiàn)多層循環(huán)
爛尾工程: Java實(shí)現(xiàn)的匯編語(yǔ)言編譯器
Antlr4實(shí)現(xiàn)數(shù)學(xué)四則運(yùn)算
Antlr4: 修改語(yǔ)法規(guī)則更接近普通BNF格式
Antlr4實(shí)現(xiàn)簡(jiǎn)單語(yǔ)言之整數(shù)比較表達(dá)式
Xtext試用: 快速實(shí)現(xiàn)簡(jiǎn)單領(lǐng)域?qū)S谜Z(yǔ)言(DSL)
Xtext試用: 5步實(shí)現(xiàn)一個(gè)(中文)JVM語(yǔ)言
AppleScript類自然語(yǔ)言與非英語(yǔ)語(yǔ)法設(shè)計(jì)
編程貓IDE體驗(yàn):對(duì)Scratch的改進(jìn)