Python是編程的未來(lái)嗎?
1989年12月,荷蘭的計(jì)算機(jī)科學(xué)家Guido van Rossum給自己創(chuàng)立了一個(gè)圣誕項(xiàng)目。厭倦了其它語(yǔ)言的缺點(diǎn),他決定自己創(chuàng)造一種編程語(yǔ)言。他創(chuàng)造這種語(yǔ)言的原則很簡(jiǎn)單。首先,易讀性強(qiáng)。與其程序行位雜亂無(wú)章或者由一對(duì)大括號(hào)搞得代碼糾纏,Guido決定使用空格縮進(jìn)來(lái)分割語(yǔ)句塊。其次,它應(yīng)該讓用戶創(chuàng)建自己的專用編碼模塊包,然后這些模塊可以被其他人用來(lái)形成新程序的基礎(chǔ)。然后,這種開(kāi)發(fā)語(yǔ)言需要一個(gè)“短小、獨(dú)特、有點(diǎn)兒神秘感” 的名字。因此,他將這種語(yǔ)言叫“Monty Python”,一個(gè)英國(guó)喜劇組合。程序模塊倉(cāng)庫(kù)被稱之為“奶酪店”。
Van Rossum的圣誕項(xiàng)目近30年后,他模仿了一個(gè)Monty Python的技術(shù)形象,類似電影《Life of Brain》里面的彌賽亞。Van Rossum解釋說(shuō):“我當(dāng)然沒(méi)有打算創(chuàng)造一種旨在大規(guī)模消費(fèi)的語(yǔ)言。”但是,在過(guò)去的12個(gè)月里,美國(guó)的Google用戶搜索Python的數(shù)量遠(yuǎn)遠(yuǎn)大于搜索電視明星卡戴珊的。Python語(yǔ)言的查詢率自2010以來(lái)增長(zhǎng)了三倍,而與此同時(shí)其他編程語(yǔ)言的查詢已趨于平緩或下降。
Python語(yǔ)言的流行不僅在專業(yè)開(kāi)發(fā)者中增長(zhǎng)。根據(jù)編程論壇Stack Overflow統(tǒng)計(jì),近40%的人使用它,還有25%的人希望這樣使用Python。但也與普通人。一個(gè)教了4500名新手如何使用各種語(yǔ)言的網(wǎng)站CodeCademy表明,目前需求增長(zhǎng)最大的是那些希望學(xué)習(xí)Python的人。因此,Python代碼讓那些無(wú)從下手的人觸手可及。Python粉絲們自稱Pythonistas,他們?cè)?ldquo;奶酪店”增加了145000多個(gè)程序包,涵蓋了從天文學(xué)到游戲開(kāi)發(fā)的一切。
Van Rossum盡管對(duì)他的軟件充滿了激情,但是作為“終生好心腸的獨(dú)裁者”,他發(fā)現(xiàn)嚴(yán)格的監(jiān)督變得原來(lái)越難以忍受。他害怕自己變成偶像。“我為名聲所累”他說(shuō)的時(shí)候很像驅(qū)趕眾多信徒的Brain。“有時(shí)候我覺(jué)得我所說(shuō)的或做的每件事都被看作是一股強(qiáng)大的力量。” 7月12日,他辭職了,讓Python粉絲們自我管理。
沒(méi)人期待時(shí)尚的統(tǒng)計(jì)學(xué)家
Python并不完美。其它語(yǔ)言具有更高的處理效率和專業(yè)能力。C和C++是底層語(yǔ)言,它們給與用戶更多控制計(jì)算機(jī)處理器的機(jī)會(huì)。Java是用于構(gòu)建大型復(fù)雜應(yīng)用程序的流行工具。JavaScript是通過(guò)Web瀏覽器訪問(wèn)的應(yīng)用程序的首選語(yǔ)言。無(wú)數(shù)種開(kāi)發(fā)語(yǔ)言為了不同的目的而進(jìn)化。但是Python的殺手級(jí)特性:具有簡(jiǎn)單的語(yǔ)法,使其代碼易于學(xué)習(xí)和共享,它的大量第三方包使它成為一種良好的通用語(yǔ)言。它的多樣性體現(xiàn)在它的用戶范圍和用途上。美國(guó)中央情報(bào)局已將Python用于黑客,皮克斯用Python制作電影,谷歌用Python爬行網(wǎng)頁(yè),Spotify用Python推薦歌曲。
在“奶酪店”,最新引人的Python包是一些控制AI(Artificial Intelligence)的。用戶可以創(chuàng)建模仿大腦中的連接的神經(jīng)網(wǎng)絡(luò),以選擇大量數(shù)據(jù)的模式。Van Rossum說(shuō),Python已經(jīng)成為AI研究人員的首選語(yǔ)言,他們已經(jīng)為它生產(chǎn)了許多軟件包。
并非所有的Python粉絲都雄心勃勃,Codecademy的老板Zach Sims,相信很多訪問(wèn)者都試圖獲取技能,這些技能可以幫助他們?cè)趥鹘y(tǒng)上被視為“非技術(shù)性”的工作。例如:營(yíng)銷人員可以使用語(yǔ)言來(lái)建立統(tǒng)計(jì)模型,衡量活動(dòng)的有效性。大學(xué)講師可以檢查他們是否正確地分配等級(jí)。(甚至《經(jīng)濟(jì)學(xué)家》報(bào)的記者們,通常也使用Python來(lái)爬去網(wǎng)頁(yè)上的數(shù)據(jù)。)
對(duì)于長(zhǎng)期依賴于電子表格的專業(yè)人員來(lái)說(shuō),Python特別有價(jià)值。美國(guó)花旗銀行集團(tuán),為實(shí)習(xí)分析師推出了一個(gè)Python的速成課程。就業(yè)網(wǎng)站eFinancialCareers報(bào)告稱,在2015至2018季度第一季度,Python的市場(chǎng)需求量增長(zhǎng)了近四倍。
對(duì)這些技能的渴求并非沒(méi)有風(fēng)險(xiǎn)。咨詢公司貝恩公司的合伙人Cesar Brea警告說(shuō),他交易中最可怕的事情是“一個(gè)人學(xué)會(huì)了一個(gè)工具,卻不知道底層下發(fā)生了什么”。沒(méi)有適當(dāng)?shù)谋O(jiān)督,一個(gè)與AI圖書(shū)館玩的新手可能會(huì)得出一些荒謬的結(jié)論。波士頓咨詢集團(tuán)的合伙人Bernd Ziegler說(shuō),他的公司將這種分析保留給數(shù)據(jù)組的成員。
Russum的通用機(jī)器人
解決半受過(guò)教育的改進(jìn)者的一個(gè)辦法是在語(yǔ)言的奧秘中恰當(dāng)?shù)亟逃麄儭ython在2014已經(jīng)是美國(guó)大學(xué)最流行的入門(mén)語(yǔ)言,但它的教學(xué)一般局限于那些學(xué)習(xí)科學(xué)、技術(shù)、工程和數(shù)學(xué)的人。一個(gè)更激進(jìn)的建議是通過(guò)向所有人包括小學(xué)提供計(jì)算機(jī)科學(xué)來(lái)吸引他們。慈善機(jī)構(gòu)Cord.Org的老板Hadi Partovi指出,40%的美國(guó)學(xué)?,F(xiàn)在提供這樣的課程,高于2013的10%。大約10到12歲的三分之二的人在Orthor.org網(wǎng)站上有一個(gè)賬戶。也許是因?yàn)槲磥?lái)充滿了自動(dòng)化的工作而感到不安,90%的美國(guó)父母希望他們的孩子學(xué)習(xí)計(jì)算機(jī)科學(xué)。
Python的崛起還將持續(xù)多久,所有人都在猜測(cè)。在過(guò)去,有一種占主導(dǎo)地位的計(jì)算機(jī)語(yǔ)言,雖然不完全是“又強(qiáng)大又好用”,但現(xiàn)在卻隱藏在后臺(tái)。在20世紀(jì)60年代,F(xiàn)ortran在世界范圍內(nèi)傳播。作為新手的語(yǔ)言教學(xué),Basic和Pascal都有過(guò)其輝煌的時(shí)刻。Partovi先生自己也選擇JavaScript作為Code.org核心教學(xué)大綱的語(yǔ)言,因?yàn)樗匀皇莿?dòng)畫(huà)網(wǎng)頁(yè)的標(biāo)準(zhǔn)選擇。
任何計(jì)算語(yǔ)言都不可能僅僅是以通用為目的。專業(yè)化仍然很重要。然而,確實(shí),在過(guò)去的圣誕潮中,Van Rossum先生的確創(chuàng)造了一些值得紀(jì)念的東西。他不是彌賽亞,但他是一個(gè)非常聰明的人。
譯者介紹:
ArthurGuo 職場(chǎng)老司機(jī)。21世紀(jì)初開(kāi)始擁抱開(kāi)源,后轉(zhuǎn)型項(xiàng)目管理。現(xiàn)在一創(chuàng)業(yè)云公司擔(dān)任PMO。掌握多門(mén)計(jì)算機(jī)語(yǔ)言,但更擅長(zhǎng)人類語(yǔ)言。愛(ài)玩文字,不喜毒舌。