為什么我們反對(duì)中文編程,英文可能才是現(xiàn)階段最好的編程語言選擇
近些年來有些行業(yè)人士和非本行業(yè)人士提倡中文編程,有想要實(shí)現(xiàn)計(jì)算機(jī)行業(yè)的全面國產(chǎn)化,尤其在編程領(lǐng)域,幾乎沒有一種高級(jí)語言是基于中文實(shí)現(xiàn),這在一定程度上使我們國家的軟件行業(yè)受制了他國。不過,我們可以嘗試一下使用中文編程,看看會(huì)帶來哪些意想不到的問題和挑戰(zhàn)。
首先,我們使用JAVA語言嘗試寫冒泡排序算法:
我們?cè)賴L試直接進(jìn)行關(guān)鍵字和變量名的中文替換,看一下中文版的冒泡排序算法:
讓我們看一個(gè)文言文言文版本數(shù)字開平方的算法:
讓我們看一看木蘭編程語言的代碼風(fēng)格:
相比較之下木蘭編程并非全中文,所以感官上比純中文結(jié)構(gòu)上要清晰一些。
再來一個(gè)東北話版的快速排序的程序:
為什么中文編程,會(huì)使人感覺格格不入?有一部分原因是我們看慣了英文版的代碼,還有一部分原因是計(jì)算機(jī)技術(shù)發(fā)源于國外,現(xiàn)代編程技術(shù)就是以英文為模板設(shè)計(jì)的編程語言。但是,中文真的不適合編程嗎?我想結(jié)果肯定不會(huì)那么絕對(duì)。
現(xiàn)代編程基于解釋器將我們寫的代碼翻譯成機(jī)器可以執(zhí)行的機(jī)器碼,但是,一個(gè)算法程序中,真正有用的邏輯往往并不會(huì)像你看到的代碼那么多。比如在JAVA版的冒泡排序算法中,真正的邏輯只需要一句話就可以概括:多次從前向后兩兩比較,將大數(shù)變換到靠后的位置。
邏輯上來講,編程是為了告訴計(jì)算機(jī)該怎么去進(jìn)行計(jì)算,計(jì)算機(jī)只能執(zhí)行既定的指令,所以編程的很多設(shè)計(jì)都是冗余的告訴計(jì)算機(jī)執(zhí)行任務(wù)時(shí)所要注意的問題和事項(xiàng)。我們不如腦洞大開幻想一下,以后出現(xiàn)一種更高級(jí)的編程語言,暫定為基于思維邏輯的某種語言,該語言基于人類交流的方式實(shí)現(xiàn),只需要組織出最通俗的語言描述運(yùn)行邏輯,某種解釋器即可將該高級(jí)語言描述的邏輯轉(zhuǎn)換為計(jì)算機(jī)可執(zhí)行的代碼。使用這種高級(jí)語言編程,不需要任何的學(xué)習(xí)成本,只需要有完備的邏輯表達(dá)能力即可。這時(shí)候,才是中文編程大放異彩的時(shí)候。
電子信息技術(shù)發(fā)展了如此之久,基本模式已基本確定,是否有一天,我們可以自我突破,完全打破現(xiàn)如今的電子信息格局,以實(shí)現(xiàn)更加高效的電子信息技術(shù)網(wǎng)絡(luò),讓我們拭目以待吧。