有的語言,從一開始就是出于學(xué)術(shù)而非實用的目的,學(xué)習(xí)曲線過于陡峭,一般人很難接近。有的語言,過于依賴背后金主的商業(yè)支持,好的時候風(fēng)光無限,一旦被打入冷宮,連生存下去都成問題。有的語言,設(shè)計的時候有明確的假想場景,要么是為了解決大規(guī)模并發(fā),要么是為了解決矩陣運(yùn)算,要么是為了做網(wǎng)頁渲染模板,一旦離開這個場景,就各種不爽。更多的語言,剛剛?cè)〉靡稽c(diǎn)成功,就迫不及待的想成為全能冠軍,在各個方向上拼命的伸展觸角,特別是在增強(qiáng)表達(dá)能力和提升性能方面經(jīng)常過分積極,不惜將核心語言改得面目全非,最后變成誰都無法掌控的龐然大物。相比之下,Python 是現(xiàn)代編程語言設(shè)計和演化當(dāng)中的一個成功典范。
Python 之所以在戰(zhàn)略定位上如此清晰,戰(zhàn)略堅持上如此堅定,歸根結(jié)底是因為其社區(qū)構(gòu)建了一個堪稱典范的決策和治理機(jī)制。這個機(jī)制以 Guido van Rossum (BDFL,Pythoners 都知道這是什么意思), DavidBeazley, Raymond Hettinger 等人為核心,以 PEP 為組織平臺,民主而有序,集中而開明。只要這個機(jī)制本身得以維系,Python 在可見的未來里仍將一路平穩(wěn)上行。
最有可能向 Python 發(fā)起挑戰(zhàn)的,當(dāng)然是Java。Java 的用戶存量大,它本身也是一種戰(zhàn)略定位清晰而且非常堅定的語言。但我并不認(rèn)為 Java 有很大的機(jī)會,因為它本質(zhì)上是為構(gòu)造大型復(fù)雜系統(tǒng)而設(shè)計的。什么是大型復(fù)雜系統(tǒng)?就是由人清清楚楚描述和構(gòu)造出來的系統(tǒng),其規(guī)模和復(fù)雜性是外生的,或者說外界賦予的。而 AI 的本質(zhì)是一個自學(xué)習(xí)、自組織的系統(tǒng),其規(guī)模和復(fù)雜性是一個數(shù)學(xué)模型在數(shù)據(jù)的喂養(yǎng)下自己長出來的,是內(nèi)生的。因此,Java大多數(shù)的語言結(jié)構(gòu)對于大數(shù)據(jù)的處理和 AI 系統(tǒng)的開發(fā)顯得使不上勁,你強(qiáng)的東西這里用不上,這里需要的東西你做起來又別扭。而 Python 在數(shù)據(jù)處理方面的簡潔強(qiáng)悍早就盡人皆知。對比兩個功能相同的 Java 和 Python 機(jī)器學(xué)習(xí)程序,正常人只要看兩眼就能做出判斷,一定是 Python 程序更加清爽痛快。
大概在 2003 或者 2004 年的時候,我買過一本 Python 的書,作者是一位巴西人。他說自己之所以堅定的選擇 Python,是因為他小時候經(jīng)常夢到未來世界將由一條大蟒蛇(蟒蛇的英文為python)統(tǒng)治。我當(dāng)時覺得這哥們好可憐,做個夢都能夢到這么恐怖的場景。但今天來看,也許他只是像黑客帝國里的程序員安德森一樣,不小心穿越到未來,并且窺探到了世界的真相。