前天看到一個網友提問:“為什么中文不能用來編程?”,我回答了該網友的提問,結果一發不可收拾,目前我的回答轉載量已經超過百,評論也有將近兩百條,瀏覽量已經超過22萬人,這個問題的總瀏覽量已經超過數百萬人瀏覽和參與,,而且到目前數量還在不斷增加,那么為何一條小小的問題會引起如此大的爭議和關注?下面我來總結一下我的觀點和網友的觀點。
首先,我是做開發的,我說說個人理解的吧,如有錯誤歡迎指正,技術本來就是大家互相學習互相交流的,有什么錯誤也并不是不可饒恕。計算機最早從美國誕生,而美國使用的是英語進行編程,英語是目前世界上使用最廣泛的語言。它用26個英文字符組成,通俗易記。其實,計算機的底層只認識二進制0001111之類的,也就是說計算機本身只能識別0和1,并不認識其他數字、英文和字符,但是每個程序和計算都使用二進制并不容易記,這樣對編程人員的技術要求很高,也很難操作,而且一般人很難理解二進制代表的是什么東西,也就不知道它到底執行的是什么,為了方便記憶和理解,it界就誕生了用英語編寫的更利于記憶的編程語言,包括匯編、C、C++,java,C#,php等。但是計算機并不認識0和1之外的字符。那么它是怎么識別編程語言的呢?其實,它的底層是把編程語言翻譯城二進制,也就是0和1組成的字符。就像咱們跟英國人交流一樣,必須把漢語翻譯成英文、把英文翻譯成漢語或者把各自知道的語言翻譯成大家都識別的語言。
那么從上面看漢語能否作為計算機語言呢?答案是絕對沒問題,那么為什么現在很少用中文編程呢?一方面中國計算機技術發展比較晚,在國際上沒有話語權,如果重新開發一套中文編程代價和成本太大,所謂無利不起早,如果沒有很大的利益大家也都不愿意去摸索和發展。再者一套中文編程看似簡單,實際上涉及的范圍太廣工程太過浩大。使用的技術也很多,實現起來并不容易。也沒有自己成熟和讓大家接受的中文操作系統,而且很多技術只有國外有,英語編程都有很大的交流圈,技術和社區都很成熟。
中國前十多年誕生了自己的全中文語言易語言,但是一直不溫不火,社區不夠成熟,計算機支持的也不大好,而且用易語言編寫的軟件很多都會被殺毒軟件報毒,殺毒軟件不識別易語言。所以一般用戶看到殺毒軟件報毒都會認為是病毒,其實大多數易語言編寫的軟件并沒有毒只是殺毒軟件不識別。
有人認為因為英文節省空間也就是字節,如果用中文編程消耗的空間太大,學過技術的人都知道編程中一個中文字符所占的字節等于兩個英文字符所占的字節。那么我們看看這種字節是否是影響中文編程的關鍵問題?我的答案是否定的,為什么?因為英文和中文比起來并不節省空間,相反占用的空間更大。我們打個比方,“控制器”在中文只有三個字符,但是在英文“controller”中所占的字節遠遠超過三個中文字符。“靜態”在中文中兩個字符占據四個字節,而英文“static”占據了六個字節。“常熟”中文占四個字節,英文“const”占據五個字節,由此可見,因為中文字符占據空間大并不成立。如果你非要拿“如果...”和“if...”做比較我也無話可說。
不管網友怎么評論怎么理解,大家的意思都只有一個。那就是“中文是可以編程的”,這個是沒有爭論的,就是看有沒有必要實現中文編程罷了。中國主要還是技術接受的晚,別人都在用計算機上天了,中國還不知道計算機為何物,怎么可能發展的起自己的全中文編程語言?這個就像很多國民笑話專家一樣。研發的“自主操作系統”其實最后發現都是基于linux的。
為什么那么多網友都熱衷于中文的操作系統和中文的編程技術?我想還是民族自尊心的問題,這個總體上我還是很高興的。你也許會問為啥?這不恰恰說明國人越來越關注自己國家了嗎?大家不僅關心國家的硬實力而且也開始關注國家的軟實力,都期盼有一天中華民族能夠站立在世界的頂端。我們的神州飛船可以把人送上天,我們的武器可以打擊世界任何一個地點,我們的國產航母即將下水。但是遺憾的是我們卻沒有自己的中文系統和完整的中文編程,對愛國的普通百姓來說這是很難接受的。所以大家就一起自嘲,自嘲的同時有對國家和企業抱有很大的期盼。難道有了自己的系統和自己的編程技術就證明國家牛逼可嗎?這個很難說,不同的人有不同的看法。但是有了自己的技術體系確實能增加民族自豪感,而且能夠保證國家的信息安全。增加自己的民族凝聚力。中國老百姓為啥對自己國家要求很高?主要我想還是民族自尊心,中國曾經在世界的大部分歷史當中,都是國力最強盛的,武力也最輝煌的,大小征戰無數次,老百姓自然希望自己國家能夠再次恢復昔日榮光。
那么中國以后能有自己成熟的編程語言嗎?我相信會有,只是這個需要漫長的過程,等到中國的技術真正超越國外,并主導了計算機技術等的時候一定會研發自己成熟的技術。