為什麼很多人不喜歡甚至排斥用中文編程?

CC宅漫周邊


不管是中文還是英文都只是記號,編程本來用的也只是英文字母的記號作用。

你所說的中英文編程的區分,實際上混淆了視聽,讓外行人覺得中文編程就是用了中文語法。

其實不然,編程語言用中文做記號、關鍵字時,其語法和自然中文語法已經有了很大出入。現在還沒有實現純自然語義的編程語言,我們並不能靠輸入很自然的中文語句來編程。而這一點,英文也是一樣。

編程語言的表達往往是邏輯驅動的,一個語句是不能有歧義的,如果有,也只能固定選擇其中一種邏輯表達作為唯一輸出。如果語言中有過多的具有歧義的表達,就會增加學習這個語言的投入成本。那麼這種語言就不適合作為編程語言。

所以易語言並不是中文編程,他和所有編程語言的本質是一樣的。即使是中文表示的關鍵字和記號,也是同樣需要學習記住其語法結構的,就語法結構的學習上來說,易語言和java語言的學習成本是類似的。

而使用中文做記號,是可以減少你認識英文關鍵字的學習過程,以及起變量名時的思考成本的。

在你沒有英文基礎時,可能起不出符合上下文和業務邏輯的英文變量名,這也會影響你閱讀其他人代碼時的理解速度。這就好像閱讀混淆後的代碼總是不容易讀懂的狀況。

但是在鍵入速度上英文是佔有一定優勢的,畢竟英文的關鍵字往往都在2-5個英文字母左右。沒有用過易語言,但是不知道會不會有這樣的問題,當你在寫代碼的時候符號是半角的,而中文下的符號是全角的,這樣導致需要不停地切換全半角。如果有,這個也是一個弊端,當然這個問題容易解決。

另外一點,在英文編程的大環境下,如果你只會中文編程,而不去學習英文,會讓你和這個世界上很多編程大牛的偉大思想擦肩而過。首先,源碼你無法看懂,自然無法領會大牛們的設計思想。其次文檔你也無法看懂,你連怎麼使用別人的庫都無法學會。

如果你說可以等待別人翻譯移植,那也無妨,但那些為你翻譯,你稱之為大神的人,肯定不是一個只會中文編程的人。

為什麼不推廣中文編程,因為如果你需要學習英文編程,最好讓它滲透進你的日常工作和練習中去,對英文的學習首先就不是一蹴而就的事情,是需要你長期使用,並使之成為你的一種習慣性思維模式才能掌握的。當然了,對於沒有必要學習英文,也不想去率先學習他人的先進想法的人,用中文和英文編程並沒有區別。

綜合來說,中文編程並不是因為low,也不是效率低下,而是出於大環境下的考慮,為了推廣中文的影響力而力推中文編程,顯然是本末倒置的事情。


樂活東東


從事軟件開發多年主要在瀏覽器內核,安卓框架,多媒體等領域研究的比較多,主要編程語言是C/C++ java等三種編程語言,對於易語言簡單做了幾個小功能,做了下嘗試,從本質上講差異不是很大,都是需要遵循一些語法細節,可能是用的時間短的緣故整體感覺還是怪怪的,主要是長期在英文編程環境下已經養成習慣,至於是不是中文倒是沒有太大的感觸。

說到對易語言接觸時間也不短了,剛入行不久喜歡寫一些技術博客,也算是結實了一些粉絲,和有些粉絲聊得比較多,其中一個人在研究易語言想通過易語言做註冊機,從技術上角度不太喜歡玩這些看似很無聊的東西,架不住三番五次的勸說就多少了解一下易語言,然後看看如何實現,弄了沒多久覺得實在無聊,就果斷放棄了,純正的程序員一般不太喜歡搞什麼遊戲外掛或者黑產之類的東西,但現在很多學歷不高的人通過易語言在鼓搗這些東西,想從中謀取暴利,國家已經有明確的法律規定對於非法的遊戲收益真要有人較真到底,還真是違法犯罪的事情。

有個同事講過一個故事,有個人專門研究騰訊的一款遊戲,然後從中獲取了幾百萬的收益後來被發現並報警,由於但是立法還不太完善,在裡面呆了幾個月罰了點錢又放出來了,易語言誕生的年份已經不短了,當初帶著極好的愛國主義情懷,喜歡有一個屬於中國人自己的編程語言,雖然在內部實現上可能就做了一次轉化而已,起碼讓一些英文不好的人能上手寫代碼了,這算是易語言最大的貢獻了。

任何一種編程語言的誕生或者存在都是為了解決當時非常棘手的問題,然後慢慢的被大家接受,通過時間的積累慢慢培養了生態鏈,也就是大家常說的各種編程社區,然後一群志同道合的人在裡面討論這種編程語言如何來使用,如何來改進,如果是深層次的參與者慢慢加入到核心修改小組,不停的對編程語言的版本以及未來的發展趨勢做貢獻,現在主流的編程語言都是這麼衍生而來的,社區力量的強大與否代表著當前這種編程語言的受歡迎程度,目前就國內的編程語言而言無疑java屬於老大,在開源社區裡面java方面的開源項目最多,這就是生態鏈,生態鏈的建立不是一天兩天的事情,需要具備很多因素,還要跟上時代的潮流。

為什麼很多正牌的程序員對於易語言不感冒?

1.編程習慣,絕大部分程序員已經習慣於英文字符的編程模式,切換成中文有諸多的不習慣,而且就編程語言的本質而言最終還是0,1的轉化,中間做了一些轉化而已,在執行效率上還不如英文轉化效率高

2.生態鏈不夠成熟,對於編程語言的使用者來講什麼編程語言最能解決實際的問題就採用誰,這也是生產力發展的需要,不可能為了追求狹義的愛國主義情懷就是採用一種編程語言,易語言的生態鏈體系哈有待繼續的加強發展,畢竟任何一種編程語言都需要來自五湖四海的程序員來共同托起。

3.易語言在某些場景下還是受限,舉個例子在服務端的併發性處理上就有點捉襟見肘了,不可能一種編程語言就一統天下了,這種需要強大的生態鏈支持,就目前狀態而言易語言要走的路還是很長。

對於一個技術人員來講,在合適的場景選擇合適的編程語言,選擇最佳的實現方式,畢竟對於企業來講首先要考慮最短的時間內出成品,所有的企業的程序員都是遵從現實環境,真能解決實際問題的編程語言,本身就自帶推廣特性。

希望能幫到你。


大學生編程指南


這個問題,本人比較合適來解答一下。我的文化水平高中,英語非常爛。10年做自動外掛遊戲工作室,苦於沒有合適的外掛輔助,自己從零開始研究編程。起初學習了按鍵精靈和易語言,可以做一些小程序小遊戲,又做了一些操作模擬腳本。後來學習了彙編,才可以做真正意義上的外掛。用易語言做了3年多中文編程,後來為了去上班學習了php,c,python,java,sql這些英語編程,開發過大型網站前後臺,手機app,小程序微商城。其實編程用什麼語言都是大同小異,除了個別語言之外用法都差不多。唯一的區別是用處不同、編譯環境和編譯器不同。可能和人先入為主的觀念相關,幾乎每個人學習的第一個編程語言都是英文編程,所以都很傾向英文編程,用易語言自然不習慣!而我,第一個接觸的編程語言是易語言,自然對中文編程更有感覺!


月色朦朧141786949


大家好,我從97年開始學習編程,到今年20餘年了吧,代碼是寫過不少。

看到這個話題我也來湊個熱鬧。

1、從語言的角度來說中文編程和英文,沒有區別,無非一個用“如果”,英文用“if”罷了,其本質沒有變化,還是用著老外的編譯器,算不得中文編程,頂多算個漢化版的開發語言而已。

2、如果你每天真的要寫上千行的代碼的話,你會覺得頻繁的中英文切換實在是太麻煩了,英文if只是兩個鍵,中文要敲幾個鍵呢。我最高英文打字速度是300,中文是120,說實話,我願意用英文寫代碼。

3、現在的語言都是Unicode編碼的,你可以用中文做變量名,編譯器不會攔著你,但是同行會笑死你,鄙視你的。

4、目前所有語言大多都是老外開發的。所以你想查的資料,文檔基本上都是英文的。

5、我希望有哪麼一天咱們國家也能真能開發出自己的操作系統,數據庫,編程語言,咱們自己的標準,大家一起努力吧。

希望大家不要再為語言而糾結了。


牧碼人1981


實話實說,我是沒有接觸過中文編程的,對中文編程屆名氣最大的“易語言”,也只是聽說過但是沒用過。雖然我本身是對中文編程是比較排斥的,但是出於“想評判什麼,就要先了解它”的考慮,我還是決心體會一下中文之後,再來回答這個問題。

然後我找到了“易語言”的官網,看了一眼首頁我就放棄了這個想法,本人對美醜的要求很嚴格。

對於中文編程,我就強答一下,說說我的看法。

首先,中文編程還是發展初期,語言生態不好。不可否認中文編程確實降低了編程的門檻,易語言在中文編程做出了值得鼓勵的嘗試。易語言目前的前景不是很明朗,易語言好像是2000年就出現了,差不多快20年了,我翻了翻官網,感覺很久沒有更新了,而且社區支持並不強大,所以並不看好。順便說一下【生態】這個問題,很多人理解這個詞有一些困難,舉個例子:比如安卓和Window phone,大部分APP都有安卓版本,不一定有Window版本,這就是生態的好壞。


第二,英文編程已經先入為主了,就好像我,做Java開發已經12年了,自學Python3年,這麼長時間已經習慣現有的編程體系了,要切換成中文環境感覺完全沒有必要。而且現在中文編程的生態又不成熟,所以不接受甚至排斥中文編程,也是很正常的事情。

第三,編程思想的重要性要遠遠大於編程語言。其實不用過分糾結於使用什麼語言,編程最重要的是對事務的抽象能力,邏輯思維能力,和對不同的業務場景,可以採用最優方案的能力。如果有一天老闆說:“從今天開始,咱們公司要用中文編程了,工資增加一位數”,我相信我很快就能學會的。


最後,每一種語言的興起,都是因為可以很好的解決行業的某些痛點。比如PHP的興起是因為互聯網需要快速的編寫動態Web服務;Java的興起是適應企業級信息化,Java屏蔽了指針、內存、垃圾回收等等,可以在短時間內寫出大規模的程序;而易語言,好像解決的是“想編程但是不會英文”的問題,至少在編程行業內,我們是不存在這個痛點的。

總結一下:

  • 中文編程的生態圈不好,短期內不看好。

  • 聽說很多外掛都是用易語言開發的,終於知道為什麼熟練掌握易語言的人掙錢都多了(不提倡,犯法的)。

  • 不要打著愛國的旗號去推廣產品,把東西做好了才是真正的愛國。

我將持續分享Java開發、架構設計、程序員職業發展等方面的見解,希望能得到你的關注。


會點代碼的大叔


需求:某個變量循環十次,每次的值都加1

java:for(int i=0;i<10;i++){}

易語言:循環體(整形 變量 等於 零 ;變量 小於 十;自增 變量)

首先我們來分析閱讀性,假如一個外行人來閱讀這兩份代碼,雖然不知道for什麼意思,int什麼意思,但我相信正常人至少都能看懂第一份代碼i=0這一行吧;但是再來看易語言寫出來的代碼,循環體啥意思,我只聽過循環,循環體是幹啥用的?整形?整形變量?還是整形變量等於?都說漢語博大精深,在不使用逗號的前提下漢語的可讀性理解起來就可以有很多種意思了。

我們再來看二者的格式,容易看出來其實易語言不過是相當於把英語全部翻譯了一遍,翻譯後的代碼僅限於我能讀得懂而非看得懂。再看一下,易語言的代碼量比英語多了多少?

漢語是我們的母語,如果能開發一門易懂的漢語編程語言,那麼我想這無非會大大降低我們的開發門檻。但是我們需要強調的是,漢語編程語言不是簡單的“翻譯”,我理解中的漢語編程應該是可讀性高、理解容易。例如上面的例子,如果要我“開發”的編程語言來寫,我會寫成這樣

條件循環(變量初始值等於零;假如變量的值小於十;那麼變量的值每次加一”){};

這樣的寫法我相信任何人都能看懂讀懂知道他的用法理解這個代碼是用於做什麼的。這才是真正的漢語編程。如果要只是翻譯英文編程語言,那麼我為何不直接學英文編程語言,我學會了英文編程語言也就意味著我的編程能力拓展性更高,畢竟現在市面上無論是已有技術還是新的技術都是英文寫出來的


啊康看數碼


問些問題只有3種人,易語言使用或推廣者,對編程狗屁不懂,披著‘’愛國‘’皮的噴子,其實在大多數程序員眼裡,易語言可以說是垃圾。打個比方,如果把阿拉伯數字都換成中文大寫,那你就是微積分高手了?其實易語言根本解決不了編程的語言障礙,反而因為中文字節遠大於英文字符,造成程序莫名增大,編譯變慢,語無法跨平臺,兼容性奇差。除此之外,沒有帶來半點好處。另外對程序員來說,到底是打if else for 快。還是假如 否則,循環快,只要不是睜眼說瞎話,大家都知道


偶爾來逛逛隨便來瞧瞧


先來說說歷史原因,編程起源於外國,編程語言,計算機,甚至上層的開發工具,基本上都是外國人使用英語來開發的,這些最大的問題就在於,外國人並不會給中文來做適配,就算適配了,也無法使用中文來編程測試,因此遇到了bug也無法修復。這大概是中文編程目前最大的制約。很多碼農說現在的主流編程語言都是Unicode編碼都支持中文,這很正確,舉例java,但是我想他們根本呢沒有用過中文來寫代碼,完全沒有考慮過ide工具是否支持,編程語言並不是編程的全部,雖然脫離ide工具我們也能夠編譯代碼,但是脫離了ide工具我們的開發效率會降低很多倍,於是乎現在企業開發基本不可能脫離ide工具,沒有的可能都要專門自己開發一套。

再來說說很多碼農對於中文編程的真實內心獨白:用中文寫代碼會很垃圾,很廉價?懂英文比較厲害?中文寫的代碼不行?要便於給外國人看?認為中文編程很多餘?習慣了英文編程了不想改變?雖然有些直抒心意,但是也在一定程度上直觀反映了排斥使用中文編程的碼農心態。

我認為制約國內程序員使用中文編程的最大因素是完善框架的缺失,諸如易語言之類的其實都不過是偽中文編程,很多底層的東西也還是用到的英文,而底層的英文又限制了上層框架的編寫,語法框架無法的限制導致了上層編寫程序的時候並不適配中文,這樣的編程不僅不能提高效率,反而增加了理解難度。

所以我認為中文編程最大的難點是怎麼去編寫一套適合中文的編程框架,而不僅僅是把英文翻譯成中文,這樣的中文編程其實真的沒有多大意義。

以上就是我的見解,歡迎大家在評論區熱烈討論~


從不加班的程序猿


c語音程序員,強調一下我主要工作是寫驅動,包括內核擴展驅動,經常接觸外掛作者,因為國內遊戲基本上全部有驅動保護,外掛作者從我這裡拿驅動過保護,在使用ce或者od等工具進行調試遊戲,我也使用過易語言。

下面發表一下我的看法:

1.c++,java等語言的人都鄙視易語言,自認為高人一等,一些代碼變量明明可以使用中文非要使用英文裝x,

2.易語言目前功能非常完善,目前還沒有發現有c程序代碼不能翻譯成易語言的,api什麼的調用方式都差不多,

3.易語言缺點就是編譯文件相比c編譯出來文件大,編譯出來軟件運行沒c流暢,殺毒軟件報毒,部分軟件和遊戲檢測到運行易語言編譯軟件直接第三方或者彈出提示。


lllllllllllllllll458


我寫了20年C++,一直都用英文。還從沒覺得不方便。現在仔細想想,這確實是個外行的提問!

1)首先得從教學說起。現在學校教的都是國外發明的編程語言,什麼語言是中文呢?孩子學習時用的語言和編程思維方式決定了他們未來使用的思維方式。

2)其次工作以後編程一定是做產品,試問試問什麼公司是用中文編程?

有人馬上就會質問: 為什麼大家不致力打造中文編程語言呢?我們來看看中文編程語言存活需要什麼。

1)語言本身。機器需要識別,需要有中文編譯器,開發環境,要能調試。語言需要有關鍵字,語法之類的,包括彙編支持。大家如果對硬件有了解的話,底層跟硬件打交道的仍然是英文。我們看彙編,顯示出來的內容也都是英文。如果這從頭到尾都搞一套中文的話,那我可以說你比比爾蓋茨還要牛!比爾蓋茨也只是做了這個鏈中間的一個環節的事情。我們都要做到的話,那基本上也就別整天糾結美國技術封鎖的事情了。

2)庫。這個多少人想過?語言不是獨立存在的,必須有標準庫。這個說起來就無邊無際了。做標準庫就得涉及到做的人,用的人,還有最重要的社區。說白了就是人氣。也就是你沒這個環境的話,庫是活不下去的。中文庫註定了是隻能在華人圈裡流行,也就是與世隔絕的。就今天科技發展的趨勢來看,與世隔絕的能活下去麼?

3)對接。編程不是為了自娛自樂,是要做出產品服務於終端設備的。說到設備有個人電腦,手機,穿戴設備,醫療,機床等等數以億計。是都全搞成中文的?

也許有人非要抬槓說,我只是搞個表面開發環境中文的,其它一切的一切還是英文。那你搞它幹嘛?譁眾取寵?自娛自樂?非常荒繆!

最重要的是這個問題不像是回會寫代碼的人問的。大家如果平常在寫代碼,你會發現工作中的思維是英文的,中文編程環境反而會影響效率。不停的切來切去幾乎不可能!


分享到:


相關文章: