如果電腦技術(shù)最初是中國人發(fā)明的,那現(xiàn)在編程是不是就是中文的?
現(xiàn)在的編程代碼全部都是英文,有沒有可能有一天編程代碼全是中文呢?而且如果當(dāng)年計算機由中國人發(fā)明,編程代碼是否就是以中文為主呢?
問:如果計算機由中國人發(fā)明,那現(xiàn)在的編程代碼是否就是中文了?
觀點1:其實什么語言都能編程,發(fā)明一門編程語言也不是難事,很多編程語言只是創(chuàng)造者花了十天半月發(fā)明出來的,每一門語言都是在特定的環(huán)境中運行,必須經(jīng)過編譯器編譯成0和1。中文編程占的字符太多,編譯出來后太臃腫,執(zhí)行效率太低。 說用中文編程的人都是不會編程的人,其實編程語言和英語關(guān)系不大,我不會英語,但是現(xiàn)在會html JavaScript php Python 而且學(xué)會的時間并不長,php學(xué)了半個月,JavaScript 學(xué)了幾天基礎(chǔ)語法,Python 也是十來天, 學(xué)一門語言并不難,但要深入就難了,像我寫程序大部分時間是在思考實現(xiàn)邏輯和方法,寫代碼的時間是很少的,簡單的代碼自己記住,復(fù)雜的函數(shù)做筆記,后面用時復(fù)制粘貼。 到現(xiàn)在我能開發(fā)出只要想得到的任何功能,但依然有很多單詞我讀不出,函數(shù)記不住。說起來別人還不信。 其實我只要知道有這么一個函數(shù),這么一個公式,這么一個方法能實現(xiàn)這么一個功能,具體代碼怎么寫,單詞怎么拼,一是筆記,二是百度,三是以前寫過的項目。
觀點2:我想說用中文編程并不是一種好的解決方案,鍵盤上用26個按鍵能代表26個英文字母,用26個字母能組合出成千上萬個單詞,這是字母編程的優(yōu)勢,你不可能組一個幾平方的鍵盤陣把所有中文字都一一對應(yīng)一個按鍵,別說制作成本,但是你要在這么大的鍵盤上找到你想要的那個字就不可能,那么剩下的就是用目前的解決方案——拼音來進行漢字輸入,可是歸根結(jié)底拼音也還是字母,既然能用字母編程,那為何還要先講字母拼音轉(zhuǎn)換為漢子再進行編程,即使中國人想要開發(fā)一門計算機語言,用漢字明顯是不合適的,漢字太多,單字節(jié)無法表示出所有的漢字。別跟我提易語言,來做arm開發(fā)試試?易語言就是對C的封裝,卻做不了C能做的事。簡單來說我在C中添加個宏#define 整形 int我也一樣用漢語編程。最后說字母是個有限的集合,漢字幾乎是無限的,一直不斷的有新的漢字被發(fā)明或者被發(fā)現(xiàn),除非有人每年花大量的時間維護漢字集,否則搞不好哪天你寫個偏僻字計算機都不認(rèn)識,如果真實這樣了,誰來做編譯優(yōu)化?這里所說的字母只是一只有限的符號集合,并非一定是英文字母還是希臘字母。
觀點3:計算機底層語言為什么是英語呢,我們在打開電腦進入自檢程序時,屏幕上顯示的為什么是英語而不是漢語或其他語言呢,這個問題的確和計算機是美國人發(fā)明的有關(guān)系,因為美國人使用的字符集叫acsii碼,全稱是“美國國家信息交換用標(biāo)準(zhǔn)字符集”這個字符集包含26個英文字母大小寫和10個阿拉伯?dāng)?shù)字,還有一些標(biāo)點符號和一些轉(zhuǎn)義字符(如空格,回車等),我們中國也有類似的字符集,叫“國家漢字信息交換用標(biāo)準(zhǔn)字符集”,好像簡稱“國標(biāo)碼”吧,當(dāng)然其所包含的漢字符號個數(shù)要比acsii碼多得多,acsii碼只需一個字節(jié)就能表示完所有字符,而國標(biāo)碼卻要兩個字節(jié),如果要表示完所有漢字則還需要更多,這樣導(dǎo)致漢字比英語需要更多的存儲容量,(不過在存儲技術(shù)飛速發(fā)展的今天,這已不成問題)如果計算機是中國人發(fā)明,那肯定會理所當(dāng)然將“國標(biāo)碼作為基本字符集啦”。如果是這樣的話,那么童鞋們打開電腦進入自檢程序時,在屏幕上看到的很可能是漢語的提示,這樣電腦有問題也能很快知道問題出在哪里了,而不會因為不懂英語而苦惱。
如果計算機是中國人發(fā)明的,那么像c語言這類的計算機語言的關(guān)鍵字和程序的注釋也有可能會換成漢字,那么我們學(xué)習(xí)程序設(shè)計自然會感到親切一些,還有各種計算機術(shù)語,文獻(xiàn)都是漢語,這樣對國民計算機知識的普及也會有一些作用。
竊以為,如果不是美國人發(fā)明了計算機那么中國人再過一千年也不會發(fā)明計算機,這不是說中國人智商不如老外,而是因為我們的文化的原因。話說回來,既然老外發(fā)明計算機再先已是既定事實,我們也不必為此而感到沮喪,也不必為計算機里充斥著英語而感到懊惱。如果童鞋們立志要搞懂計算機,其實所需要搞懂的單詞是有限的,就拿c語言來說,其關(guān)鍵字也才30多個,用點心很容易記住。我也鼓勵大家學(xué)好英語,畢竟計算機是老外發(fā)明的,各種標(biāo)注都是人家制定的,如果中國想推翻從來,不但要從頭開始推翻人家的技術(shù),還要推翻人家的市場,這是不現(xiàn)實的。一句話,學(xué)人所長,補己之短吧。
觀點4:肯定的,可能很多人想當(dāng)然的認(rèn)為學(xué)編程與語言關(guān)系不大,我想說,學(xué)的速度關(guān)系大了去了。 比如通用的matlab,你遇到一個新的函數(shù),想看看這個函數(shù)到底怎么用的,打開函數(shù)瀏覽器,突然發(fā)現(xiàn),全是英文,看不懂,看的懂得也是猜了一些,英語大神的咱不說了。 還有上面有人說,英文if while等等比如果簡單方便,那是你想當(dāng)然,先入為主,如果是中國發(fā)明的,你會發(fā)現(xiàn)中文編程也是如此方便,最起碼,遇到一些函數(shù),比如求平均數(shù)的函數(shù),你會首先查“平均”,但是英文,你就得上網(wǎng)查查,而不能直接想到求平均的函數(shù)名是什么,這只是簡單的,如果你用到matlab3d仿真功能,更加復(fù)雜的編程,你就會發(fā)現(xiàn),區(qū)別大了。 很多單詞,你看程序的第一眼,首先不知道是什么意思,但是如果人家外國人,看一眼,可能就猜到意思了,幾個單詞縮寫,大概意思一目了然。 如果是中文編程,你看一遍,下次你在用,你就可以很熟練的作用,寫出來,可是英文,你就可能就不得單詞怎么寫,甚至忘了這么個函數(shù)。 編程,與語言無關(guān)。 但是編程語言會極大的影響你學(xué)習(xí)編程的速度與深度。 也會影響你寫程序的思路。
上面幾位,寫的什么機器碼,什么底層,有點專業(yè)的,我就不說那么多,就用大家都聽的懂得話說。
上面我就沒提有的函數(shù)參數(shù)有4.5個,單詞都不認(rèn)識之類的了。 就說報錯吧,英文不好的你報錯都看不懂,都上網(wǎng)查下報錯是什么意思。 英語大神之類的不算,畢竟不是不是人人英語那么厲害。 比如你看如果一頁都是中文的編程的編程,就算你看不懂,你也可以猜大概的結(jié)構(gòu)與部分意思,也會覺的有點親切,不那么深澀高深。 但是全英文的,你沒學(xué)過,你就會覺的,這是啥,高深難懂,高大上的樣子,就跟天書一樣。
如果中國發(fā)明了計算機,必然有一套中文編程方法與相關(guān)中文編程理念,相關(guān)的編程專業(yè)術(shù)語,理解起來自然快。 而現(xiàn)在大部分都是翻譯過來的,比如c++里面的派生,這可能學(xué)了很久的就理解透徹可是沒學(xué)過的接觸時就是不能很好的理解,為什么呢,就是因為當(dāng)初翻譯時,英文與中文并不是意思一一對應(yīng)的,很多英文的其實沒有對應(yīng)的中文。 自然也就不能做到準(zhǔn)確。 英語與中文是兩種思維文化世界,有的只能做到相似,沒法準(zhǔn)確。
最后,語言各有各的優(yōu)勢各有各的劣勢。 但是用在編程上,你說中文天然劣勢,那就牽強了,中文完全可以編程。 說不定哪天,出來全新的硬件形式,還是中國人發(fā)明的,自然編程變成中文的了,也不是不可能。
英語的國家,思維是微觀,推理論證,過程嚴(yán)謹(jǐn),比如說豬能上樹,中國可能就是一個笑話,但是如果在西方,就會有科學(xué)家來實驗論證豬到底可不可以上樹,能不能訓(xùn)練,之間有什么關(guān)系,得出什么結(jié)論。 中國人就會認(rèn)為這人有病。 所以,科技能在西當(dāng)出現(xiàn)也有一定的必然性,他們探索背后的理論,邏輯,實驗驗證。 而中國呢,有中文的國家,思維都是宏觀,實用,戰(zhàn)略思維厲害。 比如,發(fā)明了很多實用的東西,如果你問為什么,就會有人說,你問為什么干嘛,會用就行了。 這就是區(qū)別。 所以,在古代,中國人的思維更加有優(yōu)勢,文明程度更高,但是近代西方的思維就更占優(yōu)勢,而東方不問為什么的思維就劣勢。 但是未來,隨著科技的發(fā)展,中國如果多問為什么,再加上宏觀思維,那么優(yōu)勢就很明顯了。 只是時間太短沒體現(xiàn)出來。 不信,在過20年,你再看看,搞科技是中國厲害還是英語國家厲害。 現(xiàn)在已經(jīng)有苗頭了。