1. 程式人生 > >萬馬齊喑究可哀-中文程式設計的又一波"討論"

萬馬齊喑究可哀-中文程式設計的又一波"討論"

剛申訴了自動摺疊, 還是把回答轉帖一下: 吳烜:假設中國人最先開發電腦和設計程式語言,那麼各種程式語言會使用漢字嗎?

這種有明顯傾向性的問題怎麼還有市場呢…不管誰先開發的電腦(就不論算盤之類是不是計算機前身了), 就不許後來者基於自身需求開發最趁手的工具嗎?

再說一遍, 沒有中文程式語言, 也可以在程式碼中用中文命名! 是的, 現在就可以! 不需要任何額外的工具: 在各種程式語言中使用中文命名

母語命名識別符號可以帶來程式碼清晰度和可維護性的提高: Python3選擇支援非ASCII碼識別符號的緣由. 而支援Unicode命名是大多數現代程式語言都具備的特性, 難道那些語言開發者都閒得慌才加的這個特性嗎?
各種用詭異的中文命名寫出天書般程式碼來證明中文程式碼可讀性不高的請用英文把同樣的程式碼用直譯一遍, 再放在一起比較一下, 到底哪個更天書.
基於各種語言/框架的中文命名例子見

中文程式設計專欄目錄, 初衷和希冀的"中文命名"部分目錄(Java, Python, Javascript等).

其他關於中文命名的質疑(比如輸入慢, 沒好處, Linux也用的英文命名, 不利於外國開發者貢獻, 用中文註釋就夠了, 現有API都是英文的, 程式語言和自然語言無關, 會有編碼問題, 會影響錢程, 沒有先例等等)迴應詳見對在程式碼中使用中文命名的質疑與迴應. 歡迎各種新論點.

下面該有人說中文命名和中文程式語言無關了.

正因為缺少這種中文命名的實踐, 各種程式設計和領域術語都沒有形成規範(即使常見用詞List和Collection都有不同的中文說法, 見討論參考MSDN,試搞.NET類庫識別符號的翻譯版 · Issue #54 · program-in-chinese/overview

), 設計中文語法的程式語言往往成了無本之木. 語言特性應該從實踐中提煉, 即使在現有英文程式語言中進行的中文命名實踐, 也可以促進中文語法程式語言/開發工具的發展. 個人的看法, 中文程式語言有沒有空格, 到底要多"高階", 都是其次. 好用應該是第一原則, 在這方面易語言是個標杆, 可惜十多年了至今無人跨越.

再說, 現實是英文程式語言的天下, 為什麼不在這些工具中用中文命名, 以最小的代價實現程式碼可讀性提升呢? 哪天有合適的中文程式語言了, 把程式碼移植過去都方便的多. 十年之後, 估計會有不少人吐槽, 當年把中文術語硬翻成了英文識別符號(甚至於拼音), 現在還得翻回去, 當年是怎麼想的.

最近又看到不少此類帶節奏的文章, 就剛才還挖了一篇的底(專用帖: 對中文程式設計的質疑, 困惑, 批評, 吐槽請到此處 · Issue #44 · program-in-chinese/overview). 只能說, 看來有些人終於有點急了, 因為程式碼可讀性的重要性, 以及中文命名對可讀性的提升已經被越來越多的人認識到了. 此路必定不平坦, 比如很多中文編碼相關的坑會讓中文命名來背鍋, 更不用說非技術因素了(見中文程式設計興起的可能途徑). 但這恐怕是大勢所趨. 能在此大勢中出一份微薄之力, 也算是個人之幸.