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

陽光空靈


用中文編程的想法挺好的,如果有這樣的編程語言我一定會使用。

如果有人嘲笑這個想法,我認為他們並不是嘲笑用中文編程這個想法,更多的是出於自嘲或者是不願意在已經十分成熟的編程體系下去做看似費力不討好的改變。

編程語言,尤其是高級編程語言只是程序設計中最基本的一環,也是最直觀的表現形式。它離程序的本質有些天翻地覆的差別。

簡單說程序的最終面目是機器指令。而從高級語言到最終的機器指令中間要通過語言預處理、鏈接、預編譯、編譯等多個階段。而機器指令的執行又跟計算機體系架構,機器指令碼設計密切相關。

因此看似簡單的高級語言編程,其實其內部有一套十分複雜但是又嚴謹的邏輯體系和工具鏈,還涉及到芯片設計和指令碼設計。因此,想開發一種新的編程語言並不容易,需要有一整套的開發環境和編譯工具來支撐。

很可惜,我們在這層的技術積累還遠遠不去歐美等發達國家。

如果有一整套的開發環境和工具鏈的支持,用中文編程也會水到渠成。至於傳說中的中文編程二義性,複雜性等都不是問題。

要知道編程的最高境界就是代碼要有自解釋性。如果有中文的編程語言,這可是有極大優勢的。起碼我們再也不用為起一個具有自解釋性的變量名而發愁了。多少次為了起一個規範的變量名而默默著查閱著英文詞典;多少次想用漢語拼音代替卻不允許……

對於中文編程的阻力除了上面說的開發環境和工具鏈外,還有一個很大的問題是編程習慣。

現在的軟件開發用的全是國外的編程環境、工具鏈和規範,學校裡學的也是這套東西。要是想讓一個已經熟練掌握了自己熟悉的編程語言的人轉到其他語言上去,多多少少還是會有一些牴觸的。

所以說,中文編程的說法本身並不可笑,只是裡面包含了很多的無奈罷了。

(如果其他網友有不同的見解,歡迎大家進行友好的交流😄)


鄴城二哥


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

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

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

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

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

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

Java

SQL

TypeScript


用中文編程


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

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


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

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

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

  1. 中文編程極佔資源;

  2. 市場需求小。

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

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


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

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


愛思考的奧特曼


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

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

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

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

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

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

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


冰封灬飛飛


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

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

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

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

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

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


超人隱身中


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

1,用英文是歷史原因;

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

3,程序生態是英文的。

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

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

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

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

與各位討論。


原語奮鬥


雖然我是個只會寫if,else的小辣雞,但我也嘗試回答下吧:

1.好好搞懂計算機原理就不會問這個問題了,底層都是英文國家的人搭建好的,從一出生開始就是為英文在服務,連鍵盤都是英文的

2.基於1,導致使用中文編程,中間仍然要先轉化為英文,若不是,參考3

3.if兩個字節,如果四個字節,浪費儲存空間

真一天叫囂著要中文編程的話,不如重新建立一套計算機體系去?


空腹喝烈酒


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


大公51


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


計算理論


現在可以用中文編程咯但是還沒有做到徹底中文。誰的編程軟件比易語言自由兼容其它軟件源代碼誰就生的希望越多。就算是碗出一個窯燒的,到人手裡也是在誰手裡就是誰的,形式主義不可以用在電腦上否則會絕咯中國的根。生存是永恆的主題,自由是下一曲


分享到:


相關文章: