中國的中文程式設計是偽科學?
近日,開源中國社群內居然出現了不少易語言的討論帖,還有人說應該開一個易語言專區。對此作者首先要表示自己的驚訝,這個語言怎麼還活著呢?看著爭論還挺激烈,有一些人把中文程式設計這個偽科學觀點抬得很高,甚至還有互罵對方漢奸的。 所以作者決定寫一篇文章,來討論一下現在的中文程式設計是什麼。
要說什麼是中文程式設計,就不能不說說中文程式設計出現的歷史原因。這個“中文程式設計”似乎是中國獨有的東西,至少筆者沒有聽說過法文程式設計、德文程式設計,乃至什麼日文程式設計或者阿拉伯文程式設計。也許是我孤陋寡聞吧,但是既然我這樣接觸IT界快20年的人一點訊息都沒聽說過,那麼我敢說,這些程式設計即使有過,也和中文程式設計一樣,要麼死了,要麼半死不活沒人理。
中文程式設計為什麼出現呢?這要從我們80年代改革開放的時候說起。80年代的改革開放,使得電子計算機從軍方的保密單位、各個高階科研院所走出來,開始進入各個企事業單位甚至家庭。各位80後仔細回想一下,大家中小學的時候是否有聽過廣播電視報導某某作家使用計算機寫書呢?中國的計算機普及,是從中文輸入開始的。
第一個被攻克的,是中文排版。王選院士和他的方正集團在中國的IT發展史的地位為什麼不可動搖,誰都比不了呢?是因為他第一個解決了中文的計算機處理問題。此後,各種輸入法萬碼奔騰。拼音、自然碼、雙拼等等,特別是五筆字型第一個解決了輸入速度問題。當年很多人學電腦學的是什麼呢?就是五筆字型輸入。
在80年代90年代這20年,中國的IT界走貿工技的道路,成了現在的世界IT工廠。有些領域我們自主研發和引進的度掌握好了,有些沒掌握好。因為很多地方沒掌握好,所以我們的自主研發情節特別嚴重。很多起點的YY小說,裡面都提到了中文程式設計,這代表了什麼呢?代表了大家希望中國在IT世界的高階領域能佔有一席之地。
中文程式設計的探索應該是80年代開始,90年代的時候比較興盛,我九幾年曾經在電視上看到一箇中文程式設計的報導,當時的畫面我還記得,可以說就是一個漢化了的微軟QBASIC。這個新聞播完了,這個軟體也就沒影了。我想是賣不出去,失敗了。在所有的探索中,最成功的就是現在論壇裡面熱議的易語言了。易語言可以說是整個90年代中國人在中文程式設計這個方向上探索獲得的最高的成果了。如果國家有保密的成果我不知道另說。但是很遺憾,自從進入21世紀,網際網路大潮席捲中國,中文程式設計就像那些輸入法一樣,悄無聲息了。現在還有幾人用五筆字型輸入?就是速記員,也改用速錄機了。
當年為什麼要進行中文程式設計的探索呢?這是因為在我們的認識中,中文這種象形文字對英文這樣的拼音文字在資訊量上有天然的優勢。很多人自豪的說我們認識很少量的漢字就能讀書看報,中國人基本上沒有閱讀障礙。但是在美國閱讀障礙的人很多。聯合國官方語言中,中文版的厚度是最低的。
在90年代,大量計算機的普及,也帶來了中文軟體缺乏的問題。當時到處都有軟體需要開發,到處都缺程式設計師。北大青鳥為什麼發展起來,就是因為它第一個進行了大批量工廠化速成程式設計師。當時社會上特別缺少程式設計師,無論是否合格,總比沒有好,就好像改革開放的時候,任何一家企業生產電器,都會被搶光。
社會對程式設計師的極大需求缺口,自然讓人們對如何培養中國程式設計師,如何提高中國的軟體開發效率進行探索。其中一個探索方向就是中文程式設計。這是因為當時國內的IT技術資料不但少,還多是英文。而無論是我們們中國,還是日韓,英文都是一個大問題。很多人學了多少年,四六級過了說不了話讀不了書的不新鮮。有人就想了,如果我們拋開英文呢?是否就可以大量培養程式設計師了呢?全是中文,自然資料也都是中文,不用擔心閱讀問題。
於是,中文程式設計的探索開始了。我們說理想是美好的,但是現實是很殘酷的。所有公開能找到的中文程式語言基本上都停留在只是簡單把關鍵字改成中文的水平上。低階的看著像漢化的Basic,高階的易語言,怎麼看怎麼像漢化的Visual Basic。就是當著易語言的作者當面,我也敢這麼說,你的語言思想其實和Visual Basic沒什麼兩樣,沒有本質性突破。
為什麼會這樣呢?中國的牛人也不少,求伯君(WPS)、王江民(KV)這些大拿為什麼沒人搞這個?就算這些大拿不上,我們們中國別的沒有,兩條腿的大活人有的是,怎麼就沒有一點突破呢?
因為在現有的理論體系下,中文程式設計是一個偽科學命題,搞這個是白費勁。為什麼是白費勁呢?這要從計算機本身的理論說起。現代計算機體系,由圖靈、諾依曼這些天才數學家構建,到今天為止,無論怎麼變化,本質上都一樣。花樣玩兒再多,根上都是一個東西。
這個東西是什麼呢?搞清楚這個,就要定義計算機語言到底是什麼語言。我本人不是學語言學的,我的分類標準可能不準確,大家不要見笑。在我看來,所有的語言,都是資訊傳遞的媒介。這種媒介分為兩種,一種是我們們常見的理解描述性語言,比如書刊報紙上面的文章,都是這個。還有一種是符號語言,這是一種數學語言。而現代計算機的核心就是數學,無論什麼,到了計算機裡面都是二進位制計算而已。
我們說的中文資訊量大,指的是我說的理解描述性語言。你寫一篇文章,中文一般會比英文短,文言文更是短到及至以至於大多數人看不懂。但是對於數學符號語言,正好倒過來。數學符號,1個符號的意思你用語言描述就要很多話。
質能等價理論如果要用文字描述,簡略也要一篇文章,詳述要一本書不止。但是用數學符號表示怎麼表示呢?E=mc2。全算下來才5個字元。
計算機語言無論它以什麼做關鍵字,其每條語句的實質都是數學表示式。“if”、“when”這些不是英文,是數學符號表示式。那些大拿為什麼不去搞中文程式設計?是因為他們懂得程式設計的實質。在這點上,“if”和“如果”沒有區別,兩者的資訊量一樣,但是“if”只需要敲兩下鍵盤,但是“如果”呢?就是五筆字型片語也要3下呀。放大到整個程式,我需要多敲多少鍵盤?這是提高效率還是降低效率?
那有人說了,中國很多人英文都不好。如果中文程式設計,即使我不懂英文也可以程式設計了。就算慢一點,但是我培養人更容易,我搞人海戰術不成嗎?
很可惜,不成。我們來說說一個程式設計師,哪怕他只是會寫垃圾義大利麵條程式碼的垃圾程式設計師。他用一門語言需要什麼前提條件呢?首先不是文盲,有至少中學生的數學水平,然後有一定基本的電腦操作能力,懂一點基本的程式開發常識,然後就是知道基本的語法了。還有嗎?沒了。有了這些就可以程式設計了。哪怕他的程式再爛再差,他確實在程式設計。
那麼中文程式設計能解決哪些問題呢?只有基本的語法了。有誰認為一個智力健全,不是文盲,有基本的數學知識、基本的電腦操作能力、基本的程式開發常識的人連26個字母都認不齊?一百來個單詞都分不清呢?只怕這樣的人小學都不能畢業吧。而且如果他真的連字母都認不齊,那麼什麼中文輸入法也是白搭吧。連中文輸入法都是白搭了,您這個中文程式設計怎麼辦呢?這人最基本的輸入都不成呀!中文程式設計不是笑話了嗎?
如果他成呢?可以用中文輸入法,可以進行您的中文程式設計。但是人家為什麼要這麼幹呀?C語言、Lisp語言、Java、C#,哪個語言我不能學不能用,為什麼非要用你這個中文程式設計呢?就因為你關鍵字是中文?我至於那麼白痴連著一百多個關鍵字都記不清嗎?我為什麼要放著這麼多的程式語言和資源不用,放著按兩下就是一個關鍵字的語言不用,非用你至少需要按3次的中文程式設計呢?這不是笑話嘛。
大家看到了吧,中文程式設計其實從一開始就是一個笑話。最頂級的那一層人已經知道了本質,知道這是一個笑話,沒有做。一些人嘗試了一下,發現是一個笑話,樹了個牌子“此路不通”,幹別的去了。還有一些人,並沒有認識到此路不通,仍然在進行著這個笑話。
可以說,如果現代計算機數學理論基礎沒有突破的話,計算機語言怎麼發展也不會出現真正的中文程式設計來。 如果真的到了人們只需要對計算機用普通話描述一下就可以做出程式來的那一天,我們當然可以說中文程式設計比英文好,因為中文資訊量大於英文。但是如果這一天真的到來了,我們還需要程式設計嗎?真正的矽基強人工生命已經誕生,人家已經可以自主進化了。
相關文章
- 程式設計師科學熬夜指南程式設計師
- IT程式設計各學科語言的介紹程式設計
- 學習程式設計 vs 學習電腦科學程式設計
- 什麼是偽物件設計模式物件設計模式
- 學習風變程式設計,學會的不僅僅是程式設計程式設計
- 程式設計師必備技能-科學砍需求程式設計師
- 學習Python程式設計哪種線路科學?Python程式設計
- 我姐和我女友是如何學程式設計的程式設計
- 在中國程式設計師是青春飯嗎?程式設計師
- 我是如何學習計算機程式設計的計算機程式設計
- 程式設計師被女朋友拉黑之後...這是我見過最“科學”的方法程式設計師
- 程式設計老手的哪些特點,是值得新手程式設計師學習的?程式設計師
- 【1024程式設計師節】程式設計師,你學程式設計的初衷是什麼?程式設計師
- 為何開始教中文女友學程式設計程式設計
- Vacanti:我是如何學習程式設計的程式設計
- 科學軟體十條簡單程式設計原則程式設計
- 計科190405程式設計題解程式設計
- 程式設計中國程式設計
- 注水、佔坑、瞎掰:起底機器學習學術圈的那些“偽科學”機器學習
- 盲人程式設計師是如何程式設計的?程式設計師
- 哪些事情是普通人並不知道的,只有程式設計師和電腦科學家知道?程式設計師
- 偽隨機數C語言程式設計隨機C語言程式設計
- 程式設計為什麼不用中文?未來用中文程式設計可能麼?程式設計
- 【譯】需要學習的是程式設計,而不是程式語言程式設計
- 新手學習程式設計的最佳方式是什麼?程式設計
- 視障程式設計師是如何程式設計的?程式設計師
- 如何學習shell程式設計?Linux運維學習shell程式設計是什麼程式設計Linux運維
- 免費的程式設計中文書籍程式設計
- 程式設計師是懶惰反覆無常的偽知識分子,果真如此嗎?程式設計師
- 碼農 駭客 程式設計師 開發者和電腦科學家的區別程式設計師
- 中文程式設計之思考 (轉)程式設計
- 首批程式設計師他們是如何程式設計的?程式設計師
- 電腦科學和Python程式設計導論week1Python程式設計
- 程式設計師如何邂逅真愛之偽攻略篇程式設計師
- 程式設計是枯燥的,除非……程式設計
- 我是如何學習一門程式設計技術的?程式設計
- 你是什麼時候”突然”學會程式設計的程式設計
- “我想學程式設計”的真正含義是什麼程式設計