99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

將基于Python的過去及今后的計(jì)劃展開討論

Q4MP_gh_c472c21 ? 來源:嵌入式ARM ? 2019-12-03 15:21 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群



當(dāng)初由于無法忍耐編程語言的種種缺點(diǎn),Guido van Rossum 一手創(chuàng)建了 Python 編程語言。如今 Python 已有數(shù)百萬使用者,在本文中將基于 Python 的過去及今后的計(jì)劃展開了討論。
1994 年底,一群來自美國各地的頂級(jí)程序員開會(huì)討論他們的新式秘密武器。
Barry Warsaw 是當(dāng)初參加首次 Python 編程語言研討大會(huì)的 20 名成員之一,對(duì)他來說,當(dāng)年那個(gè)激動(dòng)人心的時(shí)刻至今仍歷歷在目。
“我還記得有一個(gè)人說,我們不能告訴任何我在這里,因?yàn)槭褂?Python 是一種競爭優(yōu)勢。這是一種秘密武器,對(duì)吧?”
那次大會(huì)在馬里蘭州的那個(gè)后來成為了美國國家標(biāo)準(zhǔn)局的地方舉行,Warsaw 說,他們能明顯感受到 Python 提供的新功能能夠降低編寫代碼的難度,讓開發(fā)工作更為輕松。
他回憶道:“在第一次接觸 Python 的時(shí)候,我就感覺到一些特別之處。編寫 Python 代碼是一種樂趣,而且可讀性非常高?!?/p>

Python 之父Guido van Rossum
如今,人們對(duì) Python 的喜愛已遠(yuǎn)遠(yuǎn)超出最初的那幾名開發(fā)者的圈子,有人預(yù)測 Python 很快就會(huì)成為世界上最流行的編程語言,因?yàn)檫@種語言新用戶的增長速度超過了任何其他編程語言。數(shù)百萬計(jì)的程序員每天都在使用 Python,而且其用戶的增長指數(shù)沒有絲毫減緩的趨勢。
無論是專業(yè)人士還是業(yè)余開發(fā),無論項(xiàng)目的大小,人們紛紛選擇了 Python,尤其是 Web 開發(fā)人員、數(shù)據(jù)科學(xué)家和系統(tǒng)管理員,他們尤其喜歡 Python。今年早些時(shí)候,有人利用 Python 合成了首張距離地球 5500 萬光年的黑洞照片,而另一方面,Python 也成為了全球電腦上為無數(shù)黑客攻擊腳本提供動(dòng)力的編程語言。 Python 在全世界一些知名的組織中也發(fā)揮著關(guān)鍵性作用,它幫助 Netflix 為全球超過 1 億個(gè)家庭帶來了在線視頻,幫助 Instagram 為千家萬戶提供了照片共享,還幫助 NASA 展開太空探索。

早年的 Python Python 這個(gè)名字源自英國的一組超現(xiàn)實(shí)幽默表演團(tuán)體蒙提·派森(Monty Python),從某些方面來說,該編程語言的發(fā)展與這個(gè)表演團(tuán)體如出一轍——同樣的離奇曲折,又驚世駭俗。而 Python 編程語言本身也在自己的領(lǐng)域享有盛名和影響力。
Python 編程語言始自荷蘭程序員 Guido van Rossum 的一個(gè)業(yè)余項(xiàng)目。20 世紀(jì) 80 年代末,Van Rossum 在荷蘭國家數(shù)學(xué)和計(jì)算機(jī)科學(xué)研究中心(Centrum Wiskunde & Informatica,CWI)開發(fā)分布式系統(tǒng)?,F(xiàn)有編程語言的缺陷令他感到萬分沮喪,于是他決定創(chuàng)建一門新的編程語言——一門易于使用且功能齊全的編程語言。
在外人看來,創(chuàng)建自己的編程語言就好像是說“我要建造自己的飛機(jī)”,但是當(dāng)時(shí)三十多歲的 Van Rossum 擁有一些先發(fā)優(yōu)勢。他在一個(gè) CWI 的團(tuán)隊(duì)中工作了三年,期間他們創(chuàng)建了一種解釋性的編程語言 ABC,所以他對(duì)執(zhí)行程序指令的解釋器以及新語言所需的語法基本構(gòu)成已有深入的了解。
此外還有很重要的一點(diǎn),當(dāng)時(shí)的 Van Rossum 意識(shí)到使用那些功能有限的編程語言來完成工作的難度太大。當(dāng)時(shí)他在研究 Amoeba 分布式計(jì)算系統(tǒng),寫代碼需要使用 C 或 Unix shell,這兩者都有很大的局限性。C 不僅要求開發(fā)人員應(yīng)對(duì)手動(dòng)管理內(nèi)存的復(fù)雜性以及遇到潛在錯(cuò)誤的危險(xiǎn),而且還缺少開發(fā)人員日常工作所需的可重用代碼庫,每次遇到新項(xiàng)目開發(fā)人員都需要重新開發(fā)基本的組件。而 Unix shell 則有完全不同的問題:它為解決常見的任務(wù)提供了一套實(shí)用程序,但其運(yùn)行速度太慢,無法處理復(fù)雜的邏輯。


這些語言上的限制讓開發(fā)人員的工作痛苦不堪,因此對(duì)于 Van Rossum 來說,創(chuàng)建自己的解釋語言才是最好的選擇(而且他還可以借鑒 ABC 語言的部分功能)。 “當(dāng)時(shí)我就在想,為什么不創(chuàng)建自己的編程語言呢?我從 ABC 中借鑒了一些想法,同時(shí)將項(xiàng)目的規(guī)模從三年的開發(fā)降低到我可以獨(dú)自承受的工作量,作為我的業(yè)余項(xiàng)目在三個(gè)月內(nèi)完成。于是,Python 誕生了。”他說。
1989 年底,Van Rossum 正式啟動(dòng)了這個(gè)項(xiàng)目,這門編程語言的名字來自他最喜歡的戲劇表演團(tuán)蒙提·派森(Monty Python),由于 Python(蟒蛇)與蛇有關(guān),所以后來他選用了樣子有點(diǎn)像蛇纏繞的 Python 標(biāo)志。
“當(dāng)時(shí)的我并沒有太多豐富的社交生活。因此,我把看電視的時(shí)間花在編程上,有時(shí)也會(huì)邊看電視邊寫代碼?!彼姓J(rèn)說。
雖然名義上他創(chuàng)建 Python 是為了幫助減輕自己的工作負(fù)擔(dān),但 Van Rossum 說更大的動(dòng)力來自面對(duì)創(chuàng)建自己的編程語言的巨大挑戰(zhàn)。
“我并不清楚我是不是真的相信創(chuàng)建這樣一門編程語言可以提高我的工作效率??赡茉谀撤N程度上,我只是很喜歡親手創(chuàng)建一個(gè)大項(xiàng)目的想法,展示我想展示的代碼,按照我想要的方式設(shè)計(jì)。我很享受編程的樂趣?!彼f。
盡管僅憑個(gè)人的力量創(chuàng)建一門編程語言的想法聽起來很不尋常,但當(dāng)時(shí)的 Van Rossum 生在一個(gè)英雄輩出的年代。20 世紀(jì) 80 年代后期,在開發(fā)工具給當(dāng)時(shí)的開發(fā)人員造成的重重挫敗感的刺激下,各大主流編程語言如雨后春筍般紛紛涌現(xiàn)。拉里·沃爾(Larry Wall)曾說,他創(chuàng)建 Perl 語言的動(dòng)力就來自通過編程解決問題的難度過大,以及自身的“懶惰、急躁和狂妄自大”。還有,John Ousterhout 堅(jiān)持不懈地尋找更好的語言來創(chuàng)建構(gòu)建集成電路的交互式工具,最后他設(shè)計(jì)出了 Tcl。
在短短三個(gè)月內(nèi),Van Rossum 就創(chuàng)建了 Python 這種解釋語言的工作原型,他說這個(gè)原型缺少現(xiàn)代功能,但仍不失為一種現(xiàn)代的編程語言。
“如今的Python有很多重要的抽象,當(dāng)時(shí)沒有,但語言本身看起來還是差不多?!彼f。
“當(dāng)時(shí),我只做了解釋器和編程語言的基本組件。一些簡單的能在第一個(gè)Python解釋器上運(yùn)行的程序在如今的Python上仍然有效?!彼f,并補(bǔ)充說函數(shù)的定義方式相同,縮進(jìn)也相同,字典和元組也是用相同的語法創(chuàng)建的,而且還有一個(gè)熟悉的交互式提示符,你可以在上面鍵入Python代碼并立即執(zhí)行計(jì)算。
雖然Van Rossum的兩位同事在拿到這門語言后立即開始使用,但他本身對(duì)進(jìn)一步的推廣并沒有抱太大期望,因?yàn)樗麄冃闹敲髟诨ヂ?lián)網(wǎng)出現(xiàn)之前的時(shí)代,順利推廣一門編程語言是多么困難。
雖然如今在與整個(gè)世界共享軟件時(shí),你只需點(diǎn)擊幾下鼠標(biāo),然而在20世紀(jì)80年代你需要付出更多的努力,Van Rossum想起當(dāng)時(shí)(在Python前)發(fā)布ABC時(shí)的困難重重。
“記得85年左右,我去美國度假,那是我第一次去美國,我的行李箱里裝滿了磁帶?!?Van Rossum說。
他通過當(dāng)時(shí)簡陋的基本電子郵件系統(tǒng)找到了對(duì)ABC有興趣的人的地址和電話號(hào)碼,由于無法通過電子郵件傳輸龐大的源代碼,所以他不得不挨家挨戶發(fā)磁帶。盡管付出了這么多努力,ABC仍然沒能取得成功。
“盡管我們的ABC有很好的特性,但是發(fā)行量依然不理想。”他說。但隨著互聯(lián)網(wǎng)革命的蓬勃發(fā)展,如今無需裝滿磁帶的行李箱,就可以很輕松地分發(fā)Python。 1991年,Van Rossum通過alt.sources新聞組向世界發(fā)布了Python,采用的授權(quán)很像現(xiàn)在的開源許可——盡管直到6年后開源這個(gè)詞才首次問世。雖然Python解釋器仍然需要將21個(gè)單獨(dú)的文件合并成一個(gè)壓縮包,而且需要在Usenet網(wǎng)絡(luò)上花一整夜的時(shí)間才能下載完畢,但仍然比幾年前的手工發(fā)放方便多了。
“我希望這次能有一點(diǎn)起色,但我之前就經(jīng)歷過一次發(fā)布,而且基本以失敗告終?!彼f。
回憶起往昔,Van Rossum表示,過了很久以后他才聽到有關(guān)Python用戶群不斷增長的消息。漸漸地,他感覺到了 Python 崛起的力量,在與 Python 社區(qū)定期互動(dòng)了一段時(shí)間后,他意識(shí)到自己創(chuàng)建的這門編程語言可能要成功了。 “我感覺整個(gè)過程非常非常緩慢。在我們完成了第一個(gè)開源版本后,我一直在堅(jiān)持定期發(fā)布新版本,并與剛剛興起的 Python 社區(qū)交互。我感覺這非常重要?!?Python 成功的原因 20世紀(jì)90年代早期,Python開始備受關(guān)注,感覺Python的時(shí)代已經(jīng)到來,Van Rossum也感覺到了。
Van Rossum認(rèn)為開發(fā)人員被Python所吸引的原因與當(dāng)時(shí)他創(chuàng)建這門編程語言的初衷一致。他們想要一種高級(jí)腳本語言,能夠在方便使用和功能健全之間取得平衡,在處理復(fù)雜邏輯時(shí)沒有Unix shell的限制。他們希望結(jié)束開發(fā)人員使用C時(shí)繁瑣的內(nèi)存管理,也希望改變每個(gè)項(xiàng)目開始之初都需要為相同的基本功能編寫重復(fù)代碼的局面。

Barry Warsaw在1994年的第一次Python研討會(huì)上
Warsaw表示,Python保持了語言的方便使用,同時(shí)也沒有犧牲功能的健全——在20世紀(jì)90年代早期,任何一門主流的編程語言都未能真正提供這種平衡性?!拔覈L試過Perl、Tcl和C編程,感覺都不是很有趣。直到Python的出現(xiàn)讓我眼前一亮,感覺原來編程可以如此有趣?!彼f。
Python提供了清晰明確的語法,通過縮進(jìn)將代碼分組成塊,讓開發(fā)人員更容易理解代碼。
分析公司Gartner的應(yīng)用程序平臺(tái)戰(zhàn)略團(tuán)隊(duì)的研究主管Fintan Ryan表示,清晰性在贏得開發(fā)人員方面起著重要的作用,無論是現(xiàn)在還是在20世紀(jì)90年代,即使僅憑縮進(jìn)實(shí)現(xiàn)的清晰性也可以扭轉(zhuǎn)整個(gè)局面?!癙ython提供了一種非常干凈的語法。在使用其他編程語言時(shí)你需要強(qiáng)迫人們遵守縮進(jìn),但使用Python時(shí)這種強(qiáng)制是自動(dòng)的。有些程序員喜歡這種做法,有些人卻很討厭。”他說。
事實(shí)上,Python優(yōu)先考慮代碼清晰性和可讀性并非偶然,Van Rossum表示,對(duì)于編程語言來說,開發(fā)人員之間的思想交流與他們和計(jì)算機(jī)之間的交流同等重要。
除了可讀性之外,Ryan表示,從早期開始,Python就提供了一系列內(nèi)置功能,所以它才能從眾多編程語言之中脫穎而出?!癙ython從一開始就具有類和異常處理等功能,此外它還提供了lambda、map和filter等輔助函數(shù),事實(shí)證明在很多情況下這些功能都非常實(shí)用。”他說。
如果80年代后期流行的編程語言出色一點(diǎn)的話,可能Python壓根就不會(huì)出現(xiàn)了,因?yàn)閂an Rossum創(chuàng)建Python的動(dòng)機(jī)之一就是Perl腳本語言與Amoeba分布式計(jì)算系統(tǒng)(他在CWI的工作)的不兼容?!皩?duì)于Python來說,Perl無法移植到Amoeba是一件幸事,”他說,“如果Perl可以移植到Amoeba上的話,我也不會(huì)想起創(chuàng)建自己的編程語言?!?br /> 盡管Python在發(fā)布后吸引了眾多鐵桿粉絲的用戶群,但在20世紀(jì)90年代,Python仍然是一種不被看好的編程語言。Van Rossum表示,Python的競爭對(duì)手有Tcl / Tk和Perl,這兩種編程語言的目標(biāo)與Python相同:簡單易用、功能齊備。
“論90年代排名前三的編程語言的話,Perl以絕對(duì)的優(yōu)勢居首位,Tcl / Tk排名第二,而第三名才是Python?!彼f。
根據(jù)Stack Overflow的年度開發(fā)人員調(diào)查報(bào)告(這是目前最全面的編程語言使用情況調(diào)查)顯示,Python是活躍的開發(fā)人員中間增長最快的編程語言,但報(bào)告中甚至都沒有提及Perl。
下圖中Python的爆炸式增長表明,近年來Stack Overflow上有關(guān)Python提問的增長速度遠(yuǎn)遠(yuǎn)超過了其他編程語言。


那么,究竟Python是如何超越昔日的競爭對(duì)手的呢?我們又該如何解釋兩種語言截然不同的命運(yùn)呢?Van Rossum認(rèn)為,這與代碼庫的增長超過一定規(guī)模后維護(hù)代碼庫的容易度有關(guān)?!鞍慈藗兊慕?jīng)驗(yàn)來看,如果某個(gè)腳本只有10行代碼,那么Perl是完美的選擇。”他說,“但是,如果你有500行主線代碼和幾千行庫,那么就需要嚴(yán)加約束才能維護(hù)好這些代碼。而在Python,即使沒有那么嚴(yán)格的約束,代碼仍然具備一定的可讀性和可維護(hù)性?!?br /> 正是這種特性促使Python成為了一種容易上手的編程語言,同時(shí)也非常強(qiáng)大,足以編寫大型應(yīng)用程序,因此Van Rossum才在20世紀(jì)90年代取得了初步的成功。 “有一些互聯(lián)網(wǎng)開發(fā)人員(很多是早期的互聯(lián)網(wǎng)工作者),他們編寫的應(yīng)用程序越來越大,而且他們發(fā)現(xiàn)用Python編寫應(yīng)用程序所需要付出的努力遠(yuǎn)低于C、C++Java?!?br /> 隨著20世紀(jì)90年代Python使用范圍的擴(kuò)大,仍然在CWI工作的Van Rossum發(fā)現(xiàn)越來越多來自世界各地的人就他的編程語言與他聯(lián)系。
“我創(chuàng)建了一門編程語言,而它與澳大利亞、美國、歐洲等世界各地的人聯(lián)系到了一起。我享受到了生命中的美好時(shí)光。”他說。 Python 與 Web 到 20 世紀(jì) 90 年代中期的時(shí)候,Python 出現(xiàn)新的使用方式,最初用于音頻的錄制和回放腳本,后來開始涉足 Web 開發(fā)——而 Web 成為了 Python 后續(xù)發(fā)展的支柱。
“這期間的一件大事就是 Web 開發(fā),這對(duì)我來說也是一件非常有趣的事情,” Van Rossum 說道,人們開始用 Python 編寫 Web 服務(wù)器上的后端腳本(就像 Perl 和 Shell 腳本一樣)。他說,“你可以創(chuàng)建動(dòng)態(tài)網(wǎng)頁,這是我最喜歡的 Python 應(yīng)用程序之一。”
Gartner 的 Ryan 說,在 20 世紀(jì) 90 年代,Python 在開發(fā)人員中間流行的原因就在于它是快速創(chuàng)建強(qiáng)大腳本的最佳選擇?!白鳛橐婚T功能強(qiáng)大的腳本語言,Python 降低了許多用戶的門檻?!彼f。
不僅如此,Ryan 還說這門語言的功能多樣化,且容易上手,因此吸引了許多擁有不同技術(shù)專長的各類用戶?!跋到y(tǒng)管理員和其他人采用 Python 實(shí)現(xiàn)系統(tǒng)自動(dòng)化和編程,開發(fā)人員喜歡它的函數(shù)式編程、支持繼承的類等特性—— 而其他語言,例如 Perl,這方面的功能相對(duì)就弱一些,”他說,“這門編程語言的學(xué)習(xí)曲線很低,而且一旦上手,就會(huì)迅速提高工作效率?!?br /> 1994 年,Python 引起了 Michael McLay 的注意,他曾在當(dāng)時(shí)的美國國家標(biāo)準(zhǔn)局(NBS)(現(xiàn)在的美國國家標(biāo)準(zhǔn)與技術(shù)研究院(NIST))擔(dān)任高級(jí)職務(wù)。McLay 的關(guān)注預(yù)示著 Python 將受到研究人員和科學(xué)家的青睞——他認(rèn)為 Python 簡單易用,非常適合 NBS 的科學(xué)家使用,Van Rossum 說,“這些科學(xué)家需要處理大量的數(shù)據(jù),但他們都不熟悉編程?!?br /> 為了在 NBS 內(nèi)的其他人中推廣 Python,McLay 邀請(qǐng)了當(dāng)時(shí)仍在荷蘭 CWI 工作的 Van Rossum 到 NIST,作為客座研究員工作了兩個(gè)月。事實(shí)證明,此次安排給 Python 未來的發(fā)展和 Van Rossum 的生活帶來了重大變化。
在 Van Rossum 這兩個(gè)月的工作期間,NBS 舉行了第一次 Python 研討會(huì),Van Rossum、Barry Warsaw 和其他早期的 Python 愛好者聚集在一起討論P(yáng)ython 的使用,以及這門語言未來的發(fā)展。
在 NBS 的辦公室里,Van Rossum 遇到了 Bob Kahn——此人開發(fā)了互聯(lián)網(wǎng)的一項(xiàng)基礎(chǔ)技術(shù):TCP / IP 協(xié)議。
在此次會(huì)議上,Van Rossum 收到了邀請(qǐng),前往美國全國研究創(chuàng)新聯(lián)合會(huì)(CNRI,這是一家位于弗吉尼亞州的非營利性研究組織,專注于網(wǎng)絡(luò)技術(shù)的戰(zhàn)略發(fā)展)與 Kahn 一起工作。
雖然 Python 已經(jīng)滿足了新型編程語言的需求,但 Van Rossum 表示他開始質(zhì)疑自己在 CWI 的發(fā)展前景,而這個(gè)工作機(jī)會(huì)的出現(xiàn)恰逢其時(shí)。
“CWI 是一個(gè)學(xué)術(shù)機(jī)構(gòu),我感受到了一定的壓力,要么攻讀博士學(xué)位,要么就需要另謀高就?!彼f。
“當(dāng)時(shí)我已經(jīng)35歲了,在這個(gè)年紀(jì)攻讀博士學(xué)位并非我所愿。早些時(shí)候,由于 Python 的原因,我也收到過很多工作機(jī)會(huì),但是經(jīng)過電話交談和慎重的考慮后,我還是決定留下。但是,此次機(jī)會(huì)十分難得,我喜歡這些人,喜歡他們提出的條件以及項(xiàng)目,所以我動(dòng)搖了?!?br /> Van Rossum 在加入 CNRI 以后,在一個(gè) Python 愛好者團(tuán)隊(duì)的幫助下建立了許多管理 Python 語言的結(jié)構(gòu)。1995年4月,Van Rossum 加入 CNRI,他開始帶領(lǐng)一個(gè)小團(tuán)隊(duì)的開發(fā)人員致力于構(gòu)建 Knowbot 程序——該軟件被稱為“移動(dòng)代理”,旨在跨分布式計(jì)算機(jī)系統(tǒng)(如互聯(lián)網(wǎng))上運(yùn)行。
該團(tuán)隊(duì)的工作采用了 Python,除了 Van Rossum 之外,還有 Jeremy Hylton、Roger Masse、Barry Warsaw、Ken Manheimer 和 Fred Drake,所有人都在 Python 社區(qū)中發(fā)揮著重要的作用。
“最終我們組建了一支4-10人的團(tuán)隊(duì),其中大多數(shù)人都是在CNRI工作,他們是Python開發(fā)的核心力量?!盫an Rossum說。
Van Rossum在CNRI工作期間,這個(gè)團(tuán)隊(duì)幫助他創(chuàng)建了python.org網(wǎng)站、管理核心代碼庫變動(dòng)的CVS服務(wù)器,還建立了改進(jìn)和維護(hù)Python語言的特別小組郵件列表。
自1991年公開發(fā)布以來,Python用戶社區(qū)的增長非常顯著,到本世紀(jì)下半葉時(shí),該編程語言已經(jīng)吸引了大批全球用戶群。在此期間,該編程語言的管理開始步入正規(guī),同時(shí)還于2001年建立了Python軟件基金會(huì)(PSF)的前身。隨著社區(qū)的發(fā)展,于1994年開始的兩年一度的Python研討會(huì)演變成了盛大的年度活動(dòng),還有如今仍在盛行的由PSF主辦的Python年度大會(huì)。
到21世紀(jì)之交,Python編程語言空前壯大,龐大的社區(qū)在其發(fā)展中發(fā)揮著積極的作用?;叵?994年的那個(gè)夏天,早期的Python用戶還在擔(dān)心如果Guido發(fā)生意外,這門編程語言該何去何從(請(qǐng)參考《如果Guido被公共汽車撞了》,https://legacy.python.org/search/hypermail/python-1994q2/1040.html)。
然而,Van Rossum一直在Python語言的發(fā)展中發(fā)光發(fā)熱,而且他的思想在該編程語言發(fā)展中依然處于核心地位,因此大家都親昵地稱呼他為“仁慈的獨(dú)裁者”,多年以來這個(gè)半開玩笑的頭銜一直陪伴著他。
“長期以來,在大多數(shù)時(shí)候,我都能夠承受這些壓力,而且我也具備了管理項(xiàng)目的能力,我可以將很多工作委派出去,讓人們掌握自己的命運(yùn)。”Van Rossum說。
Gartner的Ryan表示,由編程語言的創(chuàng)始人出面管理語言的情況并不常見,參考一下Larry Wall和Perl以及Ryan Dahl的JavaScript運(yùn)行時(shí)Node.js就可見一窺,但大家都認(rèn)為Van Rossum管理Python的方式很公平。
“大家都認(rèn)為他能夠在整體的管理工作中,很好地平衡項(xiàng)目的方向?!?br /> 事實(shí)上,Van Rossum認(rèn)為Python成功的決定性因素在于Python開發(fā)中的開放性,而這種開發(fā)性建立在核心開發(fā)人員社區(qū)之間的公開討論之上。 Python 的演變 在此期間,Python 取得了重大飛躍,2008 年 Python 3.0 的引入讓該編程語言走向了現(xiàn)代化,然而,近期該編程語言的管理方式也發(fā)生了重大改變。
有些變化始自去年,當(dāng)時(shí) Van Rossum 辭去了作為“仁慈的獨(dú)裁者”的領(lǐng)導(dǎo)身份,因?yàn)楣娫?Python 引入賦值表達(dá)式的問題上產(chǎn)生了分歧(請(qǐng)參照 Python 改進(jìn)方案 PEP572,https://www.python.org/dev/peps/pep-0572/)。
雖然引入該功能的目的是編寫更有效的代碼,但 Van Rossum 在網(wǎng)上遭到了那些反對(duì)變革的人的嚴(yán)厲批評(píng),有些人認(rèn)為該功能會(huì)降低代碼的可讀性,且難以維護(hù)。
Van Rossum 表示,他習(xí)慣了有關(guān)新功能的爭論,但他不愿與某些詆毀他的人妥協(xié),而某些攻擊者的人品致使他下決心辭職。
“我感到非常失望,有人在技術(shù)上有不同的看法,就去社交媒體上咆哮說 Python 的決策過程遭到了破壞,或者說我犯了極其嚴(yán)重的錯(cuò)誤。我感覺背后被人擺了一道?!彼f。
“過去,大家都很清楚,如果需要在語言上做出某些改變或改進(jìn)某個(gè)功能,那么就需要經(jīng)由一大堆核心開發(fā)人員討論這些變化的利弊。有時(shí)大家會(huì)達(dá)成明確的共識(shí),有時(shí)無法取得統(tǒng)一的意見,那么我就在腦海中仔細(xì)考慮,并做出決定。在 PEP572 的問題上,盡管存在明顯的爭議,但我做出了選擇:我想引入這個(gè)功能,而且大家也沒有說不同意?!?br /> “我不想撂挑子不干了,但我覺得我沒有獲得足夠的核心開發(fā)者社區(qū)的信任,無法再領(lǐng)導(dǎo)整個(gè)團(tuán)隊(duì)繼續(xù)前進(jìn)?!?br /> 他認(rèn)為,有關(guān)語言的爭論方式的變化部分是因?yàn)槿缃袷褂?Python 的人數(shù)過于龐大。
“可能是因?yàn)?Python 社區(qū)的規(guī)模過于龐大。這些人之間很難達(dá)成共識(shí),因?yàn)闊o論你做出怎樣的決定,總有一些持異議的人士?!?br /> 今年早些時(shí)候,Python 核心開發(fā)人員(那些致力于維護(hù)和更新 Python 使用的 CPython 解釋器的人)選出了一個(gè)指導(dǎo)委員會(huì)來監(jiān)督該語言的發(fā)展。Van Rossum 與 Warsaw 以及核心開發(fā)人員 Brett Cannon、Carol Willing 和 Nick Coghlan 一起當(dāng)選。
Warsaw 表示,為了管理 Python 增長速度如此迅速的用戶群,這種變化是必要的。
“我感覺 Guido 想憑一己之力挑起整個(gè)世界?!彼f。
“放在 25 年前,當(dāng)時(shí) Python 還是一個(gè)很小的語言,社區(qū)規(guī)模也很小,一個(gè)人管理也沒問題。但今非昔比,而且我覺得為他的個(gè)人健康考慮,應(yīng)當(dāng)讓社區(qū)的五個(gè)人共同分擔(dān)這項(xiàng)重任?!盬arsaw 說。
在每次新 Python 功能發(fā)布后,指導(dǎo)委員會(huì)都會(huì)進(jìn)行新一屆的選舉,Warsaw 表示,這可以為下一任領(lǐng)導(dǎo) Python 發(fā)展的人鋪平道路。
“即便從現(xiàn)在開始 25 年后 Python 仍將健康發(fā)展,那么屆時(shí)也不是我和 Guido 所能管轄的世界了?!彼f。
廣大的 Python 核心開發(fā)人員社區(qū)非常歡迎指導(dǎo)委員會(huì)的設(shè)立,核心開發(fā)人員Mariatta Wijaya 表示,此舉意味著 Python 朝著正確的方向邁出了一步。“對(duì)我來說,通過委員會(huì)來共同做決定好過讓一個(gè)人全權(quán)決定,畢竟這份責(zé)任和負(fù)擔(dān)太大了?!彼f,“這是一個(gè)好兆頭,社區(qū)可以聽到更多人的心聲?!?Python 的未來 雖然 Python 持續(xù)以驚人的速度吸引著新用戶,但社區(qū)中的有些人預(yù)見到了未來的挑戰(zhàn),如果想維持 Python 的高度關(guān)注,那么就必須不斷發(fā)展。
在今年的 Python 語言峰會(huì)上,BeeWare 的聯(lián)合創(chuàng)始人 Russell Keith-Magee 發(fā)出了警告,如果 Python 無法改善對(duì)移動(dòng)和新網(wǎng)絡(luò)平臺(tái)的支持,那么就可能面臨“生死存亡的風(fēng)險(xiǎn)”。
手機(jī)和平板電腦對(duì)市場的滲透力是臺(tái)式機(jī)和筆記本電腦無法比擬的,但作為一個(gè)社區(qū),我們卻未能提供在這些設(shè)備上使用 Python 的渠道?!彼f。他調(diào)查了他兒子在學(xué)校使用 iPad 的情況,他問:“如果筆記本電腦被小型設(shè)備取代,那么 Python 該何去何從?”
Keith-Magee 希望通過 BeeWare 的項(xiàng)目,編寫一個(gè) Python 應(yīng)用程序,并在所有設(shè)備上運(yùn)行,解決目前 Python 無法支持標(biāo)準(zhǔn) x86 PC 之外的平臺(tái)的問題。 他表示,Python 需要更好地支持在非 x86 的新興硬件平臺(tái)上編譯代碼;Python 的測試套件容易在移動(dòng)和 Web 平臺(tái)上崩潰;Python 應(yīng)用程序的安裝過大,且無法縮減到一小部分的依賴項(xiàng);在 Android、Windows 和 Web 上編寫 GUI 代碼時(shí),使用 asyncio 庫需要付出額外的工作量;標(biāo)準(zhǔn)庫中存在大量無法與 CPython 以外的 Python 解釋器兼容的模塊。
Warsaw 表示,Keith-Magee 提出的意見非常中肯,而且他相信考慮 Python 與新平臺(tái)(包括手機(jī)、平板電腦和 WebAssembly 等新技術(shù))的關(guān)聯(lián)性非常重要。 “現(xiàn)在,Python 并沒有一個(gè)很好的途徑,”Warsaw 表示他希望有一天用戶通過 iPhone 或 Android 手機(jī)下載應(yīng)用時(shí)“從來不知道該應(yīng)用是用 Python 編寫的?!?br /> 隨著現(xiàn)代芯片內(nèi)部處理器核心數(shù)量的不斷攀升(英特爾最新的服務(wù)器中核心的數(shù)量高達(dá) 48 個(gè)),Warsaw 也希望看到 Python 能夠更好地處理多核心上的分散任務(wù)。
他對(duì) Eric Snow 在子解釋器上的工作進(jìn)展,以及擴(kuò)展 Python 并行運(yùn)行代碼的能力充滿了期待。“我真心希望看到 Python 能夠利用多核心完成更多工作的能力。”他說。
Snow 參與了一個(gè)長期項(xiàng)目,旨在提高 Python 在多個(gè)處理器核心之間有效地分割任務(wù)的能力,Snow 的主要工作是重新編寫 Python 現(xiàn)有的子解釋器功能,并改變每個(gè)子解釋器與 Python 全局解釋器鎖交互的方式。
Warsaw 說:“這個(gè)項(xiàng)目應(yīng)該不會(huì)在 Python 3.8 上發(fā)布,可能 3.9 也來不及?!拔夜烙?jì)我們會(huì)在兩年到兩年半以后看到它。我非常樂觀。我很高興 Eric 依然在努力,因?yàn)槲艺J(rèn)為這個(gè)工作非常重要。”
他說,即使是那些嘗試在多個(gè)核心上運(yùn)行多線程 Python 應(yīng)用程序的失敗項(xiàng)目,例如 The Gilectomy,也可以讓我們吸取有意義的經(jīng)驗(yàn)教訓(xùn),說明 Python 可以在多個(gè)核心之間分散工作負(fù)載方面有更出色的表現(xiàn)。
Python 社區(qū)還采取措施,提高了語言內(nèi)置代碼標(biāo)準(zhǔn)庫的現(xiàn)代化水平,最近他們發(fā)表了一項(xiàng)提議,建議從庫中刪除過時(shí)模塊。這樣做是為了應(yīng)對(duì)最近對(duì) Python 標(biāo)準(zhǔn)庫的一些批評(píng)。該庫常常被當(dāng)作 Python 的優(yōu)勢之一,因?yàn)樗捎糜趫?zhí)行廣泛的常見任務(wù),這就是為什么 Python 被稱為“自帶電池”的原因。然而,在今年的 Python 語言峰會(huì)上,有人在演講中說,應(yīng)該允許人們從 PyPI 中選擇庫,而不應(yīng)該作為標(biāo)準(zhǔn)庫與語言捆綁在一起,這樣 Python 才能更好地服務(wù)于人。
還有一些問題是,負(fù)責(zé)語言開發(fā)的 Python 核心開發(fā)人員和 Python 指導(dǎo)委員會(huì)是否可以更好地代表 2019 年 Python 用戶群的多樣性。
Wijaja 說:“我希望看到各個(gè)方面表現(xiàn)出更多的代表性,不僅僅是性別的平衡,還包括種族和其他一切?!?br /> “在 Python 大會(huì)上,我與來自印度和非洲的 PyLadies(Python 女性聯(lián)盟組織)成員進(jìn)行了交談。她們說,‘當(dāng)聽說 Python 或 PyLadies 時(shí),我們就會(huì)想到北美或加拿大人,實(shí)際上世界其他地方也有很多用戶群。為什么我們看不到呢?’我認(rèn)為她們說得很有道理。我肯定也希望看到更多的用戶群,我認(rèn)為我們都需要盡自己的責(zé)任?!?br /> Warsaw 說,盡管外間流傳著讓一位“仁慈的獨(dú)裁者”掌管一切的玩笑話,但近年來改變 Python 的想法皆源自社區(qū)中,他們敞開大門歡迎新用戶的到來,并推動(dòng) Python 的使用。
“整個(gè)社區(qū)是從底層向上構(gòu)建的,而不是自上而下的命令?!彼f。
說到社區(qū)項(xiàng)目對(duì) Python 產(chǎn)生的巨大影響,我想到了一個(gè)例子 Type Hints,這是一個(gè) Python 3.5 的功能,該功能受到了 2012 年由某個(gè)博士生創(chuàng)建的 mypy 項(xiàng)目的啟發(fā)。這些提示允許可選類型的檢查,可以讓開發(fā)人員發(fā)現(xiàn)一類其它方式很難發(fā)現(xiàn)的 Bug。
當(dāng)多個(gè)人在大型代碼庫上工作時(shí),這個(gè)額外的防護(hù)層絕不僅僅是錦上添花,這種對(duì)于代碼應(yīng)該做什么、不應(yīng)該做什么的額外規(guī)定可以產(chǎn)生重大影響。
“在我看來,讓 Python 在更大的組織中得以應(yīng)用的機(jī)會(huì)非常珍貴。比如 Instagram,他們基本上用的都是 Python 3。”Warsaw 說。他還說 asyncio 是社區(qū)想法對(duì)語言產(chǎn)生巨大影響的另一個(gè)例子。
有了指導(dǎo)委員會(huì),以及前所未有的龐大用戶群,Van Rossum 樂觀地認(rèn)為“社區(qū)驅(qū)動(dòng)的語言演變”將會(huì)繼續(xù)“非常成功”。
“我們有非??煽康暮诵拈_發(fā)人員社區(qū),現(xiàn)在這個(gè)社區(qū)有了新的治理系統(tǒng),因此我認(rèn)為我們已經(jīng)做好了準(zhǔn)備迎接任何語言發(fā)展的需求。”他對(duì)社區(qū)在 Python 特定方面的深刻認(rèn)識(shí)表示贊許。
Warsaw 表示,如果有人懷疑 Python 社區(qū)能否繼續(xù)為這種編程語言找到令人震驚的新用途,那么可以了解一下 Python 在幫助捕獲首張黑洞照片方面時(shí)發(fā)揮的作用。
“我對(duì)此感到非常震驚。我認(rèn)為 Python 社區(qū)中有幾個(gè)人是瘋狂的 Python 科學(xué)家。他們總是在尋找新機(jī)會(huì)——如今我們能做的就這么多,那么今后還能走得更遠(yuǎn)嗎?”

-END-

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 編程
    +關(guān)注

    關(guān)注

    88

    文章

    3689

    瀏覽量

    95190
  • 編程語言
    +關(guān)注

    關(guān)注

    10

    文章

    1956

    瀏覽量

    36590
  • python
    +關(guān)注

    關(guān)注

    56

    文章

    4827

    瀏覽量

    86660

原文標(biāo)題:崛起的Python正在蠶食編程語言界!

文章出處:【微信號(hào):gh_c472c2199c88,微信公眾號(hào):嵌入式微處理器】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    如何使用 CYW20829 獲得的傳感器數(shù)據(jù)發(fā)送到廣播中?

    計(jì)劃使用外部傳感器原始數(shù)據(jù)輸出到藍(lán)牙模塊的閃存中,然后通過藍(lán)牙發(fā)送原始數(shù)據(jù),與我個(gè)人筆記本電腦的藍(lán)牙配對(duì),并在我的個(gè)人電腦中獲取這些原始數(shù)據(jù)。 我計(jì)劃先用 python 獲取數(shù)據(jù),
    發(fā)表于 07-02 07:16

    Hi3861 wifiiot_hispark_pegasus 按教程安裝python3 -m pip install build/lite 報(bào)錯(cuò)

    問題1: 報(bào)錯(cuò): 問題2: 我安裝網(wǎng)上搜的方法執(zhí)行 python3 -m pip install --user ohos-build==0.4.3 hb -v [OHOS INFO] hb
    發(fā)表于 06-14 16:48

    e絡(luò)盟“頂尖科技之聲”第四期與 AI策略師深入了解最新AI發(fā)展

    安富利旗下全球電子元器件產(chǎn)品與解決方案分銷商e絡(luò)盟繼續(xù)發(fā)布熱門訪談系列“頂尖科技之聲”,邀請(qǐng)全球公認(rèn)的道德 AI 標(biāo)準(zhǔn)化領(lǐng)域領(lǐng)軍人物之一 Toju Duke 展開討論
    的頭像 發(fā)表于 02-18 16:35 ?453次閱讀
    e絡(luò)盟“頂尖科技之聲”第四期與 AI策略師深入了解最新AI發(fā)展

    如何python文件導(dǎo)入到ROS系統(tǒng)中

    本文通過使用myCobot機(jī)械臂進(jìn)行QR碼視覺追蹤的實(shí)踐案例分析,介紹如何 python 文件導(dǎo)入到 ROS 系統(tǒng)中。
    的頭像 發(fā)表于 02-11 11:08 ?786次閱讀
    如何<b class='flag-5'>將</b><b class='flag-5'>python</b>文件導(dǎo)入到ROS系統(tǒng)中

    字節(jié)跳動(dòng)否認(rèn)與中興通訊合作傳聞

    近日,有關(guān)字節(jié)跳動(dòng)旗下豆包大模型內(nèi)嵌手機(jī)并與中興通訊探討成立新品牌的消息引發(fā)了市場的廣泛關(guān)注。然而,字節(jié)跳動(dòng)方面對(duì)此明確予以否認(rèn),稱并未與中興通訊就上述事宜展開討論。 據(jù)字節(jié)跳動(dòng)官方澄清,盡管豆包
    的頭像 發(fā)表于 12-18 10:08 ?1088次閱讀

    意瑞半導(dǎo)體亮相第五屆汽車電驅(qū)動(dòng)及關(guān)鍵技術(shù)大會(huì)

    近日,第五屆汽車電驅(qū)動(dòng)及關(guān)鍵技術(shù)大會(huì)在上海圓滿落幕。本次大會(huì)以“成本效率,雙輪驅(qū)動(dòng)”為主題,聚焦于電驅(qū)動(dòng)總成及冷卻技術(shù)、高壓功率模塊、大功率充電、高壓系統(tǒng)測試等熱點(diǎn)話題,邀請(qǐng)各界專家展開討論,旨在助力行業(yè)取得更多突破。
    的頭像 發(fā)表于 12-02 09:55 ?699次閱讀

    Prolith和HyperLith的優(yōu)劣勢

    Prolith和HyperLith在光刻領(lǐng)域的優(yōu)劣勢,可以展開討論討論
    發(fā)表于 11-29 22:12

    現(xiàn)代智能建筑中電氣火災(zāi)安全監(jiān)控管理的解決方案

    文章就濱河商務(wù)建筑項(xiàng)目展開討論,針對(duì)項(xiàng)目中的電氣火災(zāi)監(jiān)控問題提出電氣火災(zāi)監(jiān)控系統(tǒng)設(shè)計(jì)與應(yīng)用、網(wǎng)絡(luò)設(shè)計(jì)、系統(tǒng)監(jiān)控設(shè)計(jì)、系統(tǒng)監(jiān)測、數(shù)據(jù)收集和分析、遠(yuǎn)程監(jiān)控等相關(guān)措施,以強(qiáng)化電氣火災(zāi)監(jiān)控水平,降低用戶使用風(fēng)險(xiǎn)。
    的頭像 發(fā)表于 10-24 10:55 ?528次閱讀

    特斯拉獲xAI模型授權(quán)

    近日,埃隆·馬斯克旗下的創(chuàng)新企業(yè)x.AI與特斯拉就一項(xiàng)重大合作展開討論,雙方擬就特斯拉獲得xAI模型授權(quán)達(dá)成正式協(xié)議。據(jù)悉,特斯拉利用這一前沿AI技術(shù),加速其“完全自動(dòng)駕駛”(FSD)系統(tǒng)的研發(fā)進(jìn)程,進(jìn)一步提升自動(dòng)駕駛技術(shù)的智能化水平。
    的頭像 發(fā)表于 09-09 17:24 ?661次閱讀

    使用Python進(jìn)行Ping測試

    )請(qǐng)求包,然后等待目標(biāo)主機(jī)返回響應(yīng)包,從而測量網(wǎng)絡(luò)的延遲和丟包情況。隨著Python編程語言的廣泛應(yīng)用,越來越多的網(wǎng)絡(luò)工程師開始使用Python進(jìn)行自動(dòng)化網(wǎng)絡(luò)測試和管理任務(wù)。本篇文章詳細(xì)介紹如何使用
    的頭像 發(fā)表于 08-12 17:56 ?999次閱讀
    使用<b class='flag-5'>Python</b>進(jìn)行Ping測試

    pytorch和python的關(guān)系是什么

    ,PyTorch已經(jīng)成為了一個(gè)非常受歡迎的框架。本文介紹PyTorch和Python之間的關(guān)系,以及它們?cè)谏疃葘W(xué)習(xí)領(lǐng)域的應(yīng)用。 Python簡介 Python是一種高級(jí)、解釋型、通用
    的頭像 發(fā)表于 08-01 15:27 ?3265次閱讀

    武漢凱迪正大分享電纜電力檢測方法及其優(yōu)缺點(diǎn)

    隨著技術(shù)的發(fā)展和進(jìn)步電纜電力檢測方法也日益多樣化,涵蓋了從傳統(tǒng)的電橋法到現(xiàn)代的局部放電法、紅外熱像法等多種技術(shù)手段。本文依照凱迪正大的經(jīng)驗(yàn)圍繞電纜電力檢測的主要方法展開討論,并分析其各自的優(yōu)缺點(diǎn)。
    的頭像 發(fā)表于 07-24 17:28 ?661次閱讀

    Python建模算法與應(yīng)用

    上成為理想的腳本語言,特別適用于快速的應(yīng)用程序開發(fā)。本文詳細(xì)介紹Python在建模算法中的應(yīng)用,包括常見的建模算法、Python在建模中的優(yōu)勢、常用庫以及實(shí)際案例。
    的頭像 發(fā)表于 07-24 10:41 ?1240次閱讀

    Python在AI中的應(yīng)用實(shí)例

    Python在人工智能(AI)領(lǐng)域的應(yīng)用極為廣泛且深入,從基礎(chǔ)的數(shù)據(jù)處理、模型訓(xùn)練到高級(jí)的應(yīng)用部署,Python都扮演著至關(guān)重要的角色。以下詳細(xì)探討Python在AI中的幾個(gè)關(guān)鍵應(yīng)用
    的頭像 發(fā)表于 07-19 17:16 ?2648次閱讀

    opencv-python和opencv一樣嗎

    不一樣。OpenCV(Open Source Computer Vision Library)是一個(gè)開源的計(jì)算機(jī)視覺和機(jī)器學(xué)習(xí)軟件庫,它提供了大量的圖像和視頻處理功能。OpenCV-Python
    的頭像 發(fā)表于 07-16 10:38 ?2066次閱讀