爲什麼中文不能用來編程呢?

大街鳳凰島


就我們平時所接觸到的常用編程語言,Java、C、Python 似乎全是用英文編程,更確切地說,應該是用 26 個字母以及一些符號來進行的。怎麼就不見人用中文編程呢?

易語言是中文編程語言

其實在 2000 年的時候,易語言就以一種中文編程語言的方式出現,不得不說極大地降低了程序學習的門檻和難度。雖然經過了一段時間的發展使用,但是使用中文仍然存在著大量不便和存在其他問題,而沒能成為主流的編程語言,直到現在使用的人也不多。雖然不為人所熟知,但是不能否認它的存在。一些非程序員群體並不知道這個語言,就有了這樣的問題。

主流編程語言也不能算是全英文

目前來說,Java,Python 等語言仍然很火熱,對於不懂程序的群體來說,看一眼代碼,就覺得全是用英文編程,其實不然,真正稱得上英文的也就是那些關鍵字,而這些關鍵字總是那麼一些常見的,如 class,static。所以,更準確應該說是通過 26 個字母和一些符號來編程的,Java 語言有它自己的語法,其他語言也一樣。而這些編程語言中的語法跟英文的語法表達並沒有直接的關係,也其實不能算是英文編程。

編程工作國外先行

為什麼最後留下來的是用字母符號組合的編程方式呢,不是用中文加符號呢?其實也有一種先入為主的勢態在裡面,早些年計算機技術出現的時候,都是先從國外開始的,這其中包括電腦,通信網絡,二進制,各個編程語言,操作系統,開發工具等等這一整套,廣泛採用英文並不奇怪。其中的編程語言就採用了更加國際化的字母符號組合,彼時中國在相應領域並沒有多少話語權,再者使用中文相對來說侷限性很大,相比於已經成熟的其他語言,很難與之抗衡。

中文漢字編程理論上可行但是目前的開發環境已經不再允許,很難被人接受,也沒有使用空間。一開始那些主流編程語言的創立就是用英文字母進行的,一直延續下來,被越來越多的開發者接受和使用,生態已經十分完善。


stormzhang


不是中文不能用於編程,而是目前來說並沒有一個成熟的中文開發者生態!

  • 中文編程早就有,但不能當飯吃

其實不是沒有中文編程,軟件工程師吳濤先生,現在是大連大有易語言公司的總經理,就已經開發出了一套中文編程語言,並且有開發工具,但是因為應用場景有限,生態不夠,而且語言本身也具有很大的侷限性,所以沒辦法得到普及。

2001年1月:發明了中國自主知識產權的中文編程語言——易語言。總體設計、詳細開發、所有的關鍵技術全部由本人完成,70多萬行的源代碼也均由吳濤本人具體編寫實現。

這是關於易語言誕生的介紹,但是這款語言終究不可能像Java、C、C++、C#、JavaScript等等編程語言一樣,成為主力開發群體的編程語言。並且語言在設計上有很多問題,而且很多設計參考了微軟的VS等體系,再加上沒辦法獲得開發者生態支持,自然沒辦法成為主流語言。

  • 為什麼沒法普及,因為歷史沿革

大家要明白一個問題是,那就是計算機科學技術,這門學科領域從一開始就是來自英語世界的,從操作系統,網絡通信,TCP/IP協議,編譯原理,算法,數據結構,編譯原理等等包括你今天說的internet互聯網,幾乎全是那群用英語的人發明的。

你瞭解的unix/linux啊,macOS啊,Windows啊,vim啊,emacs啊,C啊,C++啊,Java啊,swift啊,Lisp啊,visual studio啊等等與計算機有關的工具都是基於英語環境以及英語使用者設計的,這就是根本原因。

舉個例子,有幾個人會用毛筆寫英語?有幾個人會用川菜的做法做沙拉?又有幾個人會用古箏和枇杷給搖滾樂伴奏?

  • 基礎研究差很多,我們仍需努力

其實這是歷史沿革,也是沒有辦法!

我們在基礎研究領域,比如操作系統,半導體芯片,深度學習,開發生態等等基礎研究領域還跟美國有很大差距,這是沒辦法迴避的事實,要知道我們國家有計算機比美國落後了多少年,在核心專利核心技術領域的差距不是一天兩天能縮短的。

好在今天因為移動互聯網的發展,我們在應用開發領域的進步已經是行業領先了,未來這些大公司將會逐漸承擔起底層生態建設的重任。

最後總結是我們不能夜郎自大,但也不要妄自菲薄!

我們目前已經有了很多進步,我們的鳥哥惠新宸就是PHP核心開發組的三個成員之一,我們也有白鷺時代這麼棒的開發者工具生產商,我們還有Hbuilder這麼棒的前端開發工具,餓了麼基於Vue做出了這麼棒的element,螞蟻金服打造了ant design這麼棒的設計語言,阿里巴巴做出了最棒的商業化Java代碼規範......

作為一個一線技術行業從業者,我想說的是:我們有差距我們知道,但是我們從來沒有放棄過努力!


EmacserVimer


作為科班出身的碼農來幫你解惑吧,其實根本沒有英文編程還談什麼中文編程,事實上我們都是用C語言、C++語言,JAVA語言,Python語言編程,它們都有自己的語法,用的也不是英文語法。編程中用到的英文實際就是一些關鍵字(類名,函數名,變量名等),都是很簡單的字符,其實跟自然語言關係不大,對機器而言最後都是0和1,跟自然語言更沒關係。編程對國人不友好的其實是好的教材、資料、說明都是英文的,閱讀起來困難一些。

程序員編程、然後編譯、處理器執行,這就是程序,這裡面編譯器還是老外寫的呢,操作系統底層還是C語言。不考慮這些,先用C語言寫個最簡單的hello,world看看換成中文是什麼樣的

#include
int main(void)
{printf("\\nhello world!");
return 0;
}

翻譯成中文就是

#包含
整型 主函數(無返回)
{打印(”\\回車換行 hello world!");
返回 0;}

明顯更麻煩,而且沒必要,你就是英文再爛這些簡單的單詞還是可以記住的吧,事實上編程語言也一直在改變,最開始都是0和1,然後因為太不友好有了彙編語言,後來又有了C語言,再後來可視化的IDE編程崛起了,對於大眾來說有更簡單的編程,比如按鍵精靈這樣的,還有一些啟發智力的編程機器人,都是最簡單的編程,而評論里人們說的易語言啟蒙編程還行,工作就別想了,勝任不了訓練的是一種編程思想,如果你糾結於中文還是英文,即便全改成中文你也學不好。


補充

中文和英文都是自然語言,不是編程語言,如果認為編程的門檻是幾個英文單詞的化那這人對編程的認知基本是零。

C++ 發明人都是丹麥人,母語是丹麥語。

Python 的發明人是荷蘭人,母語是荷蘭語。

Ruby 的發明人是日本人,母語是日本語。

Pascal 的發明人是瑞士人,母語估計是德語。


萌哈科技


計算機的編程是指計算機為了解決某一特定問題,發出特定指令,而設計的一種特殊語言代碼,也稱之為程序代碼。電腦接收到這一類的程序代碼信息之後,會執行特定行為來獲取最終結果。使用的程序過程中,大家多使用英文和數字來編寫代碼,而很少見到中文代碼。


其實使用中文編寫代碼是可以的,因為任何一種代碼,最後都會轉化成二進制,來完成最後的指令操作。對於其他職業工作人員,也許對程序瞭解並不多,但是對多數程序員來說,他們接觸的的易語言,就是使用中文語言編制的代碼。但之所以不大量使用中文來編寫代碼,還是因為在使用中文編寫過程中,存在的問題比較多,而且在使用的過程中並不是很方便。


第一,中文的語言博大精深,有很多的倒裝句和省略句等多種形式的語句,還包括多音字等,這樣電腦不能夠很快的識別,運轉速度較慢,且在使用的過程中,代碼也會顯得比較臃腫,不簡潔美觀,也不方便其他國家使用者識記,因此,相對於中文來說,英文26個字母優勢更大。而且我們使用的參數都是字母加數字的組合,如果在填上中文就會顯得非常的累贅,畫蛇添足了。


其次,我國的計算機事業發展的相對較晚,我們多采用的是外國計算機編程代碼,如果有國內另外翻譯或者是編制一套代碼系統,並不是看上去的那麼簡單,過程之中比較繁雜,會耗費大量的人力和物力,不符合當下發展國情。


但是我們相信在不久的將來,我們國內也會有一套成熟完善的編程語言,等到我們國家的計算機發展真正的趕超外國,主導計算機領域發展時,一定可以研發出一套更優質的中文語言編程。


決勝網


首先,編程是可以用中文的。只不過大部分的編譯器都是外國人寫的,國人寫的編譯器寥寥無幾。那怎麼用中文編程呢,其實很簡單。

比如用中文編程,打印hello world,那可以把所有的英文字母,英文字符替換成中文的。同樣能夠用文中編程,實現打印效果。替換代碼如下:

QString tmp = str.replace("主函數\

火星一號


寫那麼多字幹嘛,這個問題很簡單就可以回答...

理由如下:

1.編程語言初創時本身就基於英文字符指令,在字節上佔有優勢(中文佔兩個字節)

2.中文不是國際通用語言,所以也少有團隊專門去開發漢語版的編程軟件。

3.中文也可以實現編程,只是沒有必要,一是因為要把中文語義轉化成英文指令這樣的事情非常麻煩,也許只有哪個程序員當做愛好自己研究,二是中文語言並不通行,所以多此一舉。

所以結論是,中文可以用來編程,前提條件是必須有一款專門適配中文語義的編程軟件或者編譯器,你寫這個編譯器還是得用英文來寫,寫出來適用於哪一款底層語言呢?不管是C++、Java、還是Python,這些語言都在不斷升級,那你中文也要跟著不斷升級,這對於開發者來說簡直就是噩夢,誰會為了這個事兒去花心血研究?

明白了麼?


貓眼智客-楊明慧


誰說中文不能去編程?中文也是有編程語言的。大家可能不知道有一款編程語言叫做易語言,他也是用中文來編寫的,它誕生的時候是十分的,也很抓眼球,但是他沒有走好,發展的也不壯大,以至於很多人都不知道還有這麼一款編程語言。

中文是可以編程的,只不過目前對於我們來說,中文編程還是比較的麻煩,為什麼這麼說呢?首先,我們的鍵盤都是輸入我寫字符和字母,而電腦裡要顯示中文,必須通過這些字符和字母進行一次轉換,也就是我們的這些輸入法。對於程序員來說,你能用字母來完成的事情為什麼還要再轉換一次,來增加工作量呢?這也是中文編程,不溫不火的原因。

所謂編程語言,就是進行人機對話的一種語言。提起他只認可101010這種二進制的代碼,最早出現的就是機器語言,因為機器語言太難控制了,後來出現了一種過度的語言,叫做彙編語言,彙編語言比機器語言要來的簡單,但它也屬於一種低級語言,後來的高級語言的出現,就是把人們常用的語法和機器語言進行近似化了。編程語言的發展是越來越簡單,也越來越接近人的正常的語法。這是一種大的趨勢。

根據這種趨勢來分析,以後,中文作為一種編程語言也是會在編程語言的世界裡佔有一席之地的。一般不會在現在這種鍵盤錄入的時代。

中文作為一種編程語言,我估計會在下一個智能輸入時代,那時候語音,手勢可能會作為編程的一種模式。中文到時候會大行其道。


歷史麻辣鍋


為什麼中文不能用來編程呢?目前是有中文開發語言的,只是作為習慣了英語編程的人來說,總感覺有些彆扭而已。而且要推廣使用中文開發語言,起碼還得相當長的時間來推廣,但能不能達到效果則不好說了。


絕大部分公司或個人不用中文開發語言,這裡有習慣。畢竟絕大部分人都是從英語開發語言起步的,已經習慣了英文開發語言的思維邏輯和使用習慣,這不是一朝一夕可以改變的。比如在英文開發語言裡,絕大部分習慣了判斷循環等這樣的循環例子,如果用易語言這樣的中文寫出來,看著習慣還是不習慣呢?

判斷循環首(信息框(“本源代碼在這個論壇下載的?” + #換行符 + ,) = #否鈕)

關閉系統(#重啟,真)

結束()

判斷循環尾()

這只是極其簡單的一個例子,作為傳統英文開發語言過來的人還是有些不習慣的。


計算機畢竟是從英文系國家發明並開始的,英語可以說是目前使用最廣泛的語言,是適合於計算機的,其字母容易記。即使英文開發語言中有一些比如語法等等單詞,但要記住只要花時間也並不難。英文已經從小學就在開始學習了,要記住這些編碼的英文對於受到一定教育程度的人來說不會有太多的障礙的。對於中文可以編碼來說,也只是使用了極短的時間,漢字相對較複雜而且是雙字節,是不是還有其它意想不到的效果,比如反病毒等等,還需要進一步驗證。


中文開發語言的生態建立不容易。就拿易語言為例,其最早可追溯到2000年就發佈了,雖然已經發展了一定的市場而且拿過不少的這樣那樣獎項,但相對於英文開發語言的規模和生態完全可以說是沒有存在感。


有些核心技術必須要有自己的,不然一到關鍵時刻就會被卡脖子。而有些東西是否一定國外有什麼我們中文就要有什麼呢?即使有了應用範圍又有多大呢,實際意義有體現在何處呢?中文開發語言的使用範圍基本受限制,試問除了中國大陸,其它還有市場嗎?


當然不是說像易語言一樣的中文開發語言就一無是處,還是有正面意義的。比如可以適用於不太願意使用英文或者沒有英文基礎的開發人員,或者適用於培訓中小學生的編程思維等等還是有意義的,另外能搞出這樣的開發語言也是相當不易,而且也是有相當技術底蘊是值得稱道的。也許搞出一個自主的英文開發語言,能攻佔全世界,比如Java、PHP這樣的語言也許更值得稱道。


圖片來自於網絡,如有侵權請聯繫作者刪除,更多分享請上部關注【東風高揚】。


東風高揚


只是發明人不是中國人,如果是中國人,世界一定都會學中文。在中文環境裡,絕對產生不了數理化等科學,比方說化學上,高分子公式怎麼用中文表述?沒辦法,這是中文的先天缼陷,我們要承認。

中文漢字編程,還不如中文拼音編程,其實很多程序員就是中文拼音和英文混合代碼,比如變量、函數,對象名稱的定義,有時候用中文拼音或者縮寫也巧妙。

英語組成是一維的,主要是邏輯關係,而中文是屬於三維的,一句話的意思除了本身意思外,還要看時間,空間。比如:夏天衣服能穿多少穿多少,冬天衣服能穿多少穿多少。按照這個中國人一看就明白,英語就不一樣了。

中文完全可以用來編程,比如國內發展較好的易語言,很多都用易語言寫過外掛,易語言有很多框架可以讓你直接使用。雖然如此,但中文卻不適合做主流的編程語言。因為英文影響力最廣,幾乎都會學英文,學起來也不太難,還有很多開源代碼需要全世界各國的人來優化,所以說不適合做編程語言。


笑搞


一、電腦是老美髮明的,所以編程是英語;

二、可以用漢語編程,但對電腦來說,漢語英語都一樣,都需要編譯成電腦的二進制算法;

三、漢語編程體積大,代碼不精簡,主要原因是漢語一個漢子佔兩個字節,英文字母佔一個字節。假設if 語句,“if”佔兩個字節,換成中文就成“如果”就佔四個字節。一個大型程序有幾十萬行代碼,換成漢語編程所佔用空間大幅度增加,而且編譯更加費勁。


分享到:


相關文章: