國內碼農為什麼那麼討厭中文程式設計?
你以為會寫中文就會程式設計嗎?這就像你以為會寫漢字就會寫出好文章一樣。程式設計是和機器溝通,因此要用機器的語言而不是人類的語言。最早的程式就是0和1的數字,不是中文也不是英文。以前的程式設計師,每天寫程式就是在一條長長的紙帶上打孔表示0和1。後來發現0和1的二進位制太麻煩了,就把0和1壓縮一下,用16進製表示,比如數字10,用二進位制表示是1010,用16進製表示就是0A,這樣表達起來就更簡潔,但是輸入電腦後,仍然要轉換為二進位制電腦才能明白。後來,科學家們用簡單的英文單詞表示某些功能,比如加法,就用add表示,減法就用dec表示。程式設計師輸入add或dec後,系統會轉換為對應的演算法。就這樣不斷的給不同的程式碼段起名字。程式語言就是從數字編碼不斷壓縮提高層次,最後形成了當今的各種風格的程式語言。為什麼碼農會討厭中文程式設計?我用最流行的易語言說明。所謂全中文的易語言,其實就是把Visual Basic語言中每個英文單詞換成了對應的中文詞,其他都不變。
比如Visual Basic的程式碼是這樣:
if True then
Print "OK"
endif
換成了易語言,就是這樣了:
如果 真 那麼
列印 "OK"
結束如果
任何人都能看出來,英文寫的程式更簡單清晰。
其實從語言學的角度來說,英文是線性的一維語言,而中文是平面的二維語言。而程式恰恰是線性的一維的。也就是說,線性的英文正好能契合線性的程式。所以,中文並不適合現有的程式設計方式。
然而,未來的發展可能超出你的想象。未來可能會有多維度的量子計算,也許二維的中文反而會比一維的英文更適合。
程式設計師對比過中文程式設計和英文程式設計就會明白,中文程式設計反而會提高門檻。因為程式設計的核心根本就不是什麼語言,而是程式化思維方式。最簡單的並不是英文程式設計,而是數學符號程式設計,極度抽象,普通人很難理解,但程式碼量特別少。
補充一句,其實現代的語言比如Java,都支援Unicode,也就是說可以用中文甚至世界其他語言做變數名和函式名,你可以試試看,這樣看起來就基本上就相當於是中文程式設計了,對比一下英文程式設計,你就會知道哪個更好了。
電腦能識別的只是0和1的二進位制而已,那麼,如果按中文的角度來考慮,那麼應該從核心開始就把二進位制轉換為8進位制,然後用八卦來表示,這樣從底層構造純中文的計算機。八卦兩兩組合,演化為64卦,就能表達宇宙萬物。這比老外的英文程式語言不知道高階多少倍。而且,滿眼全是中文,老外就算認識中文字也看不懂意思,呵呵。