色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

解開Python身上神奇的謎團

DPVg_AI_era ? 來源:lq ? 2019-09-01 07:43 ? 次閱讀

這篇長文詳細寫了Python從誕生到流行的故事,專訪了Python發明人Guido van Rossum以及相關的一些人,展示了Python是如何成為最受歡迎的編程語言的。

誰能想到,30年后,一條蟒蛇因為人工智能而席卷了全世界!這一切,都源于1989年的那個圣誕節。

一個名叫Guido van Rossum程序員在荷蘭的阿姆斯特丹呆著,無所事事的圣誕假期有點無聊。為了打發時間,他開發了一個新的腳本解釋程序。于是,現在機器學習的首選語言:Python誕生了。

Python以簡單易用而廣受歡迎,它簡單到即使你不是學計算機的人,也可以輕松的學會Python,開發一些可以提高工作效率的腳本程序。

如今的Python,既可以將黑洞的第一張圖像拼接在一起,也能夠在全球無數臺電腦上為黑客提供動力;它幫助Netflix將視頻流傳輸到全球超過1億個家庭,為照片共享現象Instagram提供動力,幫助NASA進行太空探索。

但有個問題一直非常耐人尋味:Python究竟是如何從一個“閑散人員”的業余項目開始,短短幾十年便成為全世界最熱門語言的?

TechRepublic首席記者采訪了Python之父Guido van Rossum,試圖解開Python身上神奇的謎團。

就讓我們,從Python的身世說起吧。

為什么是Python?

到底作者是怎么想的才會起名Python?

Python誕生于1989年,距今剛好30個年頭。Python的誕生源于一次偶然,而Python的命名則源于一部喜劇。

那個時候,Guido非常癡迷一部喜劇《蒙提·派森的飛行馬戲團(Monty Python's Flying Circus)》。該劇在當時以革新的電視喜劇模式發展,一定程度地影響了日后的英國喜劇。因此Guido給自己新項目起了一個霸氣的名字:Python(蟒蛇)。

2年后,即1991年,Python首版正式面世;2000年,最負盛名版本:Python 2正式發布;2008年,最具爭議版本:Python 3出世。

到底Python是因為什么被創建出來的呢?

Perl腳本語言與他在CWI工作的Amoeba分布式計算系統不兼容,是促使他自己開發一門語言的關鍵。

一個人開發一門語言,難度那是相當大的。好在當時而立之年的Guido已經有了相當的開發經驗。此前,他花了三年時間在CWI的一個團隊工作,創建了一個解釋性編程語言ABC,已經深入了解了構建執行程序員指令的解釋器需要什么,以及新語言所需的語法構建塊。

而ABC并不成功,他看到了ABC身上的很多缺點,例如:不可擴、不能直接進行IO、傳播困難、過度革新。因此在寫Python的時候,Guido從一開始就奠定了“開放”的基調。

Python本身被設計為可擴展的。并非所有的特性和功能都集成到語言核心。Python提供了豐富的API和工具,以便程序員能夠輕松地使用C、C++、Cython來編寫擴展模塊。Python編譯器本身也可以被集成到其它需要腳本語言的程序內。

因此,有很多人把Python作為一種“膠水語言”使用。使用Python將其他語言編寫的程序進行集成和封裝。在Google內部的很多項目,例如Google應用服務引擎使用C++編寫性能要求極高的部分,然后用Python或Java/Go調用相應的模塊。

到底是什么樣的人能開發出Python這樣的語言呢?

當時的Guido也是個典型的理工宅男,沒有太多的社交生活。再說當時也沒有WhatsApp、Tinder。Guido基本就是看電視、編程,或者看電視的時候順便編程。

同樣作為一個典型的理工宅男,親手創造產品的沖動總是如影隨形。在一個無所事事的圣誕節假期,Guido決定自己動手,親自設計、開發一個大項目,完全按照他的想法寫代碼、進行布局和設計。編程這件事情,比電視劇更讓他沉迷。

從1989年開始,Guido就一直是Python的決策者以及主力開發者,因此Python社群經常稱呼他是終身仁慈獨裁者。

到底誰是Python的第一批種子用戶?

Guido剛把Python做出來,需要有人來使用。但當時Guido并不是什么意見領袖、名人大腕,加上那時候還沒有互聯網,雖然手捧著Python這把屠龍寶刀,卻難尋屠龍的劍士。他硬是說服了兩位同事,成為Python的第一批種子用戶。

那個時候,Guido對這個小蛇蛇并沒有什么大的期待,只要有人用就感覺很開心了,也算辛苦沒有白費。

1991年,Guido通過alt.sources新聞組向世界發布了Python。從此,一傳十,十傳百,Python收獲到了越來越多的用戶,Python社群也開始活躍起來。

他意識到,自己可能成功了!

為什么Python贏了

下圖顯示了各語言的增長趨勢。注意哪條加粗的紅線,Python可以說締造了一個奇跡!

怎么會這樣?

Guido覺得,開發者之所以熱愛Python,因為它解決了開發者的痛點,也就是Guido開發Python的初衷:開發者需要一種高級腳本語言,在易用性和功能性之間取得平衡、在處理復雜邏輯時沒有Unix shell的限制;能夠像C語言那樣,全面調用計算機的功能接口,又可以像shell那樣,可以輕松的編程。

分析公司Gartner的應用程序平臺戰略團隊的研究主管Fintan Ryan表示,Python清晰易讀的語法,在贏得開發人員方面發揮了重要作用,無論是現在還是在20世紀90年代,即使將這種重要性歸因于縮進已經證明是分裂的。

除了這種可讀性之外,Guido還表示,從早期開始,Python就提供了一系列內置功能,例如具有類和異常處理等功能;提供了對lambda、map和filter等函數的支持等。

在Python的開發過程中,社區同樣起到了重要的作用。Guido自認為自己不是全能型的程序員,所以他只負責制訂框架。

如果問題太復雜,他會選擇繞過去,也就是cut the corner。這些問題最終由社區中的其他人解決。

社區中的人才是異常豐富的,就連創建網站,籌集基金這樣與開發稍遠的事情,也有人樂意于處理。如今的項目開發越來越復雜,越來越龐大,合作以及開放的心態成為項目最終成功的關鍵。

而互聯網也是成就Python的重要推力。Python被應用于Web開發,迎來了Python的一次井噴。

到1994年,Python引起了Michael McLay的注意,他當時美國國家標準局(NBS,現在是NIST,美國國家標準與技術研究所)擔任高級職位。 為了向局內的其他人推銷Python,McLay邀請當時還在荷蘭CWI工作的van Rossum到NIST做兩個月的客座研究員。這個職位后來被證明是Python未來發展的催化劑,也是van Rossum人生中的一個重大變化。

van Rossum 與Warsaw和Roger Masse在第一次Python研討會上,當時他們一起在CNRI工作 Credit: Barry Warsaw

正是擔任這個職位期間,第一次Python研討會在國家統計局的辦公室舉行了,van Rossum、Barry Warsaw以及其他早期Python愛好者聚集在一起,討論他們正在用Python做什么,以及對這種語言未來發展的希望。

在國家統計局的辦公室里, van Rossum 見到了羅伯特·卡恩(Bob Kahn)??ǘ饕騾⑴c開發了互聯網的一項基本技術——TCP/IP協議而聞名。

那次會議的結果是van Rossum得到了一份工作邀請,與卡恩一起在國家研究計劃公司(CNRI)工作。CNRI是一個位于弗吉尼亞州的非盈利研究組織,專注于網絡技術的戰略發展。

那時Python已經解決了對一種新型編程語言的需求,van Rossum說正好是在他開始質疑自己在CWI的未來時,這份工作邀約恰逢其時。

他說:“CWI更像是一個學術機構,他們對我施加了輕微的壓力,要么讓我攻讀博士學位,要么讓我面對不得不到別處找工作的前景。”

“那時我已經35歲了,攻讀博士課程的前景并沒有真正吸引我。早些時候,由于Python的原因,其他一些潛在客戶找到了我,在打了很多電話并思考之后,我決定拒絕他們。但在這里,我喜歡這里的人,喜歡他們提供給我的東西,喜歡這個項目,我就去做了?!?/p>

正是在CNRI, van Rossum在一群Python愛好者的幫助下,將許多用于管理Python語言的結構組合在一起。1995年4月加入CNRI后,van Rossum領導了一個小型開發團隊,致力于開發名為Knowbot的程序,該軟件被稱為移動代理,設計用來運行跨分布式計算機系統,比如互聯網。

這個團隊使用Python工作,加入van Rossum的還有Jeremy Hylton、Roger Masse、Barry Warsaw、Ken Manheimer和Fred Drake,他們都將在Python社區中發揮重要作用。

van Rossum說:“我們最終形成了一個由4到10人組成的團隊,其中大部分人在CNRI工作,他們是Python開發的核心。”

當van Rossum在CNRI工作時,這個團隊幫助他創建了python.org網站、用于管理核心代碼庫更改的CVS服務器,以及用于改進和維護Python語言的Python特殊興趣組的郵件列表。

自1991年公開發布以來,Python用戶群體顯著增長,到2016年,該語言已經吸引了相當大的全球用戶群。在此期間,隨著Python軟件基金會(PSF)前身的建立,語言的管理開始形式化,該基金會于2001年成立。隨著社區的發展,從1994年開始的兩年一度的Python研討會逐漸演變成更大型的年度活動,并最終演變成PSF的年度PyCon,直到今天仍然很受歡迎。

到了21世紀之交,Python語言發展到非常大,有一個相當大的社區在其發展中發揮著積極作用,而在1994年的夏天,早期Python用戶對這門語言最擔心的事情是“萬一Guido發生車禍怎么辦”。

然而,Van Rossum繼續扮演著核心角色,他是這門語言的核心的想法從未消失,他得到一個昵稱“仁慈的終身獨裁者”(BDFL),這個半開玩笑的頭銜流傳了多年。

Ryan說,一種語言的創建者充當這種語言的管理員并不是不尋常的事,他引用了Perl語言創建者Larry Wall,以及Node.js的Ryan Dahl的例子。但是他說van Rossum在Python的管理上是公平的。

實際上,通過核心開發人員社區之間的公開辯論,van Rossum將Python開發的開放性歸結為Python成功的決定性因素。

Python的演變

在這期間,Python取得了重大飛躍,特別是2008年Python 3.0的推出使該語言現代化了,最近該語言的管理方式也發生了重大變化。

這些變化是去年觸發的,當時van Rossum辭去了BDFL的領導角色,原因是社區對PEP 572提案中引入“賦值表達式”爭論不休。

雖然引入賦值表達式是為了讓編寫代碼更高效,但van Rossum在網上遭到了反對修改的人的嚴厲批評,一些人認為使用賦值表達式會降低代碼的可讀性,難以維護。

Van Rossum說,他習慣了就新功能進行辯論,但正是一些詆毀他的人的頑固態度,以及某些攻擊他個人的舉動,使他決定辭職。

“我對那些技術上持不同意見的人在社交媒體上開始抱怨說決策流程被打破了,或者說我犯了一個嚴重的錯誤,感到非常失望。我感覺背后受到了攻擊,”他說。

“過去,如果要對語言的變化或功能的改進做出決定,很顯然,一群核心開發人員會討論這件事的利弊。要么會出現一個明確的共識,要么,如果沒有那么明確的共識,我會在腦海中反復考慮,然后做出決定。在PEP572項目上,盡管它很有爭議,但我選擇了肯定的答案。”

“這并不是一場反抗,但我覺得我沒有得到足夠多的核心開發者社區的信任,來支持我繼續前進。”

他認為,這種爭論變了味兒的部分原因是今天使用Python的人太多了。

“Python社區的規模如此之大,這可能也是原因之一。當然,達成任何形式的共識都比較困難,因為無論你怎么決策,總會有一些異見人士?!?/p>

Python核心開發人員Mariatta Wijaya對選舉Python指導委員會來監督該語言的開發表示歡迎。來源:A. Jesse Jiryu Davis

今年早些時候,負責維護和更新Python參考CPython解釋器的Python核心開發人員選舉了一個指導委員會來監督該語言的未來。Van Rossum和Warsaw以及其他核心開發者Brett Cannon、Carol Willing和Nick Coghlan一同當選。

Warsaw說,對用戶基數增長如此之快的語言進行管理是必要的。

“要是25年前可能還好,當時Python社區很小,Python語言也比較小,但現在它真的太大了,完全讓一個人負擔是不行的。我認為,僅僅是為了Guido個人的健康和對社區的參與,將這種負擔分攤到五個人身上比較好。”

每次新的Python功能發布后,指導委員會都會進行新的選舉,Warsaw說這將為下一代領導語言鋪平道路。

他說:“如果Python在25年后還能保持健康,那就不會是Guido和我在管理了?!?/p>

指導委員會的成立也受到了更廣泛的Python核心開發人員社區的歡迎,核心開發人員Mariatta Wijaya說,這一舉措感覺像是朝著正確的方向邁出了一步。她說:“對我來說,指導委員會比一個人決定一切要好——這是太大的責任和負擔?!?/p>

Python的未來

雖然Python繼續以驚人的速度吸引新用戶,但社區內的一些人看到了未來的挑戰,如果Python想保持增長,就需要不斷發展。

在今年的Python語言峰會上,BeeWare聯合創始人Russell Keith-Magee警告說,如果對移動平臺和新的web平臺的支持得不到改善,Python將面臨“生存風險”。

手機和平板電腦正在實現臺式機和筆記本電腦從未見過的市場滲透,但作為一個社區,我們沒有一個關于如何在這些設備上使用Python的計劃,”他說?!澳敲?,當筆記本電腦成為利基設備時,Python會發生什么變化呢?”

Keith-Magee的BeeWare項目旨在使用Python編寫應用程序并使其在任何地方運行成為可能。

他提到,需要更好地支持為非x86硬件平臺編譯代碼;Python的測試套件很容易在移動平臺和web平臺上崩潰;Python應用程序的安裝大小過于龐大;在Android、Windows和web上編寫GUI代碼時,使asyncio庫工作所需的工作量過大;以及標準庫中與除CPython外的Python解釋器不兼容的模塊數量太多。

Warsaw說,Keith-Magee提出了許多很好的觀點,并認為重要的是要考慮Python如何與新平臺——手機、平板電腦以及諸如WebAssembly等較新的web技術——保持相關性。

“目前,Python在這方面并沒有做得很好,”Warsaw說,他希望能夠為iPhone或Android手機下載一款應用程序,“甚至不知道它是用Python編寫的”。

隨著現代芯片中處理器核的數量不斷攀升(英特爾最新的服務器產品中處理器核的數量達到了48個),Warsaw也希望Python能夠更好地將任務分散到多個核上。

他對Eric Snow在子解釋器方面的工作潛力以及如何擴展Python并行運行代碼的能力感到興奮。他說:“我真正希望看到的是更多能夠利用多核心的工作。”

Snow參與了一個長期項目,旨在使Python更容易地在多個處理器核心之間有效地分割任務。Snow 專注于使用 Python 現有的子解釋器功能的重新編寫版本,并改變每個子解釋器與GIL交互的方式。

Warsaw說:“它還沒為Python 3.8完全準備好,也許3.9就可以了?!薄拔艺J為,我們將在未來兩到兩年半的時間里看到這一點。我很樂觀。我真的很高興Eric能繼續從事這個項目,因為我認為這是一項重要的工作。”

Python社區還在采取措施,對內置代碼的標準庫進行現代化,他們最近發布了一項提案,建議從庫中刪除過時的模塊;這樣做解決了最近對Python標準庫狀態的一些批評。這個庫通常被認為是Python的優勢之一,因為它可以用于執行廣泛的常見任務。然而,在今年的Python語言峰會上,有人提出了這樣一個問題:如果允許人們從PyPI存儲庫中選擇代碼庫,而不是將該語言的功能捆綁為標準庫,是否會對Python更好。

還有一個問題是,監督語言開發的組織(Python核心開發人員和Python指導委員會),能否更好地反映2019年Python用戶群的多樣性。

Warsaw說,最終,盡管有一個“仁慈的獨裁者”掌管一切這樣半開玩笑的說法,但近年來,Python的形成理念已經從社區中涌現出來,人們不斷推動Python的可能性,打開新用途的大門。

他說:“這真的是從社區中冒出來的,而不是自上而下的?!?/p>

今年早些時候, Python幫助合成了第一批黑洞圖像,距離地球約5萬億公里。來源:Event Horizon Telescope collaboration et al.

隨著指導委員會的成立和比以往任何時候都多的用戶基礎,van Rossum樂觀地認為“社區驅動的語言進化”將繼續“非常成功”。

Warsaw說,如果有人懷疑Python社區是否有能力繼續為該語言找到令人驚訝的新用途,那么他只需看看Python在幫助捕獲第一張黑洞圖像方面的作用。

“這讓我感到震驚。在Python社區中有幾個人,我認為他們是Python的瘋狂科學家。他們總是在想,好吧,這是我今天能做的——我能把它推進多遠呢?”

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 編程語言
    +關注

    關注

    10

    文章

    1946

    瀏覽量

    34801
  • C++
    C++
    +關注

    關注

    22

    文章

    2110

    瀏覽量

    73696
  • python
    +關注

    關注

    56

    文章

    4797

    瀏覽量

    84789

原文標題:30年,Python正在吞食世界

文章出處:【微信號:AI_era,微信公眾號:新智元】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    使用Python進行圖像處理

    下面是一個關于使用Python在幾行代碼中分析城市輪廓線的快速教程。
    的頭像 發表于 11-07 10:14 ?248次閱讀
    使用<b class='flag-5'>Python</b>進行圖像處理

    解開關模式電源中的升壓功率級

    電子發燒友網站提供《了解開關模式電源中的升壓功率級.pdf》資料免費下載
    發表于 10-11 11:30 ?1次下載
    了<b class='flag-5'>解開</b>關模式電源中的升壓功率級

    解開關模式電源中的降壓功率級

    電子發燒友網站提供《了解開關模式電源中的降壓功率級.pdf》資料免費下載
    發表于 08-28 11:21 ?0次下載
    了<b class='flag-5'>解開</b>關模式電源中的降壓功率級

    并非所有抖動都是相同的:了解開關電源中的抖動

    電子發燒友網站提供《并非所有抖動都是相同的:了解開關電源中的抖動.pdf》資料免費下載
    發表于 08-26 14:24 ?1次下載
    并非所有抖動都是相同的:了<b class='flag-5'>解開</b>關電源中的抖動

    pytorch和python的關系是什么

    在當今的人工智能領域,Python已經成為了最受歡迎的編程語言之一。Python的易學易用、豐富的庫和框架以及強大的社區支持,使其成為了數據科學、機器學習和深度學習等領域的首選語言。而在深度學習領域
    的頭像 發表于 08-01 15:27 ?2049次閱讀

    Python建模算法與應用

    Python作為一種功能強大、免費、開源且面向對象的編程語言,在科學計算、數學建模、數據分析等領域展現出了卓越的性能。其簡潔的語法、對動態輸入的支持以及解釋性語言的本質,使得Python在多個平臺
    的頭像 發表于 07-24 10:41 ?577次閱讀

    Python在AI中的應用實例

    Python在人工智能(AI)領域的應用極為廣泛且深入,從基礎的數據處理、模型訓練到高級的應用部署,Python都扮演著至關重要的角色。以下將詳細探討Python在AI中的幾個關鍵應用實例,包括機器學習、深度學習、自然語言處理、
    的頭像 發表于 07-19 17:16 ?1148次閱讀

    如何實現Python復制文件操作

    Python 中有許多“開蓋即食”的模塊(比如 os,subprocess 和 shutil)以支持文件 I/O 操作。在這篇文章中,你將會看到一些用 Python 實現文件復制的特殊方法。下面我們開始學習這九種不同的方法來實現 Pyt
    的頭像 發表于 07-18 14:53 ?433次閱讀

    Python語言基礎2

    電子發燒友網站提供《Python語言基礎2.rar》資料免費下載
    發表于 07-17 17:23 ?1次下載

    opencv-python和opencv一樣嗎

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

    python訓練出的模型怎么調用

    Python中,訓練出的模型可以通過多種方式進行調用。 1. 模型保存與加載 在Python中,訓練好的模型需要被保存,以便在其他程序或會話中使用。以下是一些常用的模型保存和加載方法。 1.1
    的頭像 發表于 07-11 10:15 ?2023次閱讀

    用pycharm進行python爬蟲的步驟

    以下是使用PyCharm進行Python爬蟲的步驟: 安裝PyCharm和Python 首先,您需要安裝PyCharm和Python。PyCharm是一個流行的Python集成開發環境
    的頭像 發表于 07-11 10:11 ?880次閱讀

    Python自動化測試框架及其應用

    Pytest是一個非常成熟的全功能的Python測試框架,與python自帶的unittest測試框架類似,但是比unittest框架使用起來更簡潔,功能更強大。
    的頭像 發表于 04-03 16:15 ?562次閱讀
    <b class='flag-5'>Python</b>自動化測試框架及其應用

    基于Python的地圖繪制教程

    本文將介紹通過Python繪制地形圖的方法,所需第三方Python相關模塊包括 rasterio、geopandas、cartopy 等,可通過 pip 等方式安裝。
    的頭像 發表于 02-26 09:53 ?1246次閱讀
    基于<b class='flag-5'>Python</b>的地圖繪制教程

    如何使用linux下gdb來調試python程序

    如何使用linux下gdb來調試python程序? 在Linux下,可以使用GDB(GNU調試器)來調試Python程序。GDB是一個強大的調試工具,可以幫助開發者診斷和修復程序中的錯誤。在本文
    的頭像 發表于 01-31 10:41 ?2656次閱讀
    主站蜘蛛池模板: 无码11久岁箩筣| 99精品在线播放| 国产成人精品自线拍| 舔1V1高H糙汉| 狠狠干狠狠色| 2023国产精品一卡2卡三卡4卡| 免费撕开胸罩吮胸视频| 高龄熟女50P| 一本久道视频无线视频| 欧美精品一区二区三区四区| 国产精品久久久久久亚洲毛片| 幺妹视频福利视频| 亲女乱h文小兰第一次| 国产亚洲精品香蕉视频播放| 3d无遮挡h肉动漫在线播放| 十分钟免费看完整视频| 久久国产精品久久国产精品| 草莓视频在线免费观看| 亚洲无码小格式| 日本一卡精品视频免费| 久久爱狠狠综合网| 国产1769一七六九视频在线| 影音先锋男人资源813.| 色哟哟网站入口在线观看视频| 久久精品国产在热亚洲完整版| 东北成人社区| 2021自产拍在线观看视频| 卫生间被教官做好爽HH视频| 美女脱了内裤张开腿让男人爽| 国产精品一区二区三区免费| 99久久精品免费看国产一区二区三区 | 免费夜里18款禁用软粉色| 国产精品人妻无码久久久蜜桃臀| 116美女写真午夜电影z| 亚洲AV久久久久久久无码| 青草影院天堂男人久久| 久久热在线视频精品| 国产精品久久人妻无码蜜| 99九九精品视频| 依人青青青在线观看| 亚洲xxxx动漫|