1. 程式人生 > >對中文語法的程式語言的質疑與迴應

對中文語法的程式語言的質疑與迴應

有感於程式設計軟體有沒有用中文編寫的?, 提取了一些比較典型的聲音迴應如下, 如有遺漏的論點請補充.

英語和程式設計無關

  1. 只要會幾十個英文關鍵詞, 就可以學程式設計了 – 所有的API都是英文的, 看中文文件已經比直接理解API名稱間接了一層, 還不用說中文文件的質量和覆蓋面問題.
  2. 程式設計使用的符號(識別符號等等), 與自然語言無關 – 參考對在程式碼中使用中文命名的質疑與迴應一文中關於可讀性的部分
  3. 程式設計的門檻是邏輯, 而不是英文 – 從邏輯不好會導致程式設計學習困難不能推匯出程式設計入門困難的就邏輯不好. 隨著程式設計經驗的積累, 反過來肯定會使邏輯更加清晰, 而英文導致的額外入門難度本是可以避免的.
  4. 英文不會提高程式設計門檻 – 即使是國外開發者, 也對非英語國家學習程式設計的自帶難度有認可. 詳見吳烜:程式設計軟體有沒有用中文編寫的?前半部分. 一個可能是他們都誤會了, 另一個就是這個明確的中文程式語言的市場需求被出於各種原因視而不見了.

很多英文程式語言都是由非英文母語的開發者創造的

如: (轉載)python-荷蘭; pascal-瑞士; Erlang-瑞典; php-以色列; ruby-日本.

迴應: 與對在程式碼中使用中文命名的質疑與迴應"芬蘭人Linus,使用英語而非自己的母語來編寫Linux程式碼"一節同理, 上述所有語言都沒有與中文/英文同等量級的使用人口數量. 最接近的日語也有十幾倍的差距.

中文比數學表示式繁瑣

最常給出的例子是1+2-3*4 用中文寫就是一加二減三乘以四,以此說明中文不適宜作程式碼.

迴應: 也沒有英文程式語言這樣設計one add two minus three multiply by four. 中國本身的平均數學水平就在第一梯隊, 對阿拉伯數字和這些基本數學符號基本做到了全民普及, 為何一定要選擇在程式語言中用漢字表達數學呢? 當然, 不是說不能用加 減等等作為關鍵字, 而是說很容易做到兩種模式都支援, 根據具體情況使用.

從硬體介面到語言/介面都是英文的, 不可能突破

中文程式語言的設計實現, 瓶頸不在於編譯器技術. 而是走出第一步, 開發一套實用的語言和配套的中文介面的標準庫(後者的設計難度和實現工作量也許不亞於語言本身的設計和實現). 之後的迭代和演進將水到渠成. 當然, 突破壟斷總是難的, 但技術上可行, 也已經有人才儲備了.

中文輸入效率低

對在程式碼中使用中文命名的質疑與迴應 "中文輸入太慢, 降低開發效率"一節

難以國際化

首先, 對在程式碼中使用中文命名的質疑與迴應 "不利於非中文程式設計者貢獻"一節闡述了絕大多數國內專案的本土特性. 其次, 如果實力和需求已經達到招募國外程式設計師的地步, 相信國外開發者也會去學中文的. 正如孔子學院的興起, 綜合國力的提高必將催生文化輸出. 中文程式語言相信會使國內的程式設計效率獲得進一步提升, 進而提升IT行業整體的國際競爭力, 進而扭轉勞力輸出的趨勢, 中文程式設計也將成為文化輸出的一部分.

不如做好各種文件以及程式設計工具的翻譯

這是迫於現狀不得不為, 長遠看只能跟著別人後面亦步亦趨.

而中文程式語言是屬於自己的路, 節奏和方向都在自己把握中, 也是擺脫跟跑的更可能途徑(為何更難以創造新的英文程式語言請見國人創造中文程式語言的優勢)

需要推翻現有的一切從頭來

就像很多JVM語言(如Scala)都可以呼叫Java庫, 中文程式語言一樣可以在設計時就加入類似特性, 從而在創始時就可以使用所有或者部分現有語言的實用功能. 這種情境下的中英混用與在現有英文程式語言中使用中文命名同理. 在此基礎上, 可以逐漸完善自身的中文介面的標準庫.