02.28 為什麼不能用漢字編程?

強人86639017


誰說不能的?不會不知道絕大多數英文編程語言都已經支持了Unicode命名標識符,當然也包括中文命名吧?

有興趣的可以關注本號,將會推出系列文章和教程,包括Java,JavaScript,Python等等,都用了中文標識符,看例程更易懂,不再需在線翻譯查單詞!

不信?上圖!

Java:

Python:

TypeScript:

現在是2019年5月。相信三年之內,國內的編程教程裡,中文命名的示例將比比皆是。

更多用中文例程的編程教程、技術文章,請關注本號--“用中文編程”!


用中文編程


有一門叫做易語言的編程平臺,就是用漢字編程。

但有沒有必要用漢字編程,在編程界有很多爭論。學過計算機原理的人都知道,計算機是二進制的,它並不懂任何人類的語言,計算機只明白0和1。所以,不管使用什麼人類的語言進行編程,都需要把它翻譯成計算機能夠明白的0和1。

但計算機編程的真正難題不在使用的人類語言上,而在於背後的數理邏輯。而為了效率以及更好的抽象思考,計算機語言應該儘可能不和人類語言相重疊。就像數學專門使用了另一套符號體系和人類語言拉開距離,以避免受到干擾。

因此,像易語言這種使用漢字的編程平臺,被認為適合小孩子入門,但真要學習編程,就像真要學習數學一樣,你還是得掌握另一套符號體系,才能實現高效。


裸猿的故事


按現在計算機架構,使用漢字編程的難度是很大的,也沒什麼必要,

自計算機在美國誕生之初,採用的是二進制,計算邏輯、存儲方式、指令編寫等等,到現在都沒有什麼改變,只是處理速度大幅提升。

為了更方便計算機的編程學習,從彙編、Basic、Pascal、C、C++、Java、Python等編程語言不斷的發展,但編程的核心思想並沒有太大的變化美國的二進制計算機標準一統全球后,世界上就很少人去做些基礎研究了,包括操作系統、高級語言等。大學的計算機課程:操作系統、計算機結構,還是用二十年前的教材。

漢字不是不能編程,只要把漢字詞組變成一個一個標準的命令集,即使這樣,也不會比現有的編程語言方便,代碼效率也不會太高。對於編程語言來講,越高級越抽象,學習起來可能更方便,但代碼執行效率可能就越低。比如:python學習容易,平臺適應性好,但代碼效率卻是低的。

漢字編程有沒有未來呢?當然有,什麼情況下才能顯示其優勢?

可以當聊天,作些假設及預想

1、利用漢語的語音識別優勢:解放程序員的手,通過語音來編程。

2、有統一、標準、高效、共享的代碼庫,通過接收語音指令,給出最優代碼模塊,實現所要功能

3、拋棄二進制架構,採用三進制計算機(前蘇聯有過樣機),對於計算速度大幅提升、存儲空間擴展、增加邏輯判斷選項等有極大的好處,這種架構更適合中文漢字的思考方式

漢字編程不是不行,是條件還不成熟。


我是漢字谷主,【專注說文解字、識字啟蒙、K12語文教育、海外漢語等漢字產業,古汀漢字谷 獨創的《人字學習體系》(人字學習法、快速識字、漢字創新思維、漢字國學、古詩文理解等)

】讓小學生也能讀懂國學經典!歡迎關注交流!


漢字谷主


我是計算機專業的,來說兩句。

漢字編程絕對是可以的,我想題主的意思應該是既然可以編程,那為什麼不用漢字編呢。舉個簡單的例子,漢字編程肯定要輸入漢字,而我們現在漢字輸入的最低單位就是26個英文字母,那麼是不是要先改變這一方式呢,如果這樣,就要顛覆整個it行業最基礎的架構,所有彙編語言都要改,這等於將全世界翻個底朝天。就算中文更優,但代價也沒人承擔得起。

再舉個例子,有一天某人發現了設計更合理的螺絲組件,如果全世界的已使用的螺絲都更換成他的,就可以收穫到非常客觀的收益,但就算如此,把全世界的螺絲都換掉可能嗎,這意味著所有的標準都要變,甚至涉及到很多社會準則、法律。想想就是不可能。

英文和中文對於機器而言就是0和1,高電平和低電平,中文和英文本質上沒有區別,只是誰先誰早。筆畫就可以輸入中文,文字的基本單元更少,鍵盤可能只要二十幾個鍵就可以了,比現在的至少小一半。從這裡看中文更優。


西木子Jay


大家的發言我再也看不下去了,因為都千篇一律,都沒說到根本上,都沒切中問題的要害!究其原因:人類發明的計算機不但不認識人類語言,就連0和1也是不認識的,因為0和1也只是人為用來代表低電位和高電位的意思,鑑於這種情況人類別無選擇只能用二進制的布爾代數算法來對應它,這才是目前計算機技術開發的基本原理,我負責任地告訴大家,這個原理壓根兒就不是終極的,也就是說,計算機的終極原理根本就沒有得到科學解決,可以說還遙遙無期,更悲哀的是計算機理論家和製造商們還從未想過要去突破這個原理,尋找到計算機的終極原理。毫無疑問,宇宙早已把電腦的終極原理解決好了,這就是人類大腦,故人類大腦是宇宙的終極產品,也是一部終極電腦(計算機),人類大腦解決了三個終極關鍵技術:一是解決了自主思維的問題,二是解決了能用所有人類自然語言進行思維的問題,三是解決了製造原理問題。計算機要想從原理上突破,必須向大腦製造原理和工作原理學習,基於適應二進制布爾代數算法的製造技術必須另闢溪徑,其設計原理上的傳統思想必須顛覆!人腦的三個終極技術要想應用到電腦上來,除第一個問題無法逾越外,第二、第三個問題肯定是能解決的,要解決這個終極問題必須應用全息技術(即全息算法、全息製造和全息的自然語言)才會有希望,到時,計算機不但能識別人類的自然語言,而且人類能用自己的自然語言輕而易舉的去寫代碼了,也就是說計算機的終極語言必須實現用人類自然語所取代,而漢語會成為計算機的終極語言是歷史的必然,因為漢字是世界上唯一具有全息元結構信息的文字。


用戶10908922454


誰說不能用的,編程運行本身就分為編譯和解釋。意思就是,一邊翻譯一邊運行,和一邊解釋一邊運行。

任何編程語言,都可以用(純文本)記錄。但是如果想把它作為程序,就需要配套的“語言翻譯程序”。比如寫了c對過程程序,就需要turbo c這個語言翻譯程序來翻譯成二進制機器語言。

也就是1和0的組合。就像電報一樣。只用兩種區別的聲音,來製造信息。

但是假如你對計算機硬件十分了解,比如很清楚cpu是怎麼進行計算的,一次計算,這個cpu有多大的123級緩存,又十分清楚硬盤和內存都是如何儲存信息的。那麼你可以學習機器語言,也就是二進制代碼了。

理論上越是基礎的語言,所能實現的程序越複雜。但是所能產生的bug也越多。因為雖然可以實現任何計算機機制,但是由於只用0和1對於工作人員來說,工作太多了。

而將機器語言概括成漢語,又有漢語的編譯器,就可以實現漢語編程。

我們甚至完全可以把if翻譯成如果,也完全可以把邏輯上的1看成開0看成閉。

只是做一個漢語的編譯器很難有市場,“易語言”。人們有思維慣性,認為從歷史上的彙編語言開始,就都是英語了。用漢語可能不好。又或者鍵盤本身就是英文的,我們用輸入法寫成漢語,再翻譯成機器語言。這種情況是在os健全下的,假如開機只存在類似於dos的語言操作系統,就很尷尬。

編程語言需要,通用性,邏輯性,普遍性。


Four-dimensional


首先,計算機編程是通過各種計算機語言描述的。也就是說編程不是用英文的。

計算機語言大多數是以英文單詞或縮寫做為各種邏輯指令的代稱,加上各自語言限定的語法或語言格式進行編寫的。

其次,計算機語言是一套完整的計算機計算規則的一種表達形式,是由於語言分析、語義解析在現在這個階段是達不到自然語言直接轉換成任務步驟的。所以計算機語言是一種獨立的存在。

第三,易語言這種使用中文字詞作為計算機語言的基礎邏輯指令詞彙,它也仍然是以計算機邏輯語言為根本的一種計算機語言。與C語言,Java這些計算機語言沒有本質區別。

最後,看評論很多人說的意思是能不能用中文的語言方式進行計算機編程,實際上不如等技術發展到人工智能發展出類似鋼鐵俠的人工智能助理賈維斯一樣,可以根據主人的語言語義進行自動編程,佈置任務一樣。

目前人類通過自然語言進行的編程,舉例:把大象🐘放進冰箱的步驟,一、打開冰箱,二、把大象🐘塞進去,三、把冰箱門關上。等計算機能理解自然語言了,就可以按步驟執行。這和中文英文無關。


怘惑


其實,任何語言來編程,都不是直接使用人類語言而是使用一種限定的語法句法來編程的,比如在正常的思維中,你肯定不會這麼說:

a=i

i=1

i++

print a

而得到的結果是一個無限增加上去的加一數列。這是在人類語言中絕不會出現的,所以,使用什麼語言為基礎進行編程,根本就沒有任何差別!

為什麼不用漢語編程呢?還是那句話我們編程從來都沒用過英語,只是用了英語中的一些單詞而已,那用漢語又有什麼區別呢?答案是根本沒有。

至於為什麼不用漢語為基礎,主要原因是,中國在計算機底層的研究上還是存在短板的,起步也更晚,當我們開始研究計算機的時候,人家都已經慢慢步入PC時代了。而同時期,我們的漢字,都還不能錄入計算機,也因為此,中國曾有一個思潮,就是取締漢字,因為大家都明白,未來的世界時計算機的世界,而漢字無法錄入,也就是中國也許將永遠無法進入計算機時代!當然事實證明,漢字錄入的效率已經慢慢超過英文錄入了,我們也該慶幸當初沒有取締漢字!

因為這種更高的錄入效率,漢字在未來成為計算機語言基礎的概率還是非常高的,這也需要我們的計算機研究者更向底層走,向核心走。

此外,說到漢語存在的歧義性,這個說法一直存在於各種網絡小說中,說漢語存在歧義,所以也許未來會成為人工智能的基礎語言,或者說,因為漢語的歧義性,所以現在不可能成為計算機語言的基礎符碼,這是非常可笑的說法,未來能不能因為歧義成為ai的基礎語言我不清楚,但是可以很負責任地說,現在不用漢語做基礎符碼,絕不是因為歧義。

我看其他人的回答裡,有人舉例:我親妹妹被打了,指的是我被打了還是妹妹被打了。

關鍵是,計算機不需要這種語言,計算機也不會去分析這種問題,人類在設計底層語言時,這種問題是已經想清楚的,假如這句真的用來控制計算機,那麼在設計語言時,設計師與計算機會有一個確定的約定,約定這一句是指我被打了還是妹妹被打了。或者直接讓這種類似的語句直接返回運行失敗!

真的會英語,你會明白,英語也有大量的歧義語句。

舉例來說:

she went to the bank

是指她去銀行了

還是指她去河邊了?

又如:

we saw the Indian dance

是說我們看過印第安人跳舞

還是說我們看過印第安舞蹈?

又如:

I know the gril next to the teacher watching TV

是說這個女孩看電視,還是女孩和老師一起看電視?

又如:

he likes his father better than his mother

是說他喜歡爸爸勝過喜歡媽媽,還是說他比他媽媽更喜歡他爸爸?

真的會編程,你會明白,這種歧義語句,對編程根本沒某任何影響。因為這些歧義早就在底層設計時就已經被排除了!!!

明白了嗎?


戲雪狐


程序員試著來回答一下,不喜勿噴。

首先闡明事實,目前是存在漢字編程的,只是英文編程佔據了我們的主流而已。

所謂編程,百度百科的解釋是讓計算機代為解決某個問題,對某個計算體系規定一定的運算方式,是計算體系按照該計算方式運行,並最終得到相應結果的過程。

所謂編程語言,也就是為了解決編寫應用程序所帶來的一系列問題而使用的一種助記符號。而計算機並不認識人類語言,無論是中文還是英文,最終都要轉化為二進制來執行代碼指令,所以從理論上來講,用漢字編程是可行的。

那麼,為什麼會造成普遍用英文來編程而不是中文呢,那是因為諸多原因啦。

首先,中文太博大精深啦,而且一般而言除正式場合之外很少會嚴格按照語法來說話的,什麼倒裝啦,省略,還有方言,多音字,語調,語氣,很複雜,電腦是搞明白很難或者需要付出很大的代價。

其次,一個漢字佔兩個字符呀,會很佔位置,而且平常我們編碼或者計數常用的也是字符或者數字吧,“a“只需打一個”a“就出來了,但”一“卻要打”yi“兩個啊,從速度和空間和習慣上來講也會是英文更佔優勢。

再者,計算機是美國出的吧,當時肯定用英文啊,先入為主。

謝謝閱讀。


伯禽哥


為什麼非要用漢字編程?日本人發明了ruby語言,為什麼不用日語,德國人發明了c++,為什麼不用德語,你們為什麼那麼狹隘?

用中文有什麼好?除了讓你們表面上能夠看得明白一點,算法渣的,底層渣的,邏輯思維渣的還是渣!

所有的語言寫出的程序,最終都要調用操作系統的接口,要聯網最終都要通過http, tcp等等協議,這些接口是用什麼寫的,這些協議是用什麼寫的?全部都是英文!最終不想做個只會copy的碼農,想要成為專家,你都要去學底層,去看各種協議,去研究算法,數學,這些東西和漢字有個屁的關係!

用漢字編程,除了讓你表面上看得懂一點,不懂的還是不懂,而且只會讓用漢字編程的人固步自封,無法和國際交流,API你都看不明白,最大的開源網站github上大量優秀的源碼,你更加看不明白。

在技術上要有開放的心胸,否則永遠成長不了。

計算機是一門科學,不是文學。小說可以不同國家不同民族用各自的語言文字進行創作,但自然科學不行,它至少要有一套通用的符號體系,否則每個國家搞一套,就無法交流,無法進步,計算機也一樣。


分享到:


相關文章: