另一個(gè)事情更能夠說(shuō)明問(wèn)題。Python 的 GIL 核心代碼 1992 年由該語(yǔ)言創(chuàng)造者 Guido van Rossum 編寫(xiě),此后十八年時(shí)間沒(méi)有一個(gè)人對(duì)這段至關(guān)重要的代碼改動(dòng)過(guò)一個(gè)字節(jié)。十八年!直到2010年,Antoine Pitrou才對(duì) GIL 進(jìn)行了近二十年來(lái)的第一次改進(jìn),而且還僅在 Python 3.x 版本中使用。這也就是說(shuō),今天使用 Python 2.7 的大多數(shù)開(kāi)發(fā)者,他們所寫(xiě)的每一段程序仍然被26年前的一段代碼牢牢制約著。
說(shuō)到 Python 的不足,我就想起發(fā)生在自己身上的一段小小的軼事。我多年前曾經(jīng)在一篇文章里聲明自己看好 Python,而不看好 Ruby。大概兩年多以前,有一個(gè)網(wǎng)友在微博里找到我,對(duì)我大加責(zé)備,說(shuō)因?yàn)楫?dāng)年讀了我這篇文章,誤聽(tīng)讒言,鬼迷心竅,一直專(zhuān)攻 Python,而始終對(duì) Ruby 敬而遠(yuǎn)之。結(jié)果他Python 固然精通,但最近一學(xué) Ruby,如此美好,如此甜蜜,喜不自勝,反過(guò)來(lái)憤然意識(shí)到,當(dāng)年完全被我誤導(dǎo)了,在最美的年華錯(cuò)過(guò)了最美的編程語(yǔ)言。我當(dāng)時(shí)沒(méi)有更多的與他爭(zhēng)辯,也不知道他今天是否已經(jīng)從Python后端、大數(shù)據(jù)分析、機(jī)器學(xué)習(xí)和 AI 工程師成功轉(zhuǎn)型為Rails快速開(kāi)發(fā)高手。我只是覺(jué)得,想要真正認(rèn)識(shí)一件事物的價(jià)值,確實(shí)也不是一件容易的事情。
Python 就是這樣一個(gè)帶著各種毛病沖到第一方陣的賽車(chē)手,但即便到了幾年前,也沒(méi)有多少人相信它有機(jī)會(huì)摘取桂冠,很多人認(rèn)為 Java 的位置不可動(dòng)搖,還有人說(shuō)一切程序都將用 JavaScript重寫(xiě)。但今天我們?cè)倏矗琍ython 已經(jīng)是數(shù)據(jù)分析和 AI的第一語(yǔ)言,網(wǎng)絡(luò)攻防的第一黑客語(yǔ)言,正在成為編程入門(mén)教學(xué)的第一語(yǔ)言,云計(jì)算系統(tǒng)管理第一語(yǔ)言。Python 也早就成為Web 開(kāi)發(fā)、游戲腳本、計(jì)算機(jī)視覺(jué)、物聯(lián)網(wǎng)管理和機(jī)器人開(kāi)發(fā)的主流語(yǔ)言之一,隨著 Python 用戶(hù)可以預(yù)期的增長(zhǎng),它還有機(jī)會(huì)在多個(gè)領(lǐng)域里登頂。
而且不要忘了,未來(lái)絕大多數(shù)的 Python 用戶(hù)并不是專(zhuān)業(yè)的程序員,而是今天還在使用 Excel、PowePoint、SAS、Matlab和視頻編輯器的那些人。就拿 AI 來(lái)說(shuō),我們首先要問(wèn)一下,AI 的主力人群在哪里?如果我們今天靜態(tài)的來(lái)談這個(gè)話題,你可能會(huì)認(rèn)為 AI 的主力是研究機(jī)構(gòu)里的 AI 科學(xué)家、擁有博士學(xué)位的機(jī)器學(xué)習(xí)專(zhuān)家和算法專(zhuān)家。但上次我提到李開(kāi)復(fù)的“AI紅利三段論”明確告訴我們,只要稍微把眼光放長(zhǎng)遠(yuǎn)一點(diǎn),往后看三至五年,你會(huì)看到整個(gè) AI 產(chǎn)業(yè)的從業(yè)人口將逐漸形成一個(gè)巨大的金字塔結(jié)構(gòu),上述的 AI 科學(xué)家僅僅是頂端的那么一點(diǎn)點(diǎn),95% 甚至更多的 AI 技術(shù)人員,都將是AI 工程師、應(yīng)用工程師和AI 工具用戶(hù)。我相信這些人幾乎都將被Python 一網(wǎng)打盡,成為 Python 陣營(yíng)的龐大后備軍。這些潛在的 Python 用戶(hù)至今仍然在技術(shù)圈子之外,但隨著 AI 應(yīng)用的發(fā)展,數(shù)百萬(wàn)之眾的教師、公司職員、工程師、翻譯、編輯、醫(yī)生、銷(xiāo)售、管理者和公務(wù)員將裹挾著各自領(lǐng)域中的行業(yè)知識(shí)和數(shù)據(jù)資源,涌入 Python 和 AI 大潮之中,深刻的改變整個(gè) IT,或者說(shuō) DT (數(shù)據(jù)科技)產(chǎn)業(yè)的整體格局和面貌。
為什么 Python 能夠后來(lái)居上呢?
如果泛泛而論,我很可以列舉 Python 的一些優(yōu)點(diǎn),比如語(yǔ)言設(shè)計(jì)簡(jiǎn)潔優(yōu)雅,對(duì)程序員友好,開(kāi)發(fā)效率高。但我認(rèn)為這不是根本原因,因?yàn)槠渌恍┱Z(yǔ)言在這方面表現(xiàn)得并不差。