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

大街鳳凰島


相信很多人剛接觸到編程時心中都會有一個疑問:為什麼編程只能用英文呢?

我們知道,計算機語言經歷了機器語言,彙編(偽機器語言),高級語言三個階段。

從機器語音開始,電腦只能識別0和1組成的機器碼指令。當時編程者考慮到人們對機器代碼的記憶,就用英文字符代替機器碼。也就是說,我們編程時所輸入的代碼最終都要轉化成0或1才能被計算機所識別。


所以從理論上來看,是可以用漢字來編程的。現在市面上也有少數漢字編程翻譯器。

但是這僅僅是理論上。實際上,想要用漢字編寫程序,就要讓計算機系統讀懂我們的漢字,那就意味著獨立開發一款系統。本身國產系統就比較落後,現在還要開發能看懂中文的系統,那難度可想而知。並且,我們都習慣了用老美那一套系統,就算寫出中文系統來我們還不一定習慣。


再來說說漢字,中華文化博大精深,像什麼“我一把把把手把住了”,“他是個性開放的人”……我們有時候都可能看不懂,你讓電腦怎麼辦?再者說,用中文編程的速度肯定比英文慢許多。要是再算上什麼多音字等其他因素,編程效率又要慢一大截。

不知道各位看官們是如何看待這個問題的呢?歡迎在下方評論留言,讓更多人看到您的觀點。如果覺得小編說的在理,請點贊轉發關注我哦!


科飛貓科技公社


作為一名專門搞編程的科研工作者,我倒想用中文來編程,再也不用看英語了。

下面很多同學清一色的說有國產編程軟件,我瞅了一下,確實好理解了,但是總感覺不順眼,可能是編代碼編慣了。國產有幾款這樣的編程軟件,但是起步這麼晚並且套路都是按著c語言學的,近距離看是沒多大希望普及,遠距離看,也沒多大希望普及。

下面列一列為啥不能普及。

1. 英語編程語言起步早,目前已經在全世界範圍內普及,不光如此,基於c語言,java的庫早已經非常完備,面對如此龐大的數據資源,國內發展十來年的易語言是打不過的。其實有時候第一個不一定好,但他做了第一個以後,肯定會有第二個出現,但人們永遠不會記住第二是誰,所以國產語言沒機會呀。

2. 其二就是語言本身的問題了,舉個例子,看下面這幅圖,這是國產語言的編程

敢問一下是打漢字快還是打字母快,例如圖片中的‘如果’,打拼音的話是ruguo,而且還要選則如果這個詞,裡面的‘是否出現事物’其拼音為‘shifouchuxianshiwu’這得有多長啊我的老天爺,如果我把他們全部換成字母代號會是這樣:

{

If ( a . b == 1 )

a.row = int8 from (void ) – 400 + 60;

a.row = int8 from (void ) – 350 + 60;

else (a.row – 10 ~= 0 )

a.row ++;

else (a.col – 10 ~= 0)

a.col++;

a.c = 0;

}

不管是誰,這一小段都回會感覺到明顯清爽了許多,其實裡面並沒有用多少英語,知識簡單的格式而已,並且不用打那麼多的漢字,因此從簡潔性上來講,中華文化博大精深,漢字複雜得多,在這裡吃虧了。

最後不得不說由於計算機是老外做的,軟件也是老外編的,底層的很多東西都是用c寫的,我們用國產編程軟件的話會遇到諸多兼容性和轉換的問題,一牽扯到這個肯定會影響計算機運行的效率,因此還是用較為成熟的外產軟件更高效。


鎂客網


作為科班出身的碼農來幫你解惑吧,其實根本沒有英文編程還談什麼中文編程,事實上我們都是用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 的發明人是瑞士人,母語估計是德語。


萌哈科技


中文當然可以編程,實際上只要支持使用UTF8或者Unicode的編程語言、編譯器,都是可以的。舉兩個例子,易語言和Mathematica,前者是國產語言,後者是國外的產品,但都支持用中文編程。

易語言的畫風是這樣的:

而Mathematica雖然作為美國的產品,但也是可以用中文編程、計算的:

所以其實中文編程在技術上,根本不是什麼問題。

主要的問題來自於歷史。

大部分的程序包,都是用C/C++/Python/Java/JS/.....等一眾「英文」語言書寫的。你另起爐灶,沒有相應的庫輔助,難度是很大的。

一個程序語言,如果不流行,或者不在某個領域流行,基本就算是完了。

更重要的是,現在的編程語言其實也不是英語,只是借用了英語的單詞,有的還是語言自己造的單詞。

這就像是日語借用了大量漢字,但你不能說日語就是漢語一樣。

語法結構都是完全不同的東西。

更何況,程序注重的是完全精確的邏輯結構,是一種「指導」、「菜譜」一樣的東西。和自然語言是不一樣的。糾結於語言,其實根本沒有意義。特別是糾結於命令用什麼語言寫出,更是完全沒有意義。


章彥博


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

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

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

火星一號


就我們平時所接觸到的常用編程語言,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語言,所有的編程過程都可以用中文來進行(上面那張圖就是,不過看著有點彆扭)


易語言的話,發展史也有十幾年了,很多學易語言的都用來寫外掛。

其實,限制中文編程很大原因是資料太少了,想學也沒有系統的學習方法,而且畢竟起步晚。

所以,以後如果諸位成為大神了,也希望各自都能發展發展咋們的漢語編程。


Python雁橫


現在編程軟件大多支持中文變量,其他關鍵字知道什麼意思就可以了,不需要英語問題也不大!



分享到:


相關文章: