https://www.cnblogs.com/DSharp/archive/2013/05/28/3103298.html
漢語編程這個東西,很特別,先逐步分析推理下:
1.掌握一門開發(fā)語言不難,只要頭腦正常的正常人都可以做到.
2.掌握編譯器就很困難,好在現有的技術條件,門檻已經大大下降了,一般稍微聰明一點的程序員都可以掌握.
3.設計一門編程語言有一定門檻,它至少要求你了解各種語言,各種編程范式,一些計算機理論等,好在這方面有互聯網,只要花些時間就可以.
4.設計一門好的編程語言很難,但山寨一門語言是相對簡單的,比如可以山寨C#.
5.把復雜的語言編譯成機器指令很困難.因為工作量很大,很底層.而且技術相對更復雜.
6.好在現在有CLR和JAVA虛擬機這樣廣泛的中間運行時平臺.還有瀏覽器這樣的運行時環(huán)境,現代的語言不一定非要從底層做起,比如類scala,類coffeescript等,這并不妨礙它成為一門優(yōu)秀語言.
7.語言未必都必須是編譯式的,現在計算機這么快,各種運行時也很流行,比如javascript引擎,因為太流行太強大,連語言大師ander也去搞TypeScript.還有CLR和JAVA虛擬機.
可見,以上一些條件,只要避開困難部分,基于中間語言運行時,或者就做成腳本語言,把底層的難度化解了,完全可以發(fā)揮設計及想象力,更多只關注語言層面本身.讓一個掌握基本技術的人直接和ander站在同一起跑線上,你也可以去做一個YouScript.
但是計算機語言,更多的是表達計算,所以更"符號化",這就是為什么程序語言里有大量的"關鍵字","符號","數字"組成呢
如果按正常思路去做,那么傳統(tǒng)漢語編程,僅僅只會把"關鍵字"里的"英文單詞"代替成"漢字",這樣的東西頂多只是讓初學者容易上手.價值不大,不能從根本上發(fā)揮漢語的威力.比如易語言,除了中文關鍵字,所有的都是傳統(tǒng)編程語言的結構.所以它更適合初學者上手,但真正做開發(fā),它能實現的和關鍵字是英語的是一樣的.這就是現存漢語編程的誤區(qū).
當然,就是這樣一條路,也需要有大量人去做,去走,只有一個易語言,實現零的突破是不夠的.而吳濤先生創(chuàng)了這個零的突破意義非常大.
那么,以后漢語編程可能的方向應該怎么走呢?
首先我們分析下漢語跟其它語言的差別在哪里,比如英語
1.漢字數量龐大,有豐富的題材.
2.漢字是圖形化,結構化的,很直觀,表意能力非常強
3.漢字有個最最偉大的特點,就是可以輕松組成"衍生詞組",比如"刀",加個前綴就是"小刀","大刀","水果刀",等等.天生就是面向對象,抽象的.而英語根本做不到這點.
4.漢字有個最最偉大的特點,就是可以輕松組成"復合詞組",比如"對","象",本身就有其含義,組成"對象",又有另一層含義,天生就是面向函數式的.而英語根本做不到這點.
5.漢字有個最最偉大的特點,就是可以輕松"組合連接",比如"吃","飯",連接就是"吃飯",比如"先進","先出","后出",連接就是"先進先出","先出后出","后進先出","后進后出".天生就是面向組合及接口式的.而英語根本做不到這點.
6.漢字有個最最偉大的特點,就是可以輕松"造詞",比如"裸","婚",比如"戶","口",比如"哇","靠",本來沒關系的東西,一組合就成一新詞,而光漢字就有幾千個,這樣的組合基本上是無窮盡的.連量子計算機都足夠使用.而英語根本做不到這點.
7.漢語還有另一個特點,表意能力強.不用很精確.這在計算機發(fā)展初期,是個劣勢,但隨著現在發(fā)展過了初級階段,就變成了優(yōu)勢,現在很多計算都講究"云","模糊","統(tǒng)計",因為數據量太大了,不用十分精確,也無法做到精確.
比如:要分析"裸婚"這詞的某行業(yè)流行度,因為這詞就是一詞,很容易.但象英語就困難了,因為同樣概念很多時候不是一個單詞,就算一個單詞還有不同的時態(tài),還有單復數,根本無法象漢語這樣.
通過上面的分析,結合計算機的現有編程理論及技術,我們可以發(fā)現如下:
1.面向過程,和英語相當,沒有特別的地方
如:
if true then do XXX, 漢語是假如 是 那么 做 XXX
a = b + c, 漢語是 小計= 單價*數量
可見,兩者在計算表達式和語句上,是一樣一樣的.當然漢語的對中國人來說更直觀.
2.面向對象.英語那就比較弱了,漢語的強勢立即體現
如:
class county
class china : county
class UnitedStates : county
class France : county
class London : county
看上面的繼承及類型對應關系,因為英語單詞都是不相同的,沒規(guī)律的,你無法從字面量上迅速看出問題.漢語的是這樣的
國家
中國 : 國家
美國 : 國家
法國 : 國家
倫敦 : 國家
看,從字面量上,中文很容易就帶上分類,而不增加負擔,非常直觀.
3.函數式.漢語的超越,相當于量子計算機對傳統(tǒng)計算機的超越,不是一個層面的.
以設計輸入輸出加數列看,英文的就懶得舉例了,直接看中文的.
設計函數:輸入,輸出,先,后,棧,數據
通過函數式的組合:
輸入棧,輸出棧,輸入數據,輸出數據,先輸入棧后輸出數據...這樣的組合操作,看上去很自然,把程序變成字面語句.而要知道,幾千個漢字,能組成無數的詞組,而無數的詞組再組成段語,然后再組成...
這個強大的編程功能,量子計算機都夠用.
4.邏輯運算.
這方面用漢語編程也很有強項.比如
山 里有 廟,廟 里有 和尚.
可以推理出: 山 里有 和尚
這完全可以做出類似prolog的推理式漢語語言.而且操作和使用都很直觀.
5.正則表達式分析.
現代計算機數據處理,需要處大大量的數據,文本,語音,圖像.視頻
首先來看數據,圖像和視頻,這中西方是沒有任何差別的.略過.
然后就是自然語言的"文本"和"語音".差異就出來了.
看英語:english,法語,france.
如果用中文,都是兩個"字",每個"字"都不可以拆分的.處理到"字"就是最小單元.而用字母表達的語言,得處理到"字母",可見漢字算法是更快更容易的.但是漢字比字母多,這在算法上是以空間換時間.
然后是發(fā)音,可以看出,每個漢字對應一發(fā)音(當然有少數多音字),有很好的對應關系,而單詞不是這樣的.
綜上可以看出,漢語式遍程,可以模仿現有技術,但更主要的是完全可以有突破性的創(chuàng)新.這種創(chuàng)新可以結合上漢字, 漢語的特點,而這些特點經過上面的分析,首先是可行的,其次是有很大優(yōu)勢的.能不能出現體現漢語優(yōu)勢的漢語編程語言,相信只是時間的問題.