提倡中文編程為什麼總遭到程序員嘲諷?

陽光空靈


提倡中文編程,和想要一門中文編程語言的人,9成都是菜,以為把英文換成中文就容易編程了。認為喜歡英文環境編程的人是怕用了中午之後大家都會編程了。 有這種思想的人,連為什麼自己水平差都不知道,這根本就不是一個語言問題能解決的。。

計算機的經典教材,名著都是國外的,前沿的資料都是英文的,最火熱的開源社區也全是英文環境的。

如果一個人從菜鳥變成一個計算機行業的大神,必然是看了無數英文資料慢慢成長來的,這種人早就悟透了想要變強,英語就是一個必經之路,而編程語言裡面那幾個單詞都能成為絆腳石的話,這種人最多也就是個培訓班水平。 看再多的國內教材國內資料也只能算是吃別人剩下的東西,質量不僅差而且舊。

編程講究生態,就算有中文編程語言,一堆菜鳥在用,能產生什麼生態,本來中國的優秀開源軟件就沒多少,更別說用了中文把整個外國開發者全都拒之門外的閉關鎖國式開發了。別做夢了,就算中國的大神寫的開源項目,參與的開源項目,也是在github上全英文的。

有了中文編程語言,有第三方庫可用嗎?

openssl boost dpdk 等等這些庫是不可能再造一遍輪子的,因為菜鳥寫不出來,大神不屑於再發明一遍這種輪子。

所以鼓吹中文編程語言的人,多提升一下自己吧,真正有實力做一款優秀編程語言的人,如果知道自己的潛在用戶只是一些英文變量名都是障礙的人,那他一定不會費力做這麼一個東西出來的。


冰封灬飛飛


中文編程並不是不行,但實在是費力不討好呀!

咱們來說說為什麼中文編程不受歡迎。


從易語言來看,中文編程遜色在哪裡

除了C/C++,java,python這些語言外,確實存在一種中文的編程語言,就是易語言,易語言的年代有些悠久了,最早可以追溯到2000年,雖然發展到今天有了一定的規模和用戶基礎,也有一批忠實的“易粉”,但始終沒有流行起來。在2018年“最受歡迎的編程語言”中,壓根就看不到它的影子。。。

也並不是只有2018易語言名落孫山,易語言的劣勢也是中文編程的劣勢,究其根本主要集中在兩點:

  1. 中文編程極佔資源;

  2. 市場需求小。

我們先來看第一點,主流的編程語言都是英語,再複雜的英語它也只有26個英語字母。但漢語不一樣啊,常用的漢字足足有7000多個,還有字形結構。學過計算機的朋友都知道,漢字的內碼很佔內存,一個漢字2bit,一箇中文標點3bit,做一個完成的項目要比純英文的代碼量大很多。這和軟件開發代碼精簡的需求背道而馳,加大了CPU的工作量。

再說市場需求,在所有的招聘平臺上,嵌入式方向的找C/C++的,AI領域的找會python和機器算法的,前端找會HTML5/CSS的,應用軟件開發找會Java的。。。反正我是沒有見到哪家公司明確表示會中文編程的。


沒有市場,也沒有需求,中文編程就是這麼一個局面。並不是說中文編程不夠好,我身邊有學易語言的朋友,但初衷不怎麼光明——他用來寫外掛。

客觀來講,易語言確實很方便,也大大降低了學習編程對英語方面的要求。但真的不符合當下開發行業的環境,中文編程,小圈子裡自娛自樂一下還行,放在大型項目開發商,實在是強人所難。


愛思考的奧特曼


這個“五加二等於七”的例子,完全沒有說服力。如你所言,英文編程同樣使用阿拉伯數字和通用數學運算符號,而不是用英文自然語言的“five plus two equals seven”。

噴中文編程的聲音雖然很嘈雜,但仔細總結下來不過幾種套路。之前寫過一篇專門進行針對性回應的文章,有興趣的話可以整理後再發表出來。

關注本號“用中文編程”,敬請期待。

這裡要科普一下,多半開發者還不知道絕大多數常用英文編程語言早已支持中文命名標識符,比如 Python3 的開發團隊在2008年開始就從用戶社區反饋中意識到,非英語母語的開發者希望用母語命名,因為這樣可以提高代碼清晰度,更易於理解和編寫。

所以那些否定母語命名意義的,請先去這些語言的開發者社區嚷一聲“Unicode命名沒有用啊,刪去這個特性吧”,就等著其他非英語母語的開發者們出來打臉吧。

或者,試試把下面這些用中文命名標識符的代碼改成英文命名。代碼可讀性不比不知道,用過中文命名的就知好處。

Java

SQL

TypeScript


用中文編程


作為程序從業者,說點個人見解。

1,用英文是歷史原因;

2,編程環境生產使用的都是英文的,包括運行系統。

3,程序生態是英文的。

4,程序上語言只是符號,因此,不論你用什麼自然語言來表達,只要編譯器能轉換,都是可以的。

5,為什麼中文編譯只有小部分應用(如已知易語言基本用在做外掛,不算行業內): 編程要的是無二義性,這方面這些年全世界花了很大代價才形成目前狀態。如果是中文,同樣一個‘花’,在不同語調,語境下有豐富的含義,這時就需要其它東西來輔助表述,從而帶來更多複雜度。一般程序需要用的是不到100個關鍵字,越少就越易形成生產力,當然前提是無二義性。這符合中國傳統哲學,陰陽可涵蓋一切,電信號本身0和1是陰陽理論在電相關領域的實際應用,這個是發明人本身承認的,道理是相通的,原理是自然的。

6,從實用角度來看,不管白貓黑貓,能抓到老鼠就是好貓。從現階段程序領域看,目前英文佔據優勢。因此,用何種自然語言,這是自然選擇的結果。在合適的地方用合適的材料,並不是因為材料非得用最貴的,最貴的不見得合適。或許將來有一天,程序會用中文來寫,但一定不是因為符號本身,而可能是因為社會發展,思維的需要了。英文背後是線性思維,中文背後是立體思維。其實,現在很多項目已經在用中文思維來解決更加複雜的問題了,只是表面用字母符號來表達而已,這也是當前甚至以後各領域中國影響力越來越大的原因。按照三體孫介紹的,是降維打擊,我們不用妄自菲薄。

7,看盡千帆過,跳出此山中。不用太糾結於表面形式,尋找更深本質,或許會更好。

與各位討論。


原語奮鬥


我來解釋下吧,其實很多人的程序,並不是英文的,而是拼音和簡稱的,不流行不代表不行,而是做基礎工作的人很少,要用什麼沒什麼,而且英文編程又不是很難,就那麼幾十個單詞,還有補全,最重要的是中英文的標點符號不兼容,很多程序誤輸入中文標點是不行的!

但是,本人最近在做電控編程序,用的是程序塊,面向對象的思維,就全部是中文的。

最終,你的變量會編譯成存儲空間,佔用資源也只是源代碼,運行沒啥區別。

之所以不流行,是因為搞中文編程的人還沒有領會中文的精髓,博大精深,例如勾股定理,溝三股四玄五,用表達式,用白話文,用數學要多大信息量才能表示?

其實,中英文在asc碼裡面,僅僅位置不同而已,要深入掌握中文精髓,中文比英文更有優勢,尤其面向對象,更復雜運用,中文更能發揮潛能。


鞠躬車馬前


1、 語言機制擺在那,漢語我們的母語使用起來自然方便,但是作為編程語言,可能沒那麼方便,這裡的編程指的是寫代碼,不不是拖控件那種GUI開發,比如"if()...else..."語句,用英文單詞不會產生歧義,漢語博大精深,“意思”的意思不用說了吧,就比如說代替前面的"if()...else..."語句,可以用“如果……那麼”,亦或是“假如……就”,反正怎麼都能翻譯,但是高級語言寫的代碼是給計算機理解的,不允許產生歧義。而且用英文寫代碼更簡潔不是麼;

2、寫過代碼的人亦或是瞭解計算機基礎的人,大概瞭解操作系統,編譯原理等知識,操作系統內核沒有中文寫的吧,當然可以封裝接口調用庫函數,你不損失性能麼?

3、用中文編程不是不可以,而是沒必要,你去利用利用計算機是解決問題,怎麼方便怎麼來,什麼順手什麼來,包括編程語言的選擇這些,工作中不可能一門語言你就能走向人生巔峰,做C++的項目中會遇到Java代碼,做Java的做到高級工程師你不還得了解內存管理和指針傳參麼,Python也是一樣,只不過有各自的適用場景和生態體系,沒有好壞之分,做到後期,還是回到了操作系統,計算機網絡等基礎知識以及相應領域的技術體系。再說了,現在小孩幼兒園就已經開始學習英文了,有必要糾結單詞麼,畢竟英語還是國際語言,就算有理想封裝一套漢語編程語言,怎麼推廣了?現在全球化,甚至就算用漢語寫操作系統寫出來了,大廠會用麼。什麼東西都有他自己各自的適用場景,主體是人,我們眼光不能太侷限!


柚子樹plus


因為中文編程本來就是個偽命題。會編程的人都懂,語言從來不是關鍵,思路,算法才是核心,如何用自己的思路將計算機調教好,才是王道。就跟老師教你二元一次方程,x+y=3,中文編程者只是想改成甲加乙等於三。難道換成甲乙丙丁解答起來就更順滑?只是表象上換了個表達罷了。毫無價值。就跟討論為什麼沒有中國的西餐一樣,滑稽。


鹿見車


用什麼編程有區別嗎……每天吵著這個語言好,那個誰用的多。搞的程序員就跟過去的秀才一樣酸,生怕別人說自己會的那門語言要不行了。計算機是一個系統學科,編程語言只是個工具,工具背後還有計算機的內在原理和設計靈魂,為了最淺顯的爭來爭去也真是顯示了我國的計算機軟件水平……


計算理論


編程是一門與機器交流的語言,中文不適合編程主要因為:1程序語言起源不在中國,而大部分使用者又在國外,2中文語法靈活,英語則有效解決了語意歧義的問題,3中文編碼標準過多,統一困難,4中文打字慢。

因此,那些想通過中文編程的人,要麼是懷有以零英語和編程基礎跨越過IT門檻的心態,要麼是製造虛偽的民族自豪感。

郭德綱常說“相聲行業是門檻在山腳下,進了門才發現要爬個山才能登堂入室”。我想說編程也和相聲一樣。

當開始學習編程,往往用C做敲門磚,進門後有C++,.net,數據庫,Java,JS,PHP,Python,shell等常見語言可選擇繼續工讀,還有大量小眾的語言可供選擇,每門語言都龐大的框架集和獨特的語法,中文編程就是在這個小眾語言圈裡。這個階段甚至需要幾年才能精通某一門語言。

等過了語言關,還有架構關,中間件關,操作系統關,安全和網絡關……直至所謂全棧開發,可惜的是,這個階段尚沒有支持中文編程的語言。

所以會編程只是爬山開始,但會中文編程只會讓你在山腳下轉悠。


超人隱身中


這是毫無意義的討論!目前的計算機使用的是二進制代碼,任何程序最終都要轉變為二進制代碼,高級語言編程無非是指令的標準化,和高級語言的編譯,不在於高級語言的形式。英文高級語言起步比較早,用中文做高級語言不是不可以,只是也需要建立指令體系和編譯工具。英文計算機語言對母語是英文的人來講會更為方便,反之亦然。但是改變不了目前的編程與編譯的基本原理。


分享到:


相關文章: