中文字幕在线观看,亚洲а∨天堂久久精品9966,亚洲成a人片在线观看你懂的,亚洲av成人片无码网站,亚洲国产精品无码久久久五月天

Python簡(jiǎn)史:開發(fā)者的小小副業(yè)如何成為全球最熱編程語言?

2019-08-21    來源:raincent

容器云強(qiáng)勢(shì)上線!快速搭建集群,上萬Linux鏡像隨意使用

1989 年,Guido van Rossum 厭倦了當(dāng)時(shí)已有編程語言的缺點(diǎn),決定創(chuàng)造一種新的編程語言,于是 Python 誕生了,F(xiàn)在 Python 已經(jīng)擁有數(shù)百萬用戶,那么關(guān)于這門語言的過去、現(xiàn)在和未來,創(chuàng)造者 van Rossum 有什么要說的呢?

1994 年末,一組從全美國(guó)選出來的程序員聚在一起討論他們的新型秘密武器。

這是針對(duì)新型編程語言 Python 舉辦的第一次 workshop,共有二十來個(gè)程序員參加,Barry Warsaw 是其中之一。他記得當(dāng)時(shí)這些第一批用 Python 的人都很興奮。

「我記得有個(gè)人說:『不要告訴別人我參加了這次 workshop,因?yàn)槭褂?Python 是我們的獨(dú)特競(jìng)爭(zhēng)優(yōu)勢(shì)!籔ython 是一個(gè)秘密武器!

這次 workshop 在當(dāng)時(shí)的美國(guó)國(guó)家標(biāo)準(zhǔn)局(NBS)舉辦,Warsaw 表示:很顯然,當(dāng)時(shí) Python 提供了一些新特性,使寫代碼的過程變得簡(jiǎn)單、便捷。

「第一次使用 Python 時(shí),我就知道它很特別。它提高了代碼的可讀性,寫 Python 代碼是很愉快的過程!笲arry 回憶道。

現(xiàn)在,Python 熱潮早已突破了最初的開發(fā)者圈子。有人預(yù)測(cè)它將很快成為世界上最流行的編程語言。它吸引新用戶的速度遠(yuǎn)超其他語言,每天有數(shù)百萬人使用 Python,且用戶數(shù)量的指數(shù)級(jí)增長(zhǎng)沒有顯現(xiàn)出衰退跡象。

Python 可用于大型任務(wù)和小型任務(wù),專業(yè)開發(fā)者、業(yè)余開發(fā)者都可以使用。該語言尤其受到 web 開發(fā)者、數(shù)據(jù)科學(xué)家和系統(tǒng)管理員的青睞。今年 4 月,人類成功拍攝了首張黑洞照片,這其中 Python 功不可沒,它將分布在世界各地的電腦上的腳本合成起來。

在許多世界知名的組織中,Python 也發(fā)揮著重要作用,如它幫助 Netflix 向全世界 1 億多個(gè)家庭提供視頻流,支持照片分享社區(qū) Instagram,還幫助 NASA 探索太空。

Python,誕生伊始

就某些方面而言,Python 的崛起就像英國(guó)同名喜劇組合「Monty Python」一樣離奇怪誕,而它也同樣在自己的生態(tài)系統(tǒng)中積聚出名氣和影響力。

Python 最初只是荷蘭程序員 Guido van Rossum 的「副業(yè)」。1980 年代末,van Rossum 在荷蘭數(shù)學(xué)和計(jì)算機(jī)科學(xué)研究學(xué)會(huì) (CWI) 工作。他厭倦了當(dāng)時(shí)已有編程語言的缺陷,決定創(chuàng)造一種既好用又高能的新語言。

 

 

Guido van Rossum,2001 年。這一年 Python 軟件基金會(huì)成立。(圖源:Guido van Rossum)

對(duì)于門外漢來說,創(chuàng)造一門自己的編程語言不亞于「自己造一架飛機(jī)」,但是時(shí)年三十多歲的 van Rossum 有他自己的優(yōu)勢(shì)。當(dāng)時(shí)他與 CWI 的一個(gè)團(tuán)隊(duì)用三年時(shí)間創(chuàng)造了一種解釋性編程語言 ABC,所以他對(duì)構(gòu)建執(zhí)行編程指令的解釋器需要什么、新語言需要哪些語法構(gòu)建塊都有自己的見解。

對(duì)于當(dāng)時(shí)的 van Rossum 來說,意識(shí)到已有編程語言的易用性缺陷也是非常重要的。他當(dāng)時(shí)正在開發(fā)的 Amoeba 分布式計(jì)算系統(tǒng)需要使用 C 語言或 Unix shell,這兩種語言都有很明顯的缺陷。

C 語言不僅需要開發(fā)者執(zhí)行手動(dòng)管理內(nèi)存的復(fù)雜工作、時(shí)刻面臨潛在的錯(cuò)誤,還缺少可重用代碼庫,這就使得開發(fā)者在每執(zhí)行一個(gè)新項(xiàng)目時(shí)就得重新造一個(gè)輪子。而 Unix shell 存在另外一些問題:它為常見任務(wù)提供了一套實(shí)用工具,但是運(yùn)行速度很慢,無法處理復(fù)雜邏輯。

這些語言對(duì)開發(fā)者造成的限制使得 van Rossum 決定自己創(chuàng)建一種解釋性語言,這門語言借鑒了 ABC 語言的最優(yōu)特性。

「我當(dāng)時(shí)的想法是『為什么不創(chuàng)造一種自己的語言呢』,借鑒 ABC 語言的思想,但縮小項(xiàng)目的規(guī)模,把一個(gè)團(tuán)隊(duì)三年完成的事情縮減到我自己三個(gè)月就能完成的規(guī)模(就像臭鼬工廠的項(xiàng)目那樣)。就這樣 Python 誕生了!箆an Rossum 說道。

1989 年底,van Rossum 開始積極投入該項(xiàng)目。他借用了自己最喜歡的喜劇組合 Monty Python's Flying Circus 的名字為該語言命名,并在任何可以工作的時(shí)候投入該項(xiàng)目的研發(fā)。

「那時(shí)候我的社交活動(dòng)很少,在閑暇時(shí)刻我也不看電視,而是把時(shí)間花在編程上,或者同時(shí)做這兩件事!

盡管創(chuàng)造 Python 名義上是為了輔助自己的工作,但 van Rossum 發(fā)現(xiàn)創(chuàng)建這門語言的動(dòng)力多過挑戰(zhàn)。

「我也不知道自己有多大信心能通過這個(gè)工具提高效率。我認(rèn)為我只是享受獨(dú)自做大項(xiàng)目的快感,寫自己想寫的代碼,按照自己的想法設(shè)計(jì)。我喜歡編程!箆an Rossum 說道。

一個(gè)人自己創(chuàng)造了一種編程語言,這聽起來很不尋常,但是 van Rossum 得到了足夠的支持。1980 年代末,出于對(duì)當(dāng)時(shí)可用開發(fā)工具的失望,多種主流語言應(yīng)運(yùn)而生。

Larry Wall 曾說過:他創(chuàng)造 Perl 是因?yàn)橛矛F(xiàn)有工具編程很難解決某個(gè)問題,而且他具備偉大程序員的三大優(yōu)點(diǎn):懶惰、暴躁和自負(fù)。(懶惰會(huì)促使程序員寫一些省事的程序,輔助自己或別人更好地完成工作,無需做重復(fù)和繁瑣的勞動(dòng);暴躁讓程序員主動(dòng)去完成一些你還沒有提出的工作,去優(yōu)化自己的代碼讓它更有效率,能夠 3 秒鐘完成的任務(wù),我們絕不能容忍 1 分鐘的等待;自負(fù)會(huì)促使程序員寫出可靠無誤的代碼,我們寫代碼不是為了接受批評(píng)和指責(zé),而是為了讓其他人來膜拜。)類似地,為了尋找一種更好的語言來創(chuàng)造構(gòu)建集成電路的交互工具,John Ousterhout 設(shè)計(jì)了 Tcl 語言。

僅僅用了三個(gè)月時(shí)間,van Rossum 就創(chuàng)建了 Python 的工作原型,他認(rèn)為該原型雖然缺乏一些現(xiàn)代特性,但是仍然能夠從中看出今天 Python 的雛形。

「現(xiàn)在 Python 具備大量當(dāng)時(shí)還沒有的重要抽象,但是不管怎么變化,Python 語言看起來是類似的。當(dāng)時(shí)我已經(jīng)具備 Python 解釋器、Python 語言運(yùn)行的所有基本組件。第一個(gè) Python 解釋器創(chuàng)造的簡(jiǎn)單 Python 程序可能到現(xiàn)在還能運(yùn)行!顾又a(bǔ)充道,函數(shù)的定義方式?jīng)]有變化、代碼縮進(jìn)規(guī)則沒有變化、字典和元組也是使用相同的語法創(chuàng)建,同樣不變的還有,在交互式模式下直接輸入 Python 代碼即可立即執(zhí)行計(jì)算。

但是,當(dāng) van Rossum 的兩個(gè)同事開始使用這門語言時(shí),他對(duì) Python 的廣泛傳播不抱太大期望,他已經(jīng)經(jīng)歷過前互聯(lián)網(wǎng)時(shí)代讓編程語言取得進(jìn)展的艱難。

今天向全世界共享軟件只需幾次點(diǎn)擊即可,而在 1980 年代,這事兒要難得多。van Rossum 回憶起嘗試分發(fā) Python 前身 ABC 語言時(shí)的重重困難。

「我記得大概是在 1985 年,第一次去美國(guó),我?guī)Я艘幌浯艓В艓Ю锸?ABC 語言!

有一些人通過當(dāng)時(shí)初級(jí)的電子郵件系統(tǒng)傳達(dá)了他們對(duì) ABC 語言的興趣。van Rossum 借助這些人的地址和電話號(hào)碼,挨個(gè)發(fā)放磁帶。但是,ABC 并沒有流行起來。

「這也難怪,ABC 有那么多優(yōu)秀的特性,卻無法得到很好的分發(fā)!沟请S著互聯(lián)網(wǎng)革命的發(fā)展,分發(fā) Python 要簡(jiǎn)單多了,最起碼不用再弄一箱子磁帶了。

1991 年,van Rossum 通過 alt.sources newsgroup 向全世界發(fā)布了 Python。盡管 Python 解釋器仍然需要由 21 個(gè)單獨(dú)的部分組合并壓縮成一個(gè)文件,需要通過 Usenet 網(wǎng)絡(luò)下載一整晚,但這比之前的當(dāng)面派發(fā)還是要高效多了。

「我希望 Python 能夠獲得成功,但是我之前發(fā)布的語言失敗過。」

失敗的經(jīng)歷縈繞在腦海中,van Rossum 說他很長(zhǎng)時(shí)間都不去看 Python 用戶群增長(zhǎng)方面的信息。漸漸地,他意識(shí)到發(fā)展勢(shì)頭不錯(cuò),在與 Python 社區(qū)定期交流一段時(shí)間之后,他發(fā)現(xiàn)自己成功了。

「我認(rèn)為這種發(fā)現(xiàn)來得非常非常緩慢。在我們第一次開源發(fā)布之后,我的工作節(jié)奏是開發(fā)新的發(fā)布版本、與剛出現(xiàn)的 Python 社區(qū)交流。」

Python 為什么能贏?

1990 年代早期和中期,Python 語言發(fā)展迅速,Python 的時(shí)代似乎到來了。這令 van Rossum 感到震驚。

van Rossum 認(rèn)為開發(fā)者使用 Python 的原因和他最初創(chuàng)建 Python 的原因一致。他們想要一種高級(jí)的腳本語言,能夠平衡易用性和強(qiáng)悍能力,在處理復(fù)雜邏輯時(shí)不會(huì)出現(xiàn) Unix shell 的局限性。他們想要結(jié)束使用 C 語言時(shí)必須手動(dòng)執(zhí)行內(nèi)存管理、必須在每個(gè)項(xiàng)目開始時(shí)重復(fù)造輪子的局面。

Barry Warsaw 表示,Python 既具備易用性,其能力也不打折扣,這種平衡是 1990 年代早期的主流編程語言所不具備的。「我之前寫過大量 Perl、Tcl 和 C 代碼,寫的過程并不怎么愉悅。當(dāng) Python 出現(xiàn)時(shí),我的感覺是:『哇,它讓編程重新變得有趣了!』」

Python 當(dāng)時(shí)所提供并一直提供到現(xiàn)在的,是清晰、不含混的語法,用縮進(jìn)將代碼分塊,幫助開發(fā)者更輕松地理解代碼。

高德納咨詢公司(Gartner)應(yīng)用平臺(tái)戰(zhàn)略團(tuán)隊(duì)研究總監(jiān) Fintan Ryan 表示,清晰性是 Python 贏得開發(fā)者的重要因素,盡管用縮進(jìn)實(shí)現(xiàn)這一重要功能引起了分歧。「它提供非常簡(jiǎn)潔的語法。你也可以在其他語言中執(zhí)行縮進(jìn),但 Python 能夠自動(dòng)執(zhí)行。一些程序員喜歡這一點(diǎn),一些則討厭它!

 

 

1994 年 Barry Warsaw 參加第一次 Python Workshop 時(shí)的照片。(圖源:Barry Warsaw)

Python 強(qiáng)調(diào)簡(jiǎn)潔、可讀的代碼,這一點(diǎn)并非偶然。van Rossum 曾表示,編程語言不僅告訴計(jì)算機(jī)要做什么,也用于開發(fā)者之間的信息交流。

關(guān)于可讀性,Ryan 表示,Python 從一開始就提供有別于其他語言的內(nèi)置功能!改阋簧鲜志涂梢允褂妙、異常處理等功能。Python 還提供對(duì) lambda、map 和 filter 等函數(shù)的支持,這些函數(shù)在很多案例中非常有用。」

如果 1980 年代末的流行編程語言能夠更好,或許 Python 壓根就不會(huì)出現(xiàn)。van Rossum 當(dāng)時(shí)創(chuàng)造 Python 的一大動(dòng)力來自于,他在 CWI 開發(fā)的 Amoeba 分布式計(jì)算系統(tǒng)與 Perl 腳本語言不兼容!笇(duì)于 Python 而言,最幸運(yùn)的事莫過于 Perl 與 Amoeba 不兼容了。如果 Perl 可以移植到 Amoeba,那我可能不會(huì)想自創(chuàng)語言!箆an Rossum 說道。

盡管 Python 一經(jīng)發(fā)布就吸引了一票硬核粉絲,形成了用戶群,但在 1990 年代 Python 仍然處于劣勢(shì)。van Rossum 表示,Python 的競(jìng)爭(zhēng)對(duì)手是 Tcl/Tk 和 Perl,它們和 Python 的目標(biāo)一樣:兼具易用性和強(qiáng)悍能力!1990 年代 top 3 編程語言中,Perl 絕對(duì)是第一,Tcl/Tk 排名第二,Python 只占第三名。」

根據(jù) Stack Overflow 開發(fā)者調(diào)查報(bào)告,現(xiàn)在 Python 是活躍用戶增長(zhǎng)最快的編程語言,而 Perl 已經(jīng)滑出最新的 Stack Overflow 調(diào)查報(bào)告。

下圖展示了 Python 的爆炸式增長(zhǎng):近年來在 Stack Overflow 網(wǎng)站上,Python 相關(guān)問題的閱讀量增長(zhǎng)速度遠(yuǎn)遠(yuǎn)超過其他編程語言。

 

 

在 Stack Overflow 網(wǎng)站上,Python 與其他語言相關(guān)問題的閱讀量增長(zhǎng)速度對(duì)比顯示出 Python 用戶群的巨額增長(zhǎng)。(圖源:Stack Overflow)

那么 Python 是如何超越前對(duì)手 Perl 的呢?又該怎么解釋二者迥然不同的命運(yùn)呢?van Rossum 認(rèn)為,這與代碼庫超出一定規(guī)模后能否輕松維護(hù)有關(guān)!溉藗兊慕(jīng)驗(yàn)是,對(duì)于 10 行的代碼,Perl 絕對(duì)沒問題。但如果你有 500 行主線代碼、包含幾千行代碼的庫,那在 Perl 中維護(hù)該代碼庫就需要大量精力了。而使用 Python 的話,即使沒有足夠的精力去管理,代碼仍然是相對(duì)可讀且可維護(hù)的。」

既易于使用,又足夠穩(wěn)健可以寫大型應(yīng)用,van Rossum 認(rèn)為這是 Python 在 1990 年代取得初步成功的原因!府(dāng)時(shí)的一些網(wǎng)絡(luò)開發(fā)者想寫更大的應(yīng)用,他們認(rèn)為用 Python 寫大型應(yīng)用比使用 C、C++ 或 Java 要省力很多!

隨著 1990 年代 Python 使用范圍的擴(kuò)大,當(dāng)時(shí)仍在 CWI 工作的 van Rossum 發(fā)現(xiàn)他創(chuàng)建的這門語言越來越多地把他和世界各地的人們聯(lián)結(jié)起來。

Python 和 web

1990 年代中期,Python 的使用開始出現(xiàn)新方式,從音頻錄制和回放腳本到首次涉足 web 開發(fā)。而后者成為了 Python 使用的主流。

「最大的應(yīng)用方向是 web 開發(fā),這也是我很感興趣的方向。你可以用 Python 創(chuàng)建動(dòng)態(tài)網(wǎng)頁,這是我最喜歡的 Python 應(yīng)用之一!箆an Rossum 說道。

Ryan 表示,1990 年代 Python 在開發(fā)者之間流行的原因是,它成為快速創(chuàng)建強(qiáng)大腳本的最受歡迎語言。「作為具備強(qiáng)大功能的腳本語言,它降低了很多用戶的使用門檻。」

此外,Ryan 還表示 Python 足夠靈活,很容易學(xué)習(xí),從而吸引了具備不同技術(shù)專長(zhǎng)的不同類型用戶!赶到y(tǒng)管理員等使用 Python 執(zhí)行系統(tǒng)自動(dòng)化和系統(tǒng)編程,開發(fā)者看重 Python 的函數(shù)式編程和類的繼承等特性。而 Perl 在這方面要遜色很多。一旦人們熟悉了 Python 語言,況且這門語言比較好學(xué),他們的生產(chǎn)效率就會(huì)得到迅速提升!

1994 年,時(shí)任美國(guó)國(guó)家標(biāo)準(zhǔn)局(NBS,現(xiàn)美國(guó)國(guó)家標(biāo)準(zhǔn)與技術(shù)研究院 NIST)高管的 Michael McLay 注意到了 Python。他對(duì) NBS 科學(xué)家能夠以何種方式使用 Python 很感興趣,這預(yù)示著 Python 會(huì)因其易用性受到研究人員和科學(xué)家的青睞。van Rossum 表示 NBS「有大量數(shù)據(jù)需要處理,但是缺乏優(yōu)秀的編程人員」。

為了讓 NBS 內(nèi)部的其他人員接受 Python,McLay 邀請(qǐng) van Rossum(當(dāng)時(shí)仍在荷蘭 CWI 工作)來 NBS 擔(dān)任為期兩個(gè)月的客座研究員。這一任命成為 Python 未來演進(jìn)的催化劑,也為 van Rossum 的生活帶來了巨大改變。

 

 

首屆 Python Workshop 時(shí) van Rossum 與 Barry Warsaw、Roger Masse 的合照(當(dāng)時(shí) Barry Warsaw 和 Roger Masse 都在 CNRI 工作)。(圖源:Barry Warsaw)

正是在這一任命期間,首屆 Python Workshop 在 NBS 的辦公室里舉辦了,van Rossum、Barry Warsaw 等 Python 早期用戶齊聚一堂,討論他們用 Python 做了什么以及對(duì) Python 未來發(fā)展的期待。

在 NBS 的辦公室里,van Rossum 見到了 Bob Kahn,后者因發(fā)明互聯(lián)網(wǎng)基礎(chǔ)技術(shù) TCP/IP 協(xié)議而聞名。

這次會(huì)面為 van Rossum 帶來了一個(gè)工作 offer——與 Kahn 一起在美國(guó)全國(guó)研究創(chuàng)新聯(lián)合會(huì) (CNRI) 工作。CNRI 是一個(gè)非盈利性研究組織,專注于網(wǎng)絡(luò)技術(shù)的戰(zhàn)略開發(fā)。

正像 Python 滿足了人們對(duì)新型編程語言的需求一樣,這個(gè)工作 offer 也來得恰如其時(shí)。當(dāng)時(shí) van Rossum 對(duì)自己在 CWI 的未來正持懷疑態(tài)度!窩WI 更像一個(gè)學(xué)術(shù)機(jī)構(gòu),他們給了我一點(diǎn)壓力,要么拿到 PhD 學(xué)位,要么到別處找工作!

「當(dāng)時(shí)我 35 歲左右,讀 PhD 對(duì)我沒什么吸引力。由于 Python 的緣故,我的生命中出現(xiàn)了一些其他的可能性,經(jīng)過一些電話聊天和思考,我決定不去讀 PhD,而是去嘗試新的選擇!

1995 年 4 月,van Rossum 加入 CNRI。在 CNRI,van Rossum 和一群 Python 愛好者一起構(gòu)建了管理 Python 語言的結(jié)構(gòu)。在這里他領(lǐng)導(dǎo)了一支小型開發(fā)者團(tuán)隊(duì)構(gòu)建 Knowbot 程序,該軟件是在分布式計(jì)算機(jī)系統(tǒng)(如互聯(lián)網(wǎng))上運(yùn)行的移動(dòng)代理。

這支團(tuán)隊(duì)使用 Python 工作,團(tuán)隊(duì)成員包括 van Rossum、Jeremy Hylton、Roger Masse、Barry Warsaw、Ken Manheimer 和 Fred Drake,他們?cè)?Python 社區(qū)中都發(fā)揮了重要作用。

「我們組最后有 4 到 10 人,大部分在 CNRI 工作,是 Python 開發(fā)的主力軍!箆an Rossum 表示。

在 CNRI 工作期間,這支團(tuán)隊(duì)創(chuàng)建了用于管理核心代碼庫變更的 CVS 服務(wù)器——python.org (http://python.org/) website,以及幫助改善和維護(hù) Python 的 Python Special Interest Groups 郵件列表。

自 1991 年 Python 公開發(fā)布后,Python 用戶社區(qū)發(fā)展迅猛。1990 年代下半葉,Python 吸引了大量全球用戶群體。在這段時(shí)間內(nèi),Python 的管理開始變得正規(guī),成立了管理結(jié)構(gòu),2001 年還成立了 Python 軟件基金會(huì) (PSF)。隨著社區(qū)的發(fā)展,自 1994 年開始一年兩次的 Python workshop 演變成大型年度盛事,最終成為每年一次的 PyCon 大會(huì)。

進(jìn)入 21 世紀(jì),Python 的用戶群變得更加龐大,社區(qū)在發(fā)展過程中發(fā)揮了積極的作用。van Rossum 仍然是核心,而且關(guān)于他會(huì)一直擔(dān)當(dāng) Python 核心的想法不曾消失,比如人們稱他為「終身仁慈獨(dú)裁者」(BDFL)。

「在很長(zhǎng)一段時(shí)間里,我承受住了壓力,也提升了項(xiàng)目管理技能,比如把大量工作委托給別人、讓大家各司其職!箆an Rossum 表示。

Ryan 稱,語言的創(chuàng)造者成為管理者,這并不鮮見,比如創(chuàng)造了 Perl 的 Larry Wall、創(chuàng)造了 Node.js 的 Ryan Dahl,而 van Rossum 因其在 Python 管理過程中的公平公正而著稱!复蠹叶颊J(rèn)同,他在項(xiàng)目的發(fā)展方向和自己的管理工作之間做出了很好的平衡!

的確,van Rossum 確立的開放性本質(zhì)(核心開發(fā)者通過公開辯論幫助決策)是 Python 成功的決定性因素。

Python 的演變

Python 發(fā)布以來,出現(xiàn)過幾次大的飛躍,如 2008 年 Python 3.0 的出現(xiàn)使該語言現(xiàn)代化,以及最近關(guān)于 Python 管理機(jī)制的重大變化。

變化是從去年開始的,van Rossum 宣布卸任 BDFL,直接導(dǎo)火線是 Python 改進(jìn)提案 PEP 572,該提案是關(guān)于給 Python 添加表達(dá)式內(nèi)賦值的語法,但引起了公開反對(duì)。

盡管該提案的目的是寫出更高效的代碼,但 van Rossum 迎來了反對(duì)者鋪天蓋地的批評(píng),有些用戶認(rèn)為該語法會(huì)降低代碼的可讀性,使代碼更難維護(hù)。

van Rossum 說他已經(jīng)習(xí)慣了關(guān)于新特性的爭(zhēng)論,但是這一次,一些批評(píng)者不妥協(xié)的態(tài)度以及針對(duì)個(gè)人的攻擊使得他下定決心退休。

「技術(shù)層面持反對(duì)意見的人竟然跑到社交媒體上,大喊決策流程崩潰或我犯了重大失誤,這令我失望。我覺得自己受到了來自背后的攻擊!

「過去,在需要對(duì) Python 做出改變或者改進(jìn)某個(gè)特性時(shí),核心開發(fā)組會(huì)討論優(yōu)缺點(diǎn)再進(jìn)行決策。不管大家是否達(dá)成共識(shí),我最終都會(huì)認(rèn)真考量并做出決定。關(guān)于 PEP572 提案,盡管存在爭(zhēng)議,但是我最終決定「Yes,我想做這個(gè)功能」,而人們卻沒有選擇信服。這并不是反叛,不過我覺得我和核心開發(fā)者之間缺乏足夠的信任來繼續(xù)下去。」

他認(rèn)為,這種爭(zhēng)議的變化部分原因在于用戶量太大。「或許 Python 社區(qū)太大了吧,達(dá)成任何形式的共識(shí)都變得更加困難,因?yàn)椴还苣阕龀鍪裁礇Q定都會(huì)有人反對(duì)!

今年早些時(shí)候,Python 核心開發(fā)者選出了指導(dǎo)委員會(huì)來監(jiān)督 Python 的未來發(fā)展。van Rossum、Barry Warsaw、Brett Cannon、Carol Willing 和 Nick Coghlan 當(dāng)選指導(dǎo)委員會(huì)成員。

Warsaw 表示,這一變化對(duì)管理用戶群增長(zhǎng)如此迅速的語言是一種必然!肝艺J(rèn)為 Guido 確實(shí)把所有事情扛在自己的肩上。25 年前這沒什么問題,那會(huì)兒 Python 社區(qū)比較小,而現(xiàn)在再把所有事情一肩挑就太難了。我認(rèn)為,為了他的健康和對(duì)社區(qū)的參與,將負(fù)擔(dān)分給五個(gè)人是明智的!

指導(dǎo)委員會(huì)的新選舉會(huì)在每次新特性發(fā)布之后舉行,Warsaw 稱這將為下一代 Python 領(lǐng)導(dǎo)者鋪平道路!溉绻 Python 還能再健康發(fā)展 25 年,到時(shí)候肯定不是我和 Guido 管理它了。」

指導(dǎo)委員會(huì)的成立受到了更廣泛核心開發(fā)者社區(qū)的歡迎,核心開發(fā)者 Mariatta Wijaya 稱這一舉措走在了正確的方向上。「我認(rèn)為,指導(dǎo)委員會(huì)比一個(gè)人決定所有事要好,(一個(gè)人決定所有事)對(duì)那個(gè)人來說責(zé)任和負(fù)擔(dān)都太重了。指導(dǎo)委員會(huì)的成立是一個(gè)好信號(hào),這意味著社區(qū)將有更多輸入。」

 

 

Python 核心開發(fā)者 Mariatta Wijaya 歡迎 Python 指導(dǎo)委員會(huì)的成立,指導(dǎo)委員會(huì)將監(jiān)督 Python 的發(fā)展。(圖源:A. Jesse Jiryu Davis)

Python 的未來

盡管 Python 仍在以驚人的速度吸引新用戶,但社區(qū)中一些人已經(jīng)看到了未來面臨的挑戰(zhàn)——要想保持先進(jìn),Python 需要進(jìn)化。

在今年的 Python 語言峰會(huì)(PLS)上,BeeWare 聯(lián)合創(chuàng)始人 Russell Keith-Magee 提醒道:如果對(duì)移動(dòng)和新 web 平臺(tái)的支持沒有改進(jìn)的話,Python 將面臨「生存危機(jī)」。(BeeWare 項(xiàng)目旨在使寫出的 Python 應(yīng)用可在任意設(shè)備上運(yùn)行。)

「手機(jī)和平板達(dá)到的市場(chǎng)滲透率遠(yuǎn)非 PC 和筆記本電腦可比,而作為一個(gè)社區(qū),我們還沒有一個(gè)故事是關(guān)于如何在這些設(shè)備上使用 Python 的。當(dāng)筆記本電腦成為小眾設(shè)備時(shí),Python 又將面臨什么呢?」

Keith-Magee 列舉了 Python 目前在支持平臺(tái)方面面臨的一系列問題(除了標(biāo)準(zhǔn) x86 PC)。比如,Python 需要對(duì)更新的非 x86 硬件平臺(tái)提供更好的支持;Python 的測(cè)試套件在移動(dòng)和 web 平臺(tái)上可能會(huì)崩潰;Python app 的安裝包過大,無法壓縮為一個(gè)小的依賴項(xiàng)子集;在安卓、Windows 和 web 上寫 GUI 代碼時(shí),asyncio 庫的運(yùn)行需要做很多努力;標(biāo)準(zhǔn)庫中的模塊數(shù)與 Python 解釋器不兼容(CPython 除外)。

Warsaw 表示,Keith-Magee 提出了很多有用的點(diǎn),他也認(rèn)為考慮如何使 Python 與手機(jī)、平板以及 WebAssembly 等較新的 web 技術(shù)接軌是非常重要的!改壳,Python 在這方面沒有好故事!筗arsaw 說道。

現(xiàn)代芯片的處理器內(nèi)核數(shù)量不斷增長(zhǎng)(英特爾最新的服務(wù)器芯片已經(jīng)高達(dá) 48 核),Warsaw 期待看到 Python 能夠更好地在多核上執(zhí)行任務(wù)。

他對(duì) Eric Snow 在 Python 子解釋器方面的工作感到興奮,該項(xiàng)目旨在將 Python 的能力擴(kuò)展為多核并行運(yùn)行代碼!肝艺娴南M吹礁喙ぷ髂軌蚶枚嗪。」

Snow 正在參與一個(gè)使 Python 能夠更容易地在多個(gè)處理器內(nèi)核上高效分割任務(wù)的項(xiàng)目。他主要利用 Python 現(xiàn)有子解釋器特性的修改版本,并改變每個(gè)子解釋器與 Python 全局解釋器鎖(GIL)的交互方式。

Warsaw 稱,「Python 3.8 應(yīng)該來不及加入該特性,或許 3.9 版本可以。我認(rèn)為未來兩年到兩年半時(shí)間內(nèi)我們將見到這一新特性。我對(duì)此很樂觀,也很欣慰 Eric 繼續(xù)為此而奮斗,我認(rèn)為這是一項(xiàng)重要的工作!

Warsaw 還表示,曾經(jīng)失敗過的類似項(xiàng)目(如 Gilectomy)也帶來了一些有趣的經(jīng)驗(yàn)教訓(xùn),幫助 Python 更好地在多核上分配工作負(fù)載。

Python 社區(qū)正在現(xiàn)代化該語言的內(nèi)置代碼標(biāo)準(zhǔn)庫,近期發(fā)布的 PEP 594 提案建議移除標(biāo)準(zhǔn)庫中過時(shí)的模塊。這樣做可以解決用戶近期對(duì) Python 標(biāo)準(zhǔn)庫的批評(píng)。大家通常認(rèn)為標(biāo)準(zhǔn)庫是 Python 的優(yōu)勢(shì),因?yàn)樗捎糜趫?zhí)行大量常見任務(wù),這也是為什么 Python 被認(rèn)為裝有「內(nèi)置電池」。

但是在今年的 Python 語言峰會(huì)上,Amber Brown 批評(píng)了 Python 標(biāo)準(zhǔn)庫,她提出疑問:如果讓用戶從 PyPI 庫中自行選擇代碼庫,而不是使用作為內(nèi)置功能的標(biāo)準(zhǔn)庫,是不是會(huì)更好?

關(guān)于 Python 核心開發(fā)者和指導(dǎo)委員會(huì)能否更好地反映多樣化的用戶群,也存在問題。

「我希望看到更完備的多樣化指標(biāo),不只是性別平衡,還需涵蓋種族等其他指標(biāo)!筗ijaya 表示!冈 PyCon 大會(huì)上,我和來自印度和非洲的 PyLadies 成員進(jìn)行了交談(PyLadies 是幫助更多女性積極參與和領(lǐng)導(dǎo) Python 社區(qū)的國(guó)際團(tuán)體)。她們說:『當(dāng)我們聽到 Python 或 PyLadies 時(shí),我們會(huì)想起北美或加拿大的人,而事實(shí)上世界其他地方也有龐大的 Python 用戶群。為什么不多看看他們呢?』我認(rèn)為這意義非凡。因此我希望看到它發(fā)生,我們都需要盡自己的一份力量!

最后,盡管「仁慈的獨(dú)裁者」管控一切,近年來還是有很多塑造 Python 的想法來自于社區(qū),來自那些不斷使用 Python 探索新應(yīng)用的人,Warsaw 表示。「從社區(qū)中吸取能量要比『自上而下』有用很多!

簡(jiǎn)單的社區(qū)項(xiàng)目對(duì) Python 產(chǎn)生重大影響的一個(gè)實(shí)例是「類型提示」(Type Hints),這個(gè) Python 3.5 特性受 2012 年一名博士生創(chuàng)建的 mypy 項(xiàng)目的啟發(fā)。這些提示可以執(zhí)行可選類型檢查,幫助開發(fā)者發(fā)現(xiàn)容易被忽略并侵入軟件的 bug。

這層額外的安全保障,不僅能夠幫助多人合作大型代碼庫的情況。增加用戶對(duì)代碼應(yīng)該做什么、不應(yīng)該做什么的理解也很有意義。

「對(duì)我來說,asyncio 幫助 Python 擴(kuò)展至大型組織(如基于 Python 3 運(yùn)行的 Instagram)是最珍貴的!筗arsaw 表示。他認(rèn)為 asyncio 是從社區(qū)產(chǎn)生想法的另一個(gè)示例,對(duì) Python 的能力范圍產(chǎn)生了顯著影響。

有了指導(dǎo)委員會(huì)和更加龐大的用戶群,van Rossum 很樂觀:「由社區(qū)驅(qū)動(dòng)的 Python 語言進(jìn)化」將繼續(xù)獲得「無與倫比的成功」。

「Python 堅(jiān)實(shí)的核心開發(fā)者社區(qū)以及新的管理系統(tǒng)令我堅(jiān)信,我們對(duì) Python 進(jìn)化過程中將遇到的要求做好了充分的準(zhǔn)備。」van Rossum 說道,并贊揚(yáng)了社區(qū)內(nèi)部對(duì) Python 特定方面的深刻理解。

如果有人對(duì) Python 社區(qū)繼續(xù)尋找新應(yīng)用案例的能力存有疑問,那他只需要看看 Python 在世界首張黑洞照片拍攝過程中的作用就可以了,Warsaw 說道。

 

 

今年早些時(shí)候,Python 幫助合成了世界首張黑洞照片。(圖源:事件視界望遠(yuǎn)鏡合作組織等)

「這件事驚到我了。我覺得 Python 社區(qū)中的一些人是瘋狂的 Python 科學(xué)家。他們總是在思索今天我能用 Python 做點(diǎn)什么,以及我可以把這件事推到什么地步!

原文鏈接:https://www.techrepublic.com/article/python-is-eating-the-world-how-one-developers-side-project-became-the-hottest-programming-language-on-the-planet/

標(biāo)簽: Python 數(shù)據(jù)處理

版權(quán)申明:本站文章部分自網(wǎng)絡(luò),如有侵權(quán),請(qǐng)聯(lián)系:west999com@outlook.com
特別注意:本站所有轉(zhuǎn)載文章言論不代表本站觀點(diǎn)!
本站所提供的圖片等素材,版權(quán)歸原作者所有,如需使用,請(qǐng)與原作者聯(lián)系。

上一篇:超越云計(jì)算:對(duì)數(shù)據(jù)庫管理系統(tǒng)未來的思考

下一篇:這些年,我們一起追過的緩存數(shù)據(jù)庫