步履蹣跚六十年:中文編程史話


讓時光回到上個世紀七十年代。


改革開放的春風吹拂大地,中國再次敞開了懷抱歡迎四方來客,大江南北到處洋溢著新氣象。此時的大洋彼岸,微型計算機技術正在蓬勃發展。1971年,英特爾推出了歷史上第一塊微型計算機芯片,十年過後,IBM製造了首臺個人計算機,微軟、蘋果等公司迎著這波風潮迅速崛起。

步履蹣跚六十年:中文編程史話

IBM PC 5150


然而,當時中國的計算機產業想要乘勢而起,卻還要面臨無數的困難,其中之一就是中文信息化。比如,如何用鍵盤輸入中文;如何讓計算機處理中文;如何在操作系統界面顯示中文;如何通過軟件編輯中文文檔等。

步履蹣跚六十年:中文編程史話

86年以前,新華日報的鉛字印刷


這是中國近現代史上,古老的中文所面臨的又一道檻。在這之前,中國已經進行了白話文運動、啟用了簡體字、頒佈了拼音,漢字再次簡化和漢字拉丁化也排進了時間表。日本、朝鮮、越南等領國,均對文字進行改革,不同程度地去漢字化。百年間,漢字文化圈丟城失地,僅剩的中華大地似乎也在棄它而去。


步履蹣跚六十年:中文編程史話

文字必須改革,要走世界文字共同的拼音方向

當時外國專家曾斷言:“只有拼音文字才能救中國,因為漢字無法進入電腦。”,國內某知名刊物也稱,“方塊漢字在電子計算機上遇到的困難,好像一個行將就木的衰老病人。歷史將證明,電子計算機是方塊漢字的掘墓人,也是漢語拼音文字的助產士。”


當然,這些預言統統都沒有發生。1975年,王選開始領導研製計算機漢字激光照排系統,使中文印刷業告別了"鉛與火",直接跨進"光與電"的時代。1983年,王永民發明了五筆輸入法,真正解決了漢字的鍵盤輸入問題;同年,嚴援朝研發了第一款漢字磁盤操作系統CCDOS,有了中文操作系統;1985年,倪光南發明的聯想漢卡開始銷售,奠定了這家國際品牌之名;1988年,求伯君研發了中國大陸第一套文字處理軟件WPS,至今不衰。


步履蹣跚六十年:中文編程史話

CCDOS


那是一個屬於中國第一代程序員的年代。看衰中文前景的預言被逐一打碎,中國人要去解決中文信息處理的各種問題,軟件漢化、手寫識別、語音輸入等技術等均有人涉足。我們可以想象,在當時,除了必須解決編程代碼使用中文字符串的問題,實現和運用一種中文編程語言,也是肯定會有人去做的事情。

中文拉丁化的趨勢在80年代被徹底扭轉,但改革開放後的中國,又必須放開懷抱去學習國外先進文化。當時國內還有大把的文盲,受過良好英語教育的人更是寥寥無幾,這就需要無數的英語人才。1977年恢復高考後,中國即開始在大城市恢復中學英語教學;1978年,英語再次被列入高考科目;1986年,我國開始實行九年制義務教育,初中開始全面教授英語。現如今,活躍於我國各大IT公司的八零後程序員,正好趕上了這波好時候。

步履蹣跚六十年:中文編程史話

中華人民共和國義務教育法



實際上我國最早的中文編程語言,可以追溯到上個世紀60年代初期,它是由中科院計算機所設計的BCY語言,同時這也是我國最早的實用高級程序語言。仲萃豪和董韞美作為我國第一批計算機學家,以ALGOL60語言為基礎完成了具體的設計和編譯器開發。


所謂BCY,是指“編譯程序語言”的漢語拼音縮寫,運行於我國自行研製的第一臺電子管大型通用計算機119計算機,由磁鼓、磁帶進行輸入和輸出。那麼由BCY語言編寫的程序到底長什麼樣子呢?很有幸我們今天仍然能在知網上搜到幾篇相關的論文,得見這些祖師級代碼的真容。


步履蹣跚六十年:中文編程史話

BCY語言繪圖語句 張金山 1981



雖然BCY語言在進入微機時代後被迅速淘汰,但不得不說,中國的第一代計算機科學家,就已經意識到了中文在編程語言中的價值,即便他們個個名校畢業,有歐美留學背景,有些甚至當選了兩院院士。


在那個時代,除了中國大陸,港澳臺地區的有識之士同樣在為此努力。比如被譽為“中文電腦之父”的朱邦復,早在五筆輸入法之前,就在1976年率先創立了“倉頡輸入法”;1980年,他與宏碁公司共同發佈具有“中文操作系統、中文編程語言、中文套裝軟件”的天龍中文電腦;次年,又發展出中文終端,之後他研發了自己的“漢卡”。


“中文培基”就是朱邦復於80年代初期發明的入門編程語言,它的語法和BASIC語言基本相同,進行了簡單漢化。

步履蹣跚六十年:中文編程史話

中文培基


幾十年過後,現如今已經很難在網絡上找到中文培基的更多資料,但如果我們用谷歌圖書進行搜索,還可以找到一本華通電腦1983年出版的《小神通中文培基語入門》。只可惜沒有電子版本,所以無法窺見更多信息了。


在中文培基之後,從上個世紀八十年代到現在,各種中文編程語言被海內外華人程序員不斷的創造出來。這些語言的層次不一,語法各異,有些具有完整的編譯和開發環境,有些可能只是簡單的漢化,它們多數只是對國外編程語言的生硬模仿,並沒有找到適合漢語的編程路徑。


比如誕生於本世紀前十年的“周蟒”和“中蟒”,是基於Python2開發的中文編程語言;丙正正基於C++開發;O語言基於彙編語言開發;夥計培基基於BASIC語言開發;習語言基於C語言開發;中文小海龜基於Logo語言開發;PerlYuYan則只是一個Perl模塊。


步履蹣跚六十年:中文編程史話

90年代《軟件世界》文章的中文彙編語言


進入九十年代,在前總統克林頓執政時期,美國開始了著名的信息高速公路計劃,互聯網時代正式拉開序幕。在中國,經歷過八十年代的蓬勃發展後,到了九十年代初期,國人曾驕傲地說,“只有中國掌握了計算機漢字處理技術”。同時,逐漸步入中學階段的80後,不少已經能夠在高中階段接受基礎計算機操作培訓。

可到了九十年代末,中國的軟件產業遭受了重大挫折,連中文處理這塊最後的領地也要失去了。

Windows操作系統經過多年的持續改進,終於在Windows3.1後取得巨大成功,計算機軟件開始進入圖形化和規模化時代,一個程序員就能撐起一款操作系統、搞出一款辦公軟件的時代結束了。Windows3.2開始直接集成了中文支持,直接讓諸多依附MS-DOS的中文DOS系統失去了意義,大量盜版軟件的流行,讓OFFICE辦公軟件全面佔領國內市場,規模弱小的國產軟件公司則因盜版直接失去了收入,製表軟件CCED逐漸衰亡,文字處理軟件WPS苟延殘喘,在信息化行業總產值不斷攀升的情況下,國產軟件卻每況愈下,直到今天也沒能翻身。


步履蹣跚六十年:中文編程史話

Windows 3.1


據說目前全球有幾千種編程語言,可是一個程序員能熟練掌握的,通常不過一兩種,因此目前真正流行的編程語言也就十來種而已。剩下的,有一小部分在圈子裡使用,用於解決特定場景下的問題,絕大多數的語言都沒機會長大就會中途夭折。也就是說,在當時中國軟件行業整體衰弱的大環境下,這幾個中文編程語言,死掉是常態,活下來才是偶然。


而在今日,唯一活下來的中文編程語言,正在程序員社區語言鄙視鏈的底端艱難生存,垃圾、騙子、病毒、從入門到入獄是它的代名詞,它就是易語言。它的開發者吳濤不是科班出身,沒有名校背景,沒有留學經歷,連時代似乎也從軟件英雄主義進入到互聯網英雄主義了。然而他卻完全依靠個人,開發出了這款功能完備、配套工具齊全的編程語言。


步履蹣跚六十年:中文編程史話

吳濤和他的易語言

1998年,當時中國軟件產業已經風雨飄搖,DOS版本的CCED已經無法適應時代,視窗版本的CCED98也並沒有讓這款軟件翻身。當年,吳濤加入CCED2000項目開發組,1999年,CCED2000面世,但市場反響平平,此後逐漸走向消亡。


同年,我國大學開始全面擴招,保證了接受了義務教育的80後程序員們,能夠順利進入大學接受正規的計算機編程教育。


離開CCED的吳濤認為阻礙我國軟件事業發展的根本原因在於,中國人沒有真正屬於自己的編程語言,特別是針對初級用戶的編程語言。對於那些水平高超的專業程序員來說,編程語句的中文化並不具有什麼太特殊的意義,有時甚至顯得多此一舉。但是對於那些佔了絕大多數的初級用戶而言,能夠使用自己熟悉的中文來進行程序設計,無疑是一種非常理想的選擇。


在長期的開發實踐中,雖然吳濤已經能夠熟練地應用各種國外開發工具,但他依然對此耿耿於懷。於是在2000年,他開始獨自開發易語言。起初的開發和推廣遇到了非常大的困難,直到2001年8月,當時的天極網編輯王重浪通過遠程採訪的形式,對他進行了第一次正式報道,易語言開始迅速為大眾所知。


步履蹣跚六十年:中文編程史話

易語言代碼


當年秋季開始,教育部要求全國城市和縣城小學逐步開設英語課程。如果說一門流行編程語言通常需要十多年才能興起的話,易語言未來的潛在目標用戶群體,可以說從出生那天起就已經消失了。



一門編程語言的成功離不開天時、地利、人和,就好像沒有互聯網,就不會有php的流行一樣,沒有Chrome瀏覽器,就不會有今日的Node.js。對於易語言而論,當時中國的電腦很不普及,接受過良好英語教育和大學教育的人還非常少,恰好當時學電腦是全民風潮,計算機專業逐漸成為熱門專業。易語言的出現解決了許多基礎較差的初學者入門編程的難題,全中文界面和代碼,便捷的可視化開發環境,豐富的類庫,互聯網普及後迅速壯大的社區,讓初學者可以在極短時間內入門,搭建起高大上的GUI程序。

步履蹣跚六十年:中文編程史話

易語言開發環境

應該說,人們對新生的易語言,雖然也有非議,但更多的是讚譽。王重浪在這篇名為《中文編程不再是夢想》的報道開頭寫到:“用中國人自己的母語編程?似乎是天方夜談。然而,這樣一種夢想正在變成現實。”


吳濤此後迅速成名,2004年可謂他的人生巔峰。他被《程序員》雜誌評為“影響中國軟件開發的20人”之一,和求伯君、譚浩強、李開復、王志東、陳天橋、雷軍、丁磊、張小龍等時至今日依然響噹噹的人物並列。


當年吳濤成立了公司,2005年易語言被列入國家火炬計劃,開始在一些中小學推廣,2007年,易語言獲中國十大自主創新軟件產品獎,為當時暗淡的中國軟件產業,帶來了一絲光亮。


步履蹣跚六十年:中文編程史話

影響中國軟件開發的20人


然而,吳濤的努力和時代造就了易語言,但吳濤的沉寂和時代的變革,又讓易語言很快陷入風波。2004年,他在一家名為大友的大連房地產公司的五千萬投資下,成立了大連大有吳濤易語言軟件開發有限公司,任公司總經理。此後吳濤創新者的人設很快被蹩腳商人的形象所代替,他在互聯網野蠻生長的時代,把精力放在了賣軟件授權和拉政府扶持上,語言本身卻再無重大創新,各種問題也沒有解決。


易語言雖然提供了全面的中文支持,但它高度類似Visual Basic。在那個時代,以模仿起家在中國本屬常事,但此後易語言卻沒有走上逐步創新發展的道路,沒有找到最貼近中文習慣的編程表達方式,一直揹著抄襲、騙子、綁架的罵名。


步履蹣跚六十年:中文編程史話

電腦報2004年關於易語言的報道


到了新世紀,商業編程語言經過激烈競爭,只剩下幾個巨頭;Windows桌面軟件開發市場逐步下滑,哪怕老牌的Delphi也日漸沒落;新興編程語言幾乎都是開源免費、跨平臺、多用途,個個都標榜簡單易學。而易語言閉源、收費、進展緩慢、社區乏力,64位、跨平臺、異常處理等功能統統沒有,這讓他無法適應大型軟件開發。


編程語言畢竟要靠實力說話,而不是靠情懷。與此同時,大量從小接受英語教育,通過擴招進入大學,接受正規科班教育的八零後程序員,正被教育體系流水線般源源不斷的供應給迅速壯大的國內互聯網公司。對於這些新生代程序員而言,英語的障礙和入門的不易已經不是阻礙他們的難題;對於這些大量使用開源技術的互聯網公司而言,不能閱讀英語文檔的程序員,很難獲得工作機會。


而大量用戶使用易語言開發遊戲外掛、電腦病毒、黑客軟件,使得易語言負面新聞不斷,語言本身的特點又導致極易被殺毒軟件誤殺,使得許多愛好者不得不改換門庭。

在中國程序員群體飛速增長的情況下,易語言雖然依然保有部分用戶群體,但中國盜版軟件的大環境,讓養活公司的註冊費都收不到。到了2012年,易語言已經到了在官網長期“賣身”卻無人問津的地步。

步履蹣跚六十年:中文編程史話

四處求存的易語言



在易語言之後,中國又出現了其它一些個人主導的中文編程語言,但都寂寂無名。現如今,各種通用軟件、遊戲、電影紛紛推出官方中文版,但在各種專業領域,英語卻有大一統的趨勢。比如2017年,國內航空管制開始強制使用英語交流,而在學術上,發表英語論文似乎已經是許多專業的科研人員成為學術大牛的唯一選擇。


其實早在八十年代,那個時候的技術人員,就已經對中文編程語言的意義有了準確的認識。在1983年,一篇名為《高級語言擴展漢字處理功能——對COBOL和FORTRAN語言賦予漢字處理功能的實現》的文章開頭,就精闢的寫到:


“儘管這些語言在世界上應用非常普遍,但它們基本上都是以英語為基礎的。計算機技術在我國許多領域的應用中,必須首先解決漢字處理問題。另外,若設計以漢字為基礎的高級語言,雖能解決我國的一些問題,但它卻失去了國際標準化這一極大的優點。”


中文編程,以及中文在其它類似專業領域的逐漸式微,其實不在於它們沒有意義,而在於融入英文的生態更有意義,至少在當前是這樣。


誠如這個世界,統一與分裂,保守與創新,合作與對抗,是一個恆久不變的話題,如何根據時勢取捨折衷,才是智者所為。中國近現代化過程中,大力吸收了歐美文化,但卻沒有拋棄傳統文化;中國阻止了漢字拉丁化,選擇了全民學英語;中國解決了中文信息處理的一系列問題,卻使用英語編程以便廣泛利用國外成果和開源社區的力量。而就開源社區本身而論,雖然程序員們在極力的避免造輪子,但又總是在造輪子。


正所謂,流水不腐,大浪淘沙。


就在前些天,GitHub上一個叫做文言文編程語言的項目火了。在新一代中國程序員中的風雲人物尤雨溪的帶頭點贊下,短短几天內就收穫了萬星。文言文編程語言更貼近中文習慣,而且已經超脫了現在流行的語言,可以說,為如今一潭死水的中文編程語言攪起了一點漣漪,原來中文之美和代碼之美,可以如此的統一和諧。


步履蹣跚六十年:中文編程史話

wenyan-lang


在一片叫好的同時,來自國人的非議自然也紛至沓來,“史上最爛編程語言”,“為什麼不用甲骨文”等的評價開始出現。不過相比“被中國人罵的最慘的編程語言”,文言文編程語言的待遇比易語言還是要好得多。我們都愛新生命,願意給一個嬰孩無限的期望和機會,但同時,我們也應該尊重前人的努力,雖然某些時候限於能力和命運,幾乎註定會失敗。


另一方面,中文編程並不等於中文編程語言。


最近兩年,一個叫吳烜的硅谷工程師活躍於v2ex和知乎等社區,宣揚他的中文編程理念,就是基於主流編程語言開展中文編程實踐。他認為程序員社區對中文編程有兩大誤區,第一是“只有中文編程語言才應該用中文命名標識符”,其次是“中文編程語言只要完成中文語法設計就行”。


中文編程常被詬病者,就是語言中有限的關鍵字用什麼語言並不影響編程思想的表達。但代碼中關鍵字只是少數,更多的是各種命名,這也是許多初學者在學會了if、for等語句後就止步不前的重要原因之一。中文標準庫的設計和積累,則是語言實用化的最重要因素。像易語言也是因為附帶豐富的中文庫,讓新手可以非常迅速開發出一些實用的小程序。


吳烜的理念是否得當我不得而知,能否實現也難以預料。即便是全面英語的今天,英文命名、英文註釋、英文文檔,依然困擾著許多程序員。另一方面,在流行語言已經擁有巨大的標準庫和第三方開源項目的情況下,這個輪子是否值得造,也值得商榷。


也許歷史能給我們答案。1919年,為了表示對一戰最大贏家美國的尊重,《凡爾賽和約》成為世界上第一份正文用英語書寫的國際條約。這標誌著英語的崛起,法語的衰落,此後英語逐漸成為全球通用語言,至今剛好一百年。一百年對於人的生命而論太久,但對於一個民族卻很短。


行路難,行路難,多歧路,今安在? 長風破浪會有時,直掛雲帆濟滄海。


作者優秀文章推薦:


分享到:


相關文章: