關(guān)于“中文編程”的討論時(shí)常在互聯(lián)網(wǎng)引發(fā)爭(zhēng)議。有人提出,既然中國(guó)科技發(fā)展迅猛,中文使用人口全球第一,那么為什么不能擁有一套以中文為基礎(chǔ)的編程語言?

更有聲音質(zhì)疑,為什么英語國(guó)家的人能用母語編程,而中國(guó)程序員卻不能?

這看似合理的觀點(diǎn),實(shí)際上卻存在嚴(yán)重的誤解。事實(shí)上,絕大多數(shù)程序員都反對(duì)中文編程,原因不僅僅是技術(shù)上的問題,更在于它對(duì)整個(gè)軟件行業(yè)發(fā)展的負(fù)面影響。

打開網(wǎng)易新聞 查看精彩圖片

語言并非關(guān)鍵,邏輯才是核心

編程語言的作用,從來都不是為了讓人用母語編程,而是讓計(jì)算機(jī)能夠精準(zhǔn)理解人的指令。計(jì)算機(jī)的底層語言是二進(jìn)制的 0 和 1,任何高級(jí)編程語言,歸根到底都是對(duì)這些機(jī)器指令的封裝。而目前主流的編程語言之所以以英語為基礎(chǔ),并非因?yàn)橛⒄Z國(guó)家刻意壟斷,而是歷史演變的結(jié)果。

打開網(wǎng)易新聞 查看精彩圖片

在計(jì)算機(jī)發(fā)展初期,英語是科學(xué)技術(shù)的主流語言,因此計(jì)算機(jī)相關(guān)的術(shù)語、指令、開發(fā)文檔自然采用了英語。更重要的是,編程語言的優(yōu)勢(shì)并不在于“用哪種自然語言書寫”,而在于其邏輯的嚴(yán)謹(jǐn)性、表達(dá)的簡(jiǎn)潔性和國(guó)際的通用性。

以 Python 為例,它之所以廣受歡迎,是因?yàn)槠湔Z法直觀、結(jié)構(gòu)清晰,學(xué)習(xí)者可以輕松掌握基本的編程邏輯。如果硬要用中文進(jìn)行編程,看似降低了“語言門檻”,實(shí)則人為制造了更多障礙。例如:

對(duì)于 變量 i 在 范圍(10) 內(nèi):

打印("你好,世界!")

打開網(wǎng)易新聞 查看精彩圖片

這種中文編程的寫法,看起來直觀,但在實(shí)際使用時(shí)會(huì)遇到諸多問題:關(guān)鍵詞冗長(zhǎng),閱讀成本增加;中文語法難以兼容現(xiàn)有技術(shù)生態(tài);計(jì)算機(jī)行業(yè)的專業(yè)術(shù)語、開源代碼、國(guó)際 API 規(guī)范全部基于英文,強(qiáng)行漢化反而會(huì)加重理解負(fù)擔(dān)。

編程語言的發(fā)明者之一,比雅尼·斯特勞斯特魯普曾經(jīng)表示,編程語言的核心在于邏輯的表達(dá),而不是使用哪種自然語言。語言的母語化,并不會(huì)讓編程變得更簡(jiǎn)單,反而會(huì)讓它變得更加復(fù)雜。

打開網(wǎng)易新聞 查看精彩圖片

中文編程割裂了中國(guó)程序員的國(guó)際競(jìng)爭(zhēng)力?

現(xiàn)代 IT 產(chǎn)業(yè)的核心競(jìng)爭(zhēng)力,建立在全球開源生態(tài)和技術(shù)協(xié)作體系之上。如今,世界上 99% 的開源庫、技術(shù)文檔、開發(fā)工具都是基于英語構(gòu)建的。如果使用中文編程,程序員將面臨嚴(yán)重的兼容性問題。想要使用主流的 API、框架、數(shù)據(jù)庫,仍然需要閱讀英文資料,那么中文編程帶來的所謂便利就毫無意義。

更嚴(yán)重的問題在于,中文編程將會(huì)進(jìn)一步加大國(guó)內(nèi)程序員與國(guó)際技術(shù)圈的脫節(jié)。如果國(guó)內(nèi)軟件開發(fā)者習(xí)慣了中文編程,那么他們將難以直接參與國(guó)際主流的開源項(xiàng)目,甚至?xí)趪?guó)際市場(chǎng)上失去競(jìng)爭(zhēng)力。

打開網(wǎng)易新聞 查看精彩圖片

相反,如今許多中國(guó)程序員正是憑借熟練的編程能力,在全球范圍內(nèi)與頂級(jí)開發(fā)者競(jìng)爭(zhēng),甚至在 Google、微軟、Facebook 等科技巨頭中占據(jù)重要位置。如果他們?cè)趯W(xué)習(xí)階段就被局限在“中文編程”的體系內(nèi),那么將會(huì)失去與世界競(jìng)爭(zhēng)的機(jī)會(huì)。

中文編程真的更容易嗎?現(xiàn)實(shí)是它更難!

許多中文編程的支持者認(rèn)為,中國(guó)人用中文思考,因此中文編程應(yīng)該更加符合國(guó)人的邏輯。然而,這種觀點(diǎn)實(shí)際上是對(duì)編程方式的誤解。編程思維并不是自然語言思維,而是一種邏輯化、結(jié)構(gòu)化的思維方式。

打開網(wǎng)易新聞 查看精彩圖片

一個(gè)好的編程語言,關(guān)鍵在于語法的簡(jiǎn)潔性和執(zhí)行的高效性,而不是它的母語屬性。如果強(qiáng)行將編程語言本地化,不僅無法提高效率,反而會(huì)帶來一系列問題。首先,中文的書寫方式比英語更復(fù)雜,關(guān)鍵詞往往更長(zhǎng),變量命名也容易受到歧義的影響。例如,“指針”(pointer)可以翻譯為“指向器”,但這樣會(huì)讓初學(xué)者難以理解其真正的作用。

同樣,“類”(class)翻譯為“類別”也可能讓人誤解其實(shí)際功能。此外,中文編程還面臨著嚴(yán)重的維護(hù)和升級(jí)問題。

打開網(wǎng)易新聞 查看精彩圖片

目前主流的開發(fā)工具、API 規(guī)范、代碼庫都是基于英語設(shè)計(jì)的,如果要讓中文編程真正實(shí)現(xiàn)完整的生態(tài)體系,就必須重新建立一套龐大的中文技術(shù)標(biāo)準(zhǔn)。這意味著開發(fā)者需要額外的精力去維護(hù)一整套獨(dú)立的中文開發(fā)環(huán)境,而這在技術(shù)上是不現(xiàn)實(shí)的。

事實(shí)上,中文編程并不是一個(gè)新鮮的概念,中國(guó)早在 20 世紀(jì) 90 年代就有人嘗試過類似的方案,但最終都以失敗告終。其中最著名的案例就是“易語言”,它是國(guó)內(nèi)唯一存活至今的中文編程語言,曾一度被認(rèn)為是中文編程的希望。

打開網(wǎng)易新聞 查看精彩圖片

易語言的特點(diǎn)是完全漢化的語法,使得零基礎(chǔ)用戶可以用中文編寫程序。然而,它的發(fā)展卻并不如預(yù)期,反而長(zhǎng)期處于邊緣化狀態(tài)。主要原因是易語言的封閉性極強(qiáng),難以兼容國(guó)際主流技術(shù)生態(tài)。盡管它曾在一部分初學(xué)者群體中流行,但很快就被市場(chǎng)淘汰,原因之一是主流開發(fā)者不認(rèn)可。

由于易語言的語法相較 C、Java 等編程語言過于簡(jiǎn)單,導(dǎo)致它被許多人認(rèn)為是“玩具語言”,無法承擔(dān)大型項(xiàng)目的開發(fā)。此外,易語言的低門檻使其被灰色產(chǎn)業(yè)濫用,成為網(wǎng)絡(luò)黑產(chǎn)開發(fā)外掛、病毒等非法軟件的工具,這也導(dǎo)致它的口碑在正規(guī)編程圈內(nèi)進(jìn)一步惡化。

打開網(wǎng)易新聞 查看精彩圖片

不僅僅是中國(guó),日本和俄羅斯也曾失敗

中文編程的失敗并非個(gè)例,日本和俄羅斯都曾進(jìn)行類似的嘗試,但都以失敗告終。在 20 世紀(jì) 90 年代,日本曾開發(fā)過 Mind 和 Dolittle 這兩種日語編程語言,試圖讓編程變得更加本土化。然而,由于這些語言與全球主流編程生態(tài)脫節(jié),日本企業(yè)最終仍然選擇使用 C++、Java、Python 等國(guó)際通用語言,日語編程的努力最終淪為歷史的塵埃。

俄羅斯也曾開發(fā)過“1C:Enterprise”這樣的俄語編程環(huán)境,但最終也沒能取代主流的 C++、Java、Python,反而因封閉性強(qiáng)而影響了企業(yè)的國(guó)際化進(jìn)程。

打開網(wǎng)易新聞 查看精彩圖片

俄羅斯的 IT 產(chǎn)業(yè)仍然依賴英語編程,而俄語編程的嘗試也被證明是不可行的。

未來這條路走得通嗎?

從歷史經(jīng)驗(yàn)來看,中文編程的嘗試基本都失敗了,其根本原因在于編程語言的核心不在于母語化,而在于簡(jiǎn)潔、規(guī)范、通用。當(dāng)全球的開發(fā)者都在使用一套通用的編程語言進(jìn)行交流和協(xié)作時(shí),單獨(dú)發(fā)展一套中文編程語言,只會(huì)人為制造阻隔,使中國(guó)開發(fā)者脫離國(guó)際主流。

目前來看,中文編程在未來仍然難以成為主流。全球化的技術(shù)生態(tài)不可逆轉(zhuǎn),中國(guó)科技企業(yè)的發(fā)展離不開國(guó)際合作,強(qiáng)行建立一套封閉的中文編程體系,會(huì)讓國(guó)內(nèi)程序員在全球市場(chǎng)競(jìng)爭(zhēng)中失去優(yōu)勢(shì)。

打開網(wǎng)易新聞 查看精彩圖片

編程語言不僅僅是語法問題,還涉及開發(fā)工具、庫、框架、社區(qū)支持等龐大的生態(tài)體系,重新構(gòu)建一套中文編程環(huán)境幾乎是不可能完成的任務(wù)。此外,計(jì)算機(jī)科學(xué)早已形成了以英語為基礎(chǔ)的技術(shù)標(biāo)準(zhǔn),改變這一體系的成本極高,且得不償失。

未來真正的出路,不是創(chuàng)造一套與世界脫節(jié)的中文編程語言,而是讓中國(guó)的程序員在全球技術(shù)體系中發(fā)揮更大的作用。我們不需要“母語編程”來證明自己的文化自信,而是要在全球規(guī)則下做到最好,掌握真正的技術(shù)話語權(quán)。

參考資料:
澎湃新聞 2022-04-01 18:51《華為自研編程語言“倉(cāng)頡”火上熱搜,已正式開啟內(nèi)測(cè),成員辟謠:不是中文編程》