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