久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

Python正在吞噬世界

 黃爸爸好 2019-08-31
AI 前線導(dǎo)讀2018 到 2019 年,,所有編程語言的流行度都在下滑,除了 Python,。Python 為什么會(huì)變得越來越火,?本文梳理了 Python 的發(fā)展史,,試圖揭示背后的秘密。

1994 年末,,一群來自美國各地的程序員聚在一起,,討論他們的新式秘密武器,。

這是 Python 有史以來的第一次研討會(huì),有 20 多名開發(fā)者參加,,Barry Warsaw 是這些與會(huì)者當(dāng)中的一員,。他回憶起那些早期 Python 用戶的興奮之情:

我記得有一個(gè)人說,,“你不要跟別人說我來參加這個(gè)研討會(huì),因?yàn)槭褂?Python 就像擁有了某種競爭優(yōu)勢”,。在他們看來,,Python 就是他們的秘密武器,不是嗎?

在早期的 Python 研討會(huì)上,,Warsaw 就曾說過,,Python 提供了一些東西,,讓代碼編寫變得更加簡單,,更容易完成編程任務(wù),。

他回憶道:“當(dāng)我第一次接觸 Python 時(shí),,我就知道它有一些特別之處。Python 的可讀性不錯(cuò),,編寫 Python 代碼變成了一種樂趣”,。

如今,人們對 Python 的熱情已經(jīng)遠(yuǎn)遠(yuǎn)超出了最初的開發(fā)者圈子,。一些人預(yù)測,隨著 Python 用戶群的快速增長,,它很快會(huì)成為世界上最流行的編程語言。每天有數(shù)以百萬計(jì)的人使用 Python,用戶群呈現(xiàn)出指數(shù)級的增長,,幾乎沒有出現(xiàn)下降的跡象。

不管是專業(yè)的還是業(yè)余的開發(fā)人員,他們都在使用 Python 處理大大小小的任務(wù),,特別是 Web 開發(fā)人員、數(shù)據(jù)科學(xué)家和系統(tǒng)管理員,。今年出現(xiàn)的第一批黑洞圖片就是用 Python 拼接出來的,。

Python 在一些世界知名的組織中扮演著關(guān)鍵角色,比如,,Netflix 用 Python 向全球 1 億多戶家庭提供流媒體視頻,,Instagram 用 Python 實(shí)現(xiàn)圖片分享,,NASA 借助 Python 來探索太空。

Python 的早年時(shí)期

從某些方面看,,Python 的崛起就像那個(gè)英國喜劇團(tuán)體(Python 因這個(gè)喜劇團(tuán)體而得名)一樣不尋常,。在 Python 自己的領(lǐng)域,,這門編程語言也變得越來越出名和越來越有影響力,。

Python 原先是荷蘭程序員 Guido van Rossum 的一個(gè)個(gè)人項(xiàng)目,。20 世紀(jì) 80 年代末,van Rossum 在荷蘭國家數(shù)學(xué)和計(jì)算機(jī)科學(xué)研究中心的 CWI 部門開發(fā)分布式系統(tǒng),。由于對已有的編程語言感到十分失望,,他決定開發(fā)一門新的語言——一門既易于使用功能又強(qiáng)大的語言,。

對于外行來說,,自己開發(fā)一門編程語言就像是“造飛機(jī)”一樣,,但當(dāng)時(shí) 30 多歲的 van Rossum 在某些方面已經(jīng)很有造詣。他花了三年時(shí)間與 CWI 的一個(gè)團(tuán)隊(duì)合作,,一起開發(fā)了 ABC(一種解釋型編程語言),,他知道開發(fā)一個(gè)可以執(zhí)行指令的解釋器需要些什么,以及一門新的編程語言需要哪些語法構(gòu)建塊,。

對于當(dāng)時(shí)的 van Rossum 來說,,使用僅有的幾種編程語言完成任何一件事情都顯得很困難,。他正在開發(fā)的 Amoeba 分布式計(jì)算系統(tǒng)要求他使用 C 語言 或 Unix shell,但這兩種語言都有很大的局限性,。C 語言要求開發(fā)人員自己手動(dòng)管理內(nèi)存,容易埋下潛在的 bug,,而且還缺少可重用的代碼庫。開發(fā)人員想要完成日常任務(wù),,需要在每個(gè)新項(xiàng)目中重新發(fā)明輪子。Unix shell 存在另外一個(gè)問題——它雖然為日常任務(wù)提供了一些實(shí)用程序,,但它們的運(yùn)行速度太慢,無法處理復(fù)雜的邏輯,。

這些語言對開發(fā)人員造成的限制如此之大,以至于在 van Rossum 看來,,他自己創(chuàng)建的這門解釋型語言——從 ABC 語言借用了一些特性——似乎是最好的選擇。

van Rossum 回憶道:“我當(dāng)時(shí)在想,,為什么不自己開發(fā)一門語言呢,?我完全可以借鑒 ABC 的一些想法,,并將項(xiàng)目的規(guī)模縮小一些,,把原先需要花三年時(shí)間完成的東西縮短至三個(gè)月內(nèi),,讓它變成我自己的個(gè)人項(xiàng)目。于是,Python 誕生了”,。

1989 年末,van Rossum 開始認(rèn)真地開發(fā)這門語言,,并借用了他最喜歡的喜劇團(tuán)體“Monty Python”的名字,,又因?yàn)榕c蛇有關(guān)系,,后來就有了那個(gè)盤繞的巨蟒的 logo,。

他說:“當(dāng)時(shí)我的社交生活并不豐富。除了看電視就是寫代碼,,有時(shí)候也會(huì)同時(shí)做這兩件事”,。

雖然名義上 van Rossum 是為了更好地完成日常工作而開發(fā) Python,,但他承認(rèn)他的動(dòng)力更多的是來自于自己開發(fā)一門語言所要面臨的挑戰(zhàn),。

他說:“當(dāng)時(shí)我也不知道 Python 是否真的會(huì)讓我的工作變得更有效率。在某種程度上,,我真的很喜歡這種可以自己完成一個(gè)大項(xiàng)目的想法,,并且可以按照我想要的方式來設(shè)計(jì)和實(shí)現(xiàn)。在我看來,編程是件有趣的事情”,。

對于一般人而言,,自己開發(fā)一門編程語言可能是件很不尋常的事情,,但像 van Rossum 這樣的例子并非獨(dú)有,。在 20 世紀(jì) 80 年代末,,各種主要編程語言的出現(xiàn)都是因?yàn)楫?dāng)時(shí)有限的工具無法滿足開發(fā)者的需求,。Larry Wall 曾經(jīng)說過,他之所以創(chuàng)建 Perl,,是因?yàn)槠渌Z言很難解決他的問題,而且他是一個(gè)“懶惰,、不耐煩和狂妄自大”的人,。類似地,,為了找到可用于構(gòu)建集成電路交互工具的語言才,,John Ousterhout 設(shè)計(jì)了 Tcl。

三個(gè)月之后,,van Rossum 做出了可運(yùn)行的 Python 原型,。

他說:“雖然現(xiàn)在的 Python 有很多在當(dāng)時(shí)并不存在的抽象特性,但語言本身仍然始終如一”,。

“那時(shí),,Python 已經(jīng)具備了解析器和運(yùn)行語言所需的基本組件。第一個(gè)可運(yùn)行的 Python 程序放到現(xiàn)在仍然可以運(yùn)行”,。它們的函數(shù)定義是一樣的,,縮進(jìn)是一樣的,,字典和元組的創(chuàng)建語法是一樣的,,交互式提示符也是一樣的,。

當(dāng)他的兩個(gè)同事開始使用這門語言處理日常任務(wù)時(shí),,van Rossum 并沒有指望它會(huì)流行起來。因?yàn)樗?,在互?lián)網(wǎng)時(shí)代到來之前,讓一門編程語言流行起來有多么困難。

在今天,,只需要點(diǎn)擊幾下鼠標(biāo)就可以把一款軟件分享給全世界,但在上世紀(jì) 80 年代,,這是一件非常費(fèi)力的事情,。van Rossum 回憶起當(dāng)時(shí)推廣 ABC 遇到的困難:

“我記得大約在 1985 年,,我第一次去美國度假。那是我第一次去美國,,我的行李箱里裝了一沓磁帶”,。

當(dāng)時(shí)可用的通信方式只有電子郵件,而電子郵件并不適合用來傳播源代碼,。他從電子郵件里拿到了對 ABC 感興趣的人的地址和電話號碼,然后挨家挨戶送磁帶,。盡管他很賣力地給用戶送磁帶,,都沒能讓 ABC 真正流行起來。

他說:“盡管 ABC 提供了很多優(yōu)秀的特性,,但我們在 ABC 的推廣方面并沒有取得很大進(jìn)展”。不過,,隨著互聯(lián)網(wǎng)革命進(jìn)程的演進(jìn),,Python 的推廣工作變得容易得多,,他不用再拖著裝滿磁帶的行李箱到處跑了,。

1991 年,van Rossum 通過 alt.sources 新聞組向全世界發(fā)布了 Python,。這在當(dāng)時(shí)基本上算是一種開源許可協(xié)議,,比”開源許可協(xié)議“這個(gè)術(shù)語本身早了六年出現(xiàn),。雖然當(dāng)時(shí)的 Python 解釋器仍然需要將 21 個(gè)單獨(dú)的部分連接成一個(gè)壓縮文件,并需要連夜從 Usenet 網(wǎng)絡(luò)上下載下來,,但與幾年前線下送磁帶的方式相比,它仍然要高效得多,。

他說:“我希望 Python 可以取得成功,,畢竟之前我做的另一個(gè)東西基本上以失敗告終”,。

van Rossum 說,,在很長一段時(shí)間之后,,他才知道 Python 的用戶群在增長。漸漸地,,他意識到 Python 的發(fā)展勢頭正在形成,,在與 Python 社區(qū)進(jìn)行了一段時(shí)間的交流之后,,他知道,,Python 成功了。

“這個(gè)發(fā)現(xiàn)來得非常緩慢,。在發(fā)布了第一個(gè)開源版本之后,我制定了一個(gè)新的發(fā)布周期,,并與 Python 社區(qū)頻繁交流。我們感覺這是一件很了不起的事情”,。

Python 為什么會(huì)贏

Python 在 20 世紀(jì) 90 年代初期到中期開始受到關(guān)注,,Python 的時(shí)代到來了,,這讓 van Rossum 感到震驚。

van Rossum 相信,,被 Python 吸引過來的開發(fā)者,他們轉(zhuǎn)向 Python 的原因與他當(dāng)初創(chuàng)建 Python 的原因是一樣的,。他們需要一門高級的腳本語言,能夠在易用性和功能之間取得平衡,。他們希望能夠結(jié)束在 C 語言中手動(dòng)管理內(nèi)存,、在開始新項(xiàng)目時(shí)需要為重復(fù)任務(wù)重新實(shí)現(xiàn)代碼的日子。

Warsaw 說,,Python 在可用性和功能之間取得了平衡——在 20 世紀(jì) 90 年代早期,任何一門主流編程語言都沒能提供這種平衡,?!蔽覍戇^很多 Perl,、Tcl 和 C 代碼,,感覺它們一點(diǎn)都不好玩,。Python 一出現(xiàn),,我就想,,‘哇,,它讓編程變得更有趣了’”。

不管是過去還是現(xiàn)在,,Python 提供的都是清晰而明確的語法,,它使用縮進(jìn)將代碼分組成塊,,讓開發(fā)人員更容易閱讀和理解代碼,。

Gartner 公司的研發(fā)總監(jiān) Fintan Ryan 說,,無論是現(xiàn)在還是在上世紀(jì) 90 年代,,Python 清晰明了的風(fēng)格都在吸引開發(fā)者方面起到了重要作用,盡管通過縮進(jìn)來達(dá)到這種效果在開發(fā)者當(dāng)中存在分歧,。”Python 的語法非常簡潔,。你也可以在其他語言中實(shí)現(xiàn)縮進(jìn),,但 Python 已經(jīng)自動(dòng)實(shí)現(xiàn)了。有些程序員喜歡這種縮進(jìn)方式,,有些則不喜歡”。

1994 年,,Barry Warsaw 在第一次 Python 研討會(huì)上

Python 強(qiáng)調(diào)代碼的簡潔和可讀性,這并非偶然,。van Rossum 曾公開表示,,編程語言不僅要告訴計(jì)算機(jī)該做什么,還要便于在開發(fā)者之間傳遞思想。

Ryan 說,,除了可讀性之外,,Python 很早就內(nèi)置了一些通用的功能,,這讓 Python 從其他語言中脫穎而出,?!澳銖囊婚_始就可以使用某些功能,比如類和異常處理,。Python 還提供了對 lambda,、map 和 filter 等函數(shù)的支持,,這些東西在很多情況下都非常有用”,。

如果 80 年代末的主流編程語言能夠再好一點(diǎn),,或許就不會(huì)給 Python 留有機(jī)會(huì)。van Rossum 開發(fā) Python 的動(dòng)機(jī)之一就是因?yàn)?Perl 與他在 CWI 工作時(shí)使用的 Amoeba 分布式計(jì)算系統(tǒng)不兼容,。他說:“Python 的幸運(yùn)之處在于 Perl 不能被移植到 Amoeba。如果 Perl 可以被移植到 Amoeba,,我就不會(huì)想要自己去開發(fā)一門語言”,。

盡管 Python 在發(fā)布后吸引了一批鐵桿粉絲,,但在 20 世紀(jì) 90 年代,,Python 在編程語言方面仍然處于劣勢,。van Rossum 說,,Python 的競爭對手是 Tcl/Tk 和 Perl,,這兩種語言的目標(biāo)與 Python 是一樣的,即簡單易用且功能強(qiáng)大,。

他說:“上世紀(jì) 90 年代,,在前三大編程語言中,,Perl 無疑是第一名,,Tcl/Tk 是第二名,,而 Python 則是第三”,。

Stack Overflow 開發(fā)者報(bào)告顯示,從開發(fā)者活躍度方面看,,Python 是增長最快的編程語言,,而 Perl 在縮水,它甚至都沒有出現(xiàn)在最新的 Stack Overflow 開發(fā)者報(bào)告中,。

下圖顯示了這種爆炸式的增長,。近年來,,Stack Overflow 網(wǎng)站上與 Python 相關(guān)的問題的增長速度遠(yuǎn)遠(yuǎn)快于其他編程語言。

那么,,Python 是如何超越昔日的競爭對手的呢,?又如何解釋這兩門語言之間截然不同的命運(yùn)呢,?van Rossum 認(rèn)為,,這與代碼庫在達(dá)到一定規(guī)模后的維護(hù)難易程度有關(guān),。他說,“從人們的經(jīng)驗(yàn)來看,,Perl 適合用來編寫行數(shù)較少的腳本,但如果你的主干代碼超過了 500 行,,除此之外還有數(shù)千行分支代碼,,那么在 Perl 中維護(hù)這些代碼就需要遵循很多原則,。而在 Python 中,,你不需要遵循那么多原則,代碼仍然具有很好的可讀性和可維護(hù)性”,。

Python 一方面簡單易用,,一方面又健壯到可以用來開發(fā)大型的應(yīng)用程序,,這兩個(gè)因素的組合正是 Python 在上世紀(jì) 90 年代取得成功的原因,。

“一些互聯(lián)網(wǎng)開發(fā)者想要開發(fā)越來越大型的應(yīng)用程序,而且他們意識到用 Python 開發(fā)應(yīng)用程序要比用 C 語言,、C++ 或 Java 容易得多”,。

隨著 Python 在 20 世紀(jì) 90 年代逐漸流行起來,,當(dāng)時(shí)還在 CWI 工作的 van Rossum 發(fā)現(xiàn)他創(chuàng)造的這門編程語言越來越多地把他與來自世界各地的人聯(lián)系在一起。

Python 與 Web

20 世紀(jì) 90 年代中期,,Python 出現(xiàn)了新的應(yīng)用場景,,從音頻錄制和播放到首次涉足 Web 開發(fā),而 Web 開發(fā)后來成為 Python 的主要應(yīng)用場景,。

van Rossum 說,,“Web 開發(fā)很重要,,它對我來說也是一件非常有趣的事情”。Python 開始與 Perl 和 Shell 腳本一起被用于 Web 服務(wù)器后端開發(fā),。“你可以創(chuàng)建動(dòng)態(tài)網(wǎng)頁,,這也是我最喜歡的 Python 應(yīng)用場景之一”。

Gartner 公司的 Ryan 說,,上世紀(jì) 90 年代,,Python 之所以能夠在開發(fā)人員當(dāng)中流行起來,主要是因?yàn)樗梢杂脕砜焖俚貏?chuàng)建強(qiáng)大的腳本,。“作為一門功能非常強(qiáng)大的腳本語言,,它降低了很多用戶的使用門檻”,。

Ryan 還說,這門語言非常靈活,,容易上手,,因此吸引了很多具備不同程度技術(shù)專長的用戶。他說:“系統(tǒng)管理員使用 Python 進(jìn)行系統(tǒng)自動(dòng)化,,開發(fā)人員利用了 Python 的函數(shù)式編程特性和類繼承特性,而 Perl 在這方面的能力則要弱得多,。Python 的準(zhǔn)入門檻很低,,在人們熟悉了這門語言之后,,他們的工作很快就會(huì)變得高效起來”,。

1994 年,Python 引起了 Michael McLay 的注意,。McLay 當(dāng)時(shí)在美國國家標(biāo)準(zhǔn)局(NBS)擔(dān)任高級職位,,現(xiàn)在在美國國家標(biāo)準(zhǔn)與技術(shù)研究所(NIST)。McLay 當(dāng)時(shí)在想如何也讓國家統(tǒng)計(jì)局的科學(xué)家們從 Python 的易用性中得到一些好處,。在 van Rossum 看來,,國家統(tǒng)計(jì)局的科學(xué)家們“需要處理大量數(shù)據(jù),但他們都不擅長編程”,。

為了在 NBS 中推廣 Python,,McLay 邀請當(dāng)時(shí)還在荷蘭 CWI 工作的 van Rossum,讓他到 NIST 做了兩個(gè)月的客座研究員,。這一舉動(dòng)成了 Python 未來發(fā)展的催化劑,,也是 van Rossum 人生的一次重要轉(zhuǎn)變。

van Rossum 和 Warsaw,、Roger Masse 在第一次Python 研討會(huì)上

正是在這個(gè)時(shí)候,,他們在國家統(tǒng)計(jì)局的辦公室里舉行了第一個(gè) Python 研討會(huì)。van Rossum,、Barry Warsaw 和其他早期的 Python 愛好者聚在一起,,分享他們正在用 Python 做什么,以及對 Python 未來發(fā)展的期望,。

也就是在這間辦公室里,,van Rossum 認(rèn)識了 Bob Kahn。Kahn 是 TCP/IP 協(xié)議的作者,。

那次會(huì)面給 van Rossum 帶來了一份工作邀請——與 Kahn 一起在美國國家研究創(chuàng)新聯(lián)合會(huì) (CNRI) 工作,。CNRI 是一個(gè)位于弗吉尼亞州的非盈利研究組織,專注于網(wǎng)絡(luò)技術(shù)的戰(zhàn)略發(fā)展和研究,。

就像 Python 滿足了人們對新型編程語言的期待一樣,,在收到這份工作邀請時(shí),van Rossum 剛好對自己在 CWI 未來的工作充滿了焦慮,。

他說:“CWI 更像是一個(gè)學(xué)術(shù)機(jī)構(gòu),,他們給了我某種‘溫柔’的壓力,我要么聽他們的話去攻讀博士學(xué)位,,要么到別處找工作”,。

“當(dāng)時(shí)我 35 歲了,攻讀博士學(xué)位對我來說沒有太大吸引力,。之前因?yàn)?Python 的流行給我?guī)砹艘恍┬碌目赡苄?,但在?jīng)過了一些電話溝通和思考之后,,我決定放棄這些機(jī)會(huì)。我更喜歡 CNRI,,喜歡他們提供給我的條件,,喜歡這個(gè)項(xiàng)目,所以我去了 CNRI”,。

正是在 CNRI, van Rossum 在一群 Python 愛好者的幫助下,,將很多用于管理 Python 語言的結(jié)構(gòu)組合在一起。在 1995 年 4 月加入 CNRI 后,,van Rossum 領(lǐng)導(dǎo)了一個(gè)小型的開發(fā)團(tuán)隊(duì),,開發(fā)一個(gè)叫作 Knowbot 的程序,它是一種移動(dòng)代理,,運(yùn)行在分布式計(jì)算機(jī)系統(tǒng)上,。

這個(gè)團(tuán)隊(duì)使用 Python 作為開發(fā)語言,Jeremy Hylton,、Roger Masse,、Barry Warsaw、Ken Manheimer 和 Fred Drake 等人也加入進(jìn)來,。這些人后來都在 Python 社區(qū)里扮演了重要的角色,。

van Rossum 說:“我們組建了一個(gè)由 4 到 10 人組成的團(tuán)隊(duì),大多數(shù)人在 CNRI 工作,。他們都是 Python 語言的核心開發(fā)人員”,。

這個(gè)團(tuán)隊(duì)創(chuàng)建了 python.org 網(wǎng)站,搭建了用于管理代碼庫變更的 CVS 服務(wù)器,,以及用于改進(jìn)和維護(hù) Python 語言的”Python 特別興趣小組“郵件列表,。

自 1991 年 Python 公開發(fā)行以來,Python 用戶群有了顯著的增長,。到了 90 年代后期,,Python 吸引了大量來自全球各地的用戶。在此期間,,隨著 Python 軟件基金會(huì)(PSF,,于 2001 年正式成立)前身的組建,Python 語言的管理工作開始走向規(guī)范化,。隨著社區(qū)的發(fā)展,,兩年一度的 Python 研討會(huì)逐漸演變成更大型的年度活動(dòng),并最終演變成 PSF 的年度 PyCon,,直到今天仍然很受歡迎,。

到了 21 世紀(jì),Python 用戶群越來越壯大,早期的 Python 用戶擔(dān)心如果 van Rossum 發(fā)生意外會(huì)對 Python 造成什么樣的影響,。

不管怎樣,,van Rossum 繼續(xù)扮演著 Python 的核心角色。他就是 Python 的核心,,這種想法從未消失,,有人稱他是 Python“仁慈的終身獨(dú)裁者”(BDFL),。這個(gè)半開玩笑式的頭銜流傳了多年,。

van Rossum 說:“在很長一段時(shí)間內(nèi),我承受住了壓力,,還培養(yǎng)出了項(xiàng)目管理技能,。我將很多事情委派給別人,讓他們按照自己的想法做事”,。

Gartner 公司的 Ryan 說,,讓語言的創(chuàng)建者同時(shí)充當(dāng)語言管理者的角色,這并非什么新鮮事,。他還引用了 Perl 作者 Larry Wall 和 Node 作者 Ryan Dahl 的例子,,不過他說 van Rossum 在 Python 管理工作上表現(xiàn)出的公平性是值得稱道的。

他說:“人們普遍認(rèn)為 van Rossum 在項(xiàng)目方向和總體管理方面做出了非常好的平衡,?!?/p>

實(shí)際上,van Rossum 確立的 Python 開放本質(zhì)(在社區(qū)核心開發(fā)者之間公開討論)是 Python 成功的決定性因素,。

Python 的演變

在這期間,,Python 有了飛躍式的發(fā)展。2008 年,,Python 3.0 發(fā)布,,讓 Python 成為一門現(xiàn)代化的編程語言。近來,,Python 的管理方式也發(fā)生了重大變化,。

這些變化是去年發(fā)生的,當(dāng)時(shí) van Rossum 卸掉了 BDFL 的頭銜,,原因是人們對 PEP572 中引入的賦值表達(dá)式存在分歧,。

雖然賦值表達(dá)式的引入是為了更高效地編寫代碼,但 van Rossum 在網(wǎng)上遭到了反對者的嚴(yán)厲批評,,一些人認(rèn)為這一提案會(huì)降低代碼的可讀性和可維護(hù)性,。

van Rossum 說,雖然他已經(jīng)習(xí)慣了圍繞新功能而展開的爭論,,但這次有人詆毀他,,他們的態(tài)度十分強(qiáng)硬,甚至有人對他進(jìn)行人身攻擊,所以他決定辭職,。

他說:“那些在技術(shù)上持不同意見的人在社交媒體上開始抱怨我破壞了 Python 的決策流程,,或者說我犯了一個(gè)嚴(yán)重的錯(cuò)誤。我感到非常失望,,我感覺受到了來自背后的攻擊”,。

“過去,在決定是否要對 Python 做出變更或改進(jìn)時(shí),,一群核心開發(fā)人員會(huì)討論這件事的利弊,。他們會(huì)得出一個(gè)明確的共識,如果結(jié)果不明確,,我會(huì)在腦子里反復(fù)考慮,,然后做出決定。在 PEP572 這個(gè)提案上,,盡管它存在爭議,,但我還是選擇了“是的,我想做這個(gè)”,,但人們并不買賬,。

“這并不是一種反叛,但我覺得我沒有得到核心開發(fā)者社區(qū)足夠多的信任”,。

他認(rèn)為,,Python 的爭議方式之所以發(fā)生變化,部分原因在于現(xiàn)在有太多的人使用 Python,。

“Python 社區(qū)的規(guī)模越來越大,,這可能也是原因之一。當(dāng)然,,要達(dá)成任何形式的共識都很困難,,因?yàn)椴还苣阕龀鍪裁礃拥臎Q定,總會(huì)有一些持不同意見的人”,。

Python 核心開發(fā)者 Mariatta Wijaya

今年早些時(shí)候,,負(fù)責(zé)維護(hù) CPython 解釋器的核心開發(fā)人員成立了一個(gè)指導(dǎo)委員會(huì),用來監(jiān)督 Python 未來的發(fā)展,。成員包括 van Rossum,、Warsaw 以及其他核心開發(fā)者 Brett Cannon、Carol Willing 和 Nick Coghlan,。

Warsaw 說,,當(dāng)一門編程語言的用戶群以如此快的速度增長,使用這種方式來管理語言的發(fā)展是很有必要的,。

他說,,“我認(rèn)為 van Rossum 真的把所有事情都扛在自己的肩上了”,。

“25 年前,當(dāng) Python 還只是一門小眾編程語言的時(shí)候,,社區(qū)規(guī)模也小得多,,van Rossum 可能還能自己扛,但即使是這樣,,他一個(gè)人的工作量也很大,。我認(rèn)為,考慮到他個(gè)人的健康以及社區(qū)的參與度問題,,將這些重?fù)?dān)分?jǐn)偟轿鍌€(gè)人身上會(huì)更好”,。

Warsaw 說,在每發(fā)布一個(gè) Python 新特性版本后都會(huì)進(jìn)行一次指導(dǎo)委員會(huì)選舉,,為建立下一代 Python 語言核心領(lǐng)導(dǎo)層做好準(zhǔn)備,。

他說:“如果 Python 在 25 年后還能保持常青,,那時(shí)候應(yīng)該不是 van Rossum 和我在管事了”,。

指導(dǎo)委員會(huì)的成立也受到了 Python 核心開發(fā)者社區(qū)的歡迎。核心開發(fā)人員 Mariatta Wijaya 說,,這一舉動(dòng)感覺像是朝著正確的方向邁出了一步,。她說:“對我來說,指導(dǎo)委員會(huì)比讓一個(gè)人決定所有事情要好得多——這是一個(gè)巨大的責(zé)任和負(fù)擔(dān),。這是一個(gè)好跡象,,它意味著社區(qū)將會(huì)有更多的輸入”。

Python 的未來

雖然 Python 繼續(xù)以驚人的速度吸引新用戶,,但社區(qū)內(nèi)的一些人也看到了未來要面臨的挑戰(zhàn),。如果 Python 想要保持常青,就要不斷進(jìn)化,。

在今年的 Python 語言峰會(huì)上,,BeeWare 聯(lián)合創(chuàng)始人 Russell Keith-Magee 說,如果對移動(dòng)和 Web 平臺的支持得不到改善,,Python 將面臨“生存危機(jī)”,。

他說:“手機(jī)和平板電腦對市場的滲透程度是臺式機(jī)和筆記本電腦從未達(dá)到過的,但整個(gè)社區(qū)都沒有一個(gè)關(guān)于如何在這些設(shè)備上使用 Python 的案例,。那么,,當(dāng)有一天筆記本電腦逐漸成為小眾設(shè)備時(shí),Python 又將面臨怎樣的窘境,?”

他指出了 Python 的一些問題,,比如,Python 還不支持在非 x86 硬件平臺上編譯代碼,,Python 的測試套件很容易在移動(dòng)和 Web 平臺上崩潰,,Python 應(yīng)用程序的體積太大,,在 Android、Windows 和 Web 平臺上開發(fā) GUI 代碼時(shí)需要使用 asyncio 庫,,而這需要做額外的工作,,標(biāo)準(zhǔn)庫中的很多模塊與 CPython 之外的解釋器不兼容。

Warsaw 說,,Keith-Magee 提出了很多很好的觀點(diǎn),,并認(rèn)為 Python 需要與新的平臺——手機(jī)、平板電腦以及 Web 技術(shù)(如 WebAssembly)保持接軌,,這點(diǎn)很重要,。

Warsaw 說,“目前 Python 在這方面并沒有出彩的表現(xiàn)”,,他希望 iPhone 或 Android 手機(jī)也能下載到使用 Python 開發(fā)的應(yīng)用程序,,而用戶甚至都不知道“原來它們是用 Python 開發(fā)的”。

現(xiàn)代處理器芯片的核心數(shù)量在不斷增長(英特爾最新的服務(wù)器處理器核數(shù)已經(jīng)達(dá)到了 48 個(gè)),,Warsaw 也希望 Python 能夠更好地讓任務(wù)運(yùn)行在多個(gè)處理器核心上,。

他對 Eric Snow 在 Python 子解釋器方面所做的工作十分感興趣。他說:“我希望看到有更多的處理任務(wù)能夠利用多核處理器”,。

Snow 正在參與一個(gè)長期項(xiàng)目,,這個(gè)項(xiàng)目旨在讓 Python 更容易地在多個(gè)處理器核心之間分配任務(wù)。他使用了現(xiàn)有 Python 子解析器的修訂版本,,并改變了子解析器與全局解釋器鎖(GIL)之間的交互方式,。

Warsaw 說:“這些功能不會(huì)出現(xiàn)在 Python 3.8 中,但或許會(huì)在 3.9 中加入,。我覺得我們將在未來兩到兩年半的時(shí)間內(nèi)看到這些功能,。我真的很高興 Eric 能夠繼續(xù)做下去,這是一項(xiàng)非常重要的工作”,。

他說,,之前有過一些失敗的項(xiàng)目(比如 Gilectomy,旨在讓多線程 Python 應(yīng)用程序運(yùn)行在多個(gè)核心上),,但這些項(xiàng)目給我們上了有趣的一課,,讓我們知道 Python 如何能更好地在多個(gè)核心之間分配工作負(fù)載。

Python 社區(qū)正在對標(biāo)準(zhǔn)庫進(jìn)行現(xiàn)代化,。最近發(fā)布了一項(xiàng)提案,,建議將過時(shí)的模塊從標(biāo)準(zhǔn)庫中移除。Python 的標(biāo)準(zhǔn)庫通常被認(rèn)為是 Python 的優(yōu)勢所在,,因?yàn)樗挥脕硖幚砗芏喑R娙蝿?wù),,這也就是為什么人們都說 Python 有“內(nèi)置電池”。但在今年的 Python 語言峰會(huì)上,,有人提出了這樣的一個(gè)問題:如果人們能夠從 PyPI 自行選擇模塊,,而不是使用內(nèi)置的標(biāo)準(zhǔn)庫,,這樣是否會(huì)更好?

還有一個(gè)問題是,,Python 指導(dǎo)委員會(huì)的成員組成能否更好地反映 2019 年 Python 用戶群的多樣性,?

Wijaya 說:“我希望指導(dǎo)委員會(huì)能夠具備更好的多樣性,不僅在性別方面,,還有種族等方面”,。

“在 PyCon 大會(huì)上,我與來自印度和非洲的 PyLadies 成員進(jìn)行了交談,。她們說,,‘當(dāng)我們聽到有人說到 Python 或 PyLadies 時(shí),我們想到的是北美或加拿大人,。但實(shí)際上,,其他國家有更大的 Python 用戶群,為什么不去多關(guān)注一下他們呢?‘我認(rèn)為她們說得很有道理,。所以,,我希望看到這種情況發(fā)生,我認(rèn)為我們都需要盡自己的一份力量,?!?/p>

Warsaw 說,盡管有一個(gè)“仁慈的獨(dú)裁者”在掌管一切,,但近年來,有很多有關(guān) Python 發(fā)展的理念來自于社區(qū),。

他說:“這些想法真的是從社區(qū)中冒出來的,,而不是自上而下推行的?!?/p>

簡單的社區(qū)項(xiàng)目也能對 Python 產(chǎn)生巨大影響,。比如,類型提示功能,,Python 3.5 的一個(gè)特性,,靈感來自于 2012 年一位博士生發(fā)起的 mypy  項(xiàng)目。類型提示可以執(zhí)行可選類型檢查,,幫助開發(fā)人員發(fā)現(xiàn)某一類 bug,,避免讓這些 bug 滲透到程序中。

當(dāng)有一群人同時(shí)開發(fā)一個(gè)大型的代碼庫時(shí),,這個(gè)額外的安全層就會(huì)非常有用,。

Warsaw 說,“在我看來,,這樣可以讓 Python 滲透到更大的組織中(比如 Instagram 基本上都在使用 Python 3)”,。

此外,,asyncio 是另一個(gè)社區(qū)在驅(qū)動(dòng) Python 發(fā)展的例子。

隨著指導(dǎo)委員會(huì)的成立和空前的用戶群增長,,van Rossum 樂觀地認(rèn)為:“由社區(qū)驅(qū)動(dòng)的 Python 進(jìn)化”將繼續(xù)取得“無與倫比的成功”,。

他說,”一個(gè)擁有堅(jiān)實(shí)的核心開發(fā)者的社區(qū),,現(xiàn)在有了一個(gè)新的管理制度,,我想我們?yōu)?Python 語言的進(jìn)化做好了更充分的準(zhǔn)備”。

Warsaw 說,,如果有人懷疑 Python 社區(qū)是否有能力繼續(xù)為 Python 找到新的應(yīng)用場景,,那就讓他們看看使用 Python 捕捉的第一張黑洞圖片。

“Python 社區(qū)中總有那么一些人,,我把他們看成是瘋狂的 Python 科學(xué)家,。他們總是在想,今天能把它做成這樣,,那么明天能不能走得更遠(yuǎn),?”

原文鏈接

https://www./article/python-is-eating-the-world-how-one-developers-side-project-became-the-hottest-programming-language-on-the-planet/

    本站是提供個(gè)人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點(diǎn),。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào),。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多