據(jù)說漢語編程打破了西方對計算機語言的壟斷,使中國人擁有了完全自主知識產(chǎn)權(quán)的程序設(shè)計語言。據(jù)說隨著漢語編程的興起,將極大地推動中國信息化建設(shè)的進程。據(jù)說漢語編程已經(jīng)得到了部分省市有關(guān)部門的大力支持,很快就會形成一門發(fā)展?jié)摿薮蟮漠a(chǎn)業(yè)。然而當(dāng)不少人在了解到漢語編程后,卻懷疑它不過是某些別有用心之人泡制的謊言。那么漢語編程究竟是一項劃時代的技術(shù)呢,還是一則經(jīng)不起任何推敲的的傳聞?
8月6日,《21世紀(jì)經(jīng)濟報道》刊發(fā)的一篇標(biāo)題為《漢語編程欲顛覆WINDOWS 是技術(shù)還是謊言?》的文章告訴我們,早在2002年3月,中國人民解放軍總參科技委常委副主任、中國工程院院士錢七虎,信息產(chǎn)業(yè)部電子第六研究所總工程師吳克忠、中國科學(xué)院計算機軟件研究所研究院員仲萃豪、中國軟件標(biāo)準(zhǔn)實驗室副主任王芳等十余位離退休專家以新華社內(nèi)參的形式指出,中國人自己開發(fā)的漢語程序設(shè)計語言,是從根本上實現(xiàn)中文計算機系統(tǒng)的有效途徑,希望國家有關(guān)部門給予關(guān)注和扶植。此外,信息產(chǎn)業(yè)部教育中心總工程師沈林興還把五筆字型輸入法、漢字激光照排系統(tǒng)和漢語編程視為漢字在計算機應(yīng)用中的三大里程碑,“而漢語編程更具革命性意義”。
也許,我們沒有絲毫理由去懷疑眾多專家對于漢語編程價值的肯定,畢竟計算機語言是整個軟件業(yè)的核心技術(shù),是實現(xiàn)人機對話的工具,掌握了屬于自己的編程語言就意味著我們不再受制于人。但問題是我們能夠做到這一點嗎?從理論上講,漢語編程應(yīng)當(dāng)是一種以漢語為描述語言的計算機程序設(shè)計語言,在程序設(shè)計中體現(xiàn)了漢語語法和邏輯,符合中國人的語言習(xí)慣和思維方式,而不是英文程序設(shè)計語言的簡單漢化,或者是簡單地營造一個漢語編程環(huán)境。很遺憾的是,目前我們所能見到的漢語編程語言,就只不過停留這個層次上,并沒有取得任何實質(zhì)性的突破。事實上,從2001年到2002年間,北京市科委對某公司的漢語編程項目進行了5次評審,評審的結(jié)果是超過50%的專家并不認(rèn)可漢語編程的可行性。
經(jīng)過幾十年的發(fā)展,編程語言超過了2000種,但真正常用的仍然不過寥寥數(shù)種。一款優(yōu)秀的編程語言,需要長期的技術(shù)積累,需要提供大量的類庫,需要用戶的支持,這些都是發(fā)展?jié)h語編程必須解決的問題。有人認(rèn)為用戶肯定不是問題,因為中國人自然會首選漢語編程工具,不過僅僅有語言環(huán)境的優(yōu)勢顯然不足以吸引用戶,如果它的技術(shù)不過關(guān)的話。再進一步假設(shè),即便漢語編程達到了國外編程語言的水平,那么也未必能夠得到專業(yè)的軟件公司青睞,畢竟他們在選擇一種新的編程語言時,會更多地考慮開發(fā)平臺遷移帶來的高昂成本以及程序員的適應(yīng)能力。求伯君在談到漢語編程時就曾經(jīng)表示,漢字不同英文,同一個單詞有很大的差異性,所以漢語編程也需要你去記憶大量的語法,經(jīng)常編程的程序員將很難去適應(yīng)新的編程工具。由此可見,漢語編程要想得到專業(yè)軟件公司支持的可能性并不大,而一款無法得到專業(yè)應(yīng)用的編程工具是難以取得真正成功的,最多只能成為電腦愛好者的娛樂工具。
學(xué)過編程的朋友都知道,程序中絕大部分都是邏輯和數(shù)學(xué)表達式,與采用英語還是漢語來描述的關(guān)系實質(zhì)并不大。從編程語言的發(fā)展歷史來看,它經(jīng)歷了從匯編到高級、從面向過程到面向?qū)ο蟮霓D(zhuǎn)變,而沒有英語、德語、俄語等不同語種工具的說法。所以說把漢語編程與C++、Java之類的編程語言相提并論,未免顯得過于夸張。更何況,即便把C++、Java中上萬個用英文拼成的庫函數(shù)名用漢字來代替,對于編程語言本身的發(fā)展也沒有任何價值,充其量不過是一種 “漢化”工作。從軟件開發(fā)技術(shù)的發(fā)展歷史來看,歷經(jīng)了算法技術(shù)、結(jié)構(gòu)化軟件技術(shù)、面向?qū)ο蠹夹g(shù)、分布式面向?qū)ο蟆⒓夹g(shù)軟件構(gòu)件技術(shù)幾個階段,一種編程語言的生命力在于它能夠不斷地適應(yīng)新的開發(fā)技術(shù)特點,與它采用的語種沒有多大關(guān)系。漢語編程要想能夠生存和發(fā)展,必須吸收國外優(yōu)秀編程工具的優(yōu)點,把漢語編程應(yīng)用到最新的軟件開發(fā)技術(shù)中去。以我國軟件產(chǎn)業(yè)的現(xiàn)狀來看,要達到這個目標(biāo)都很不現(xiàn)實,還何談要在漢語編程中體現(xiàn)漢語語法和邏輯、符合中國人的語言習(xí)慣和思維方式?
筆者所知道的漢語編程工具主要有兩種:漢語程序語言和易語言。漢語程序語言是在1993年由北京百樂航天應(yīng)用技術(shù)公司漢語工控部的沈志斌發(fā)布的,最初為PC1.0版,是一個16位版本,只能在MS-DOS環(huán)境下運行。2000年,沈志斌組建了北京元易達公司,專門從事漢語編程的產(chǎn)品開發(fā)。經(jīng)過近十年的發(fā)展,漢語程序語言目前最新的版本為2.03,能夠在WINDOWS9X/NT環(huán)境下運行。易語言是曾經(jīng)和朱崇君一起開發(fā)CCED的吳濤于 2000年初開始開發(fā)的,這是一款Windows下全中文可視化編程語言,最新版本為 3.0。易語言自發(fā)布后,以其類似于VB的風(fēng)格和徹底中文化的特點贏得了不少電腦愛好者的青睞,雖然沒有具體的統(tǒng)計數(shù)字表明易語言的用戶有多少,但筆者在易語言網(wǎng)站論壇上發(fā)現(xiàn)有不少用戶提出了在使用易語言的過程中遇到的問題。不過就易語言和漢語程序語言這兩款漢語編程工具現(xiàn)狀而言,雖然它們都采用了漢語作為程序設(shè)計描述語言,但要與主流的程序開發(fā)工具相比,還有很大的距離,而且筆者估計這種差距在短期內(nèi)難以得到改觀。
事實上,把漢語編程定位在針對普通用戶的編程語言更為恰當(dāng),畢竟對于專業(yè)程序員而言,漢語作為程序設(shè)計的描述語言并沒有什么實際意義。更何況以國內(nèi)軟件公司的實力和水平,要想開發(fā)出達到微軟、Borland等國外公司的編程開發(fā)工具水平的產(chǎn)品,基本上是一項不可能完成的任務(wù)。開發(fā)易語言的吳濤在接受記者采訪時就表示,他開發(fā)易語言的初衷就為了想讓更多的電腦愛好者能夠加入到軟件開發(fā)的行列中來,因為他們中有很多人想學(xué)編程,但一看到滿屏都是英文,大多就放棄了。此外,對于廣大中小學(xué)生而言,因為計算機專業(yè)英語的水平相當(dāng)有限,所以漢語編程應(yīng)該是他們的學(xué)習(xí)編程知識的首選工具。
總之,我們應(yīng)當(dāng)正確認(rèn)識到國內(nèi)的軟件技術(shù)水平與國外的巨大差距,完全沒有必要片面地夸大漢語編程的重要性,為了眼前利益不切實際地炒作,畢竟這不過是一項既不成熟、前景也不甚光明的技術(shù)。當(dāng)然,筆者還是衷心地希望漢語編程的倡導(dǎo)者和愛好者們能夠務(wù)實創(chuàng)新,為提升我國的軟件技術(shù)水平作出自己的貢獻。
【轉(zhuǎn)】
我們技術(shù)網(wǎng)站的留言板上有個留言,“我們是搞中文編程推廣的專業(yè)網(wǎng)站,最近獲悉,貴站在搞語言開發(fā),為了推動中國中文編程的早日普及,特邀請貴站有管人員到我站做客,發(fā)布貴語言的開發(fā)情況,以及相關(guān)介紹和下載資源等。”
我們固然是開發(fā)了高級腳本語言Koodoo語言,卻并不是中文編程,說實在的,我對所謂中文編程還挺反感。
中文編程不是什么新鮮玩意,僅僅把編程語言中的關(guān)鍵字替換成中文,用C的宏替換就可以了:
#define 假如 if
#define 否則 else
#define 真 true
#define 假 false
壓根就沒啥意義。
在天涯社區(qū)有個弟兄對這個分析的很透徹,他認(rèn)為在操作系統(tǒng)API接口及相關(guān)文檔都是還是以英文為主的情況下,僅僅是語法中文化是沒有意義的,他還取了個憤怒的標(biāo)題,“漢語編程,在漢芯事件之后中國軟件界最大的騙局” ,跟帖也是一邊倒地對所謂中文編程口誅筆伐。
透視所謂的中文編程,背后的要害是“中國特色”。企圖在科學(xué)、技術(shù)甚至經(jīng)濟政治領(lǐng)域搞出所謂的“中國特色”。中國特色后面的東西,是保守和落后。就像今天在群里面討論的,網(wǎng)友“可想而知”說:“所謂中國特色,就是落后而又不承認(rèn)”,網(wǎng)友“東進語音板卡”也說,“中國特色太要命”,我最后的結(jié)論是:中國特色變成了遮羞布和擋箭牌,不和世界潮流合拍、不承認(rèn)普世價值的擋箭牌。
編程的真正復(fù)雜度在于邏輯和對具體編程領(lǐng)域的熟悉,而不在語言,就那么幾個關(guān)鍵字都學(xué)不會,還編程!確實要中文,你文檔中文就行了。
比如3D編程,主要難度在于3D數(shù)學(xué)和圖形學(xué),這兩個學(xué)精了,3D編程簡單的很。
不管是用C++,C,或者C#都一樣。
拿數(shù)學(xué)來說,都是用字母和數(shù)字的,包括希臘字母的采用,而不是用象形字。
現(xiàn)實證明了字母比象形字在科學(xué)研究方面具有更大的表示意義,象形字可以用來表達語言含義,但不適合科學(xué)領(lǐng)域。
再說讓老頭老太太之類的學(xué)編程實在沒意義,這種專業(yè)性的活就有專業(yè)人士來做,其他人只要會用軟件就可以了。
計算機編程歷來是入門容易精通難,你用中文編程讓一些根本沒必要學(xué)編程的人學(xué)習(xí)編程,其結(jié)果不過是浪費別人的時間罷了,如果他想學(xué)編程,那幾個英文關(guān)鍵字難不了他,真正對他有幫助的就是文檔的中文化。
數(shù)學(xué)沒有什么中國數(shù)學(xué),美國數(shù)學(xué),法國數(shù)學(xué)的區(qū)別,這些知識都是全人類共享的,實在沒有必要搞什么中國特色。