漢語編程:程序員你們等不到了
先討論一下程序設(shè)計過程的本質(zhì)。程序員在做程序設(shè)計的時候,是不是真的在意他在書寫的語句文字的含義?其實并不是這樣子的。
一個合格的程序員,可能對于他一直用來編程序的算法語言所屬的自然語言(一般是英語)掌握的相當(dāng)不到位,但是這并不妨礙他寫出符合要求的程序來。為什么呢?他可能不了解他在寫的“If……else……”的英文含義是什么,他之所以照寫不誤,是因為他了解到使用這樣的結(jié)構(gòu)可以表達(dá)他想要的判斷和分支的邏輯。為表達(dá)這樣的數(shù)學(xué)和邏輯,他必須借用一些符號,而這些符號湊巧就是英文單詞。
因此,程序員眼里的程序中的英文單詞實際上并不具有詞匯學(xué)的意義,而僅僅是思想的一個表達(dá)符號。既然只是思想的表達(dá)符號,難道用什么語言來表達(dá)不是一會兒事嗎?比如,英語。比如漢語。
有人一定會問。既然用什么語言來表達(dá)都是一會兒事,那為什么不用漢語來表達(dá)呢?這個問題,觸及到問題的核心。
一個簡單的答案是:“漢字輸入比英文輸入麻煩的多”,現(xiàn)在的輸入還是靠拉丁字母鍵盤,在中國最普及的還是101鍵英文鍵盤,也就是我們通常說的OWERTY鍵盤。如果用漢語編程,拋開一切其他不論,首先就多了一個漢字輸入技術(shù)的學(xué)習(xí)成本。大家都知道,漢字輸入最簡單的是拼音。但絕大多數(shù)人的輸入并不快。真正快輸入的人基本上都在使用五筆字型等輸入法,但是那樣的輸入法學(xué)習(xí)周期就比較長。
回到剛才的問題:既然說到底都是為了表達(dá)思想,為什么不直接了當(dāng)?shù)厥∪ポ斎氕h(huán)節(jié)的學(xué)習(xí)成本?我知道法文輸入是有法語鍵盤的,德文輸入也是有德語鍵盤的,甚至有丹麥語這樣的輸入設(shè)備。在如此方便的輸入條件下,我見識過的歐洲國家大師級的編譯器實現(xiàn)者應(yīng)該也算不少了,怎么沒聽說過他們推行實名法語編程,德語編程或是丹麥語編程呢?
C++的設(shè)計者Bijame Stroustrup 就是丹麥人,世界上最杰出的程序員Edsger.W.Dijkstra就是荷蘭人。他們沒有自己民族的語言嗎?可是他們都是用英文來編程的。他們帶給世界的精品并不是通過自己的民族語言,而是通過自己民族的智慧。更何況,我們的語言使用一種有輸入成本的語言,這就是應(yīng)該拒絕漢語編程的一個有說服力的理由。
另外一個更有深度的答案是一位計算機(jī)系的老教授告訴我的,他在嵌入式系統(tǒng)和實時系統(tǒng)方面有著多年的經(jīng)驗,他指出,漢字的支撐環(huán)境對多種開發(fā)環(huán)境來說都是不可接受的,甚至連現(xiàn)有的高級語言都必須簡化成一個很小的子集,甚至直接指令集才能工作。他表示無法理解在嵌入式的代碼里,要漢字表示有什么好處。
實際上,即使只把漢語編程限制在普通的高級語言或第四代語言的編程環(huán)境中,也很難發(fā)揮漢語作為語言本身的優(yōu)勢。因為在哪些算法語言中的英語,也絕不是自然語言,而是形式語言。并且英語是結(jié)構(gòu)化的語言,而漢語明顯是適用于表達(dá)非結(jié)構(gòu)化的東西。在文學(xué)寫作里,漢語能體現(xiàn)出優(yōu)勢。但是在形式語言里就是一種劣勢。不用說程序設(shè)計語言,就是數(shù)學(xué)和邏輯的領(lǐng)域,也沒有什么自然語言,包括漢語的地位。
說到底不管什么語言,它就是表達(dá)一種形式符號。還有什么比積分號更能表達(dá)好“部分和極限”的概念呢?同樣,形式語言里之所以現(xiàn)在用拉丁字母來表示操作和結(jié)構(gòu),完全是為了打字方便,以及存儲量的考慮。如果一個人在做嚴(yán)肅的研究。他應(yīng)該會在專業(yè)的算法研究文獻(xiàn)中看到成篇的符號,而很少會看到自然語言這種不嚴(yán)謹(jǐn)?shù)谋硎?。一個工程師如果固于自然語言表示,而不能理解背后形式化的邏輯,那么他肯定不是一個合格的專業(yè)人員。
原文:http://www.cnblogs.com/youhaoxinqin/archive/2011/07/06/2099555.html
【編輯推薦】