偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

Python 之父談 Python

開發(fā) 后端
在宣傳海報(bào)上,Python 之父 Guido van Rossum 在 EuroPython 2015 會(huì)議的發(fā)言分為講話稿和現(xiàn)場(chǎng)問(wèn)答部分,但是他上臺(tái)后將全程改為現(xiàn)場(chǎng)問(wèn)答的形式。他在回答現(xiàn)場(chǎng)觀眾的問(wèn)題前,首先以自己的幾個(gè)問(wèn)題和答案推動(dòng)了會(huì)議的進(jìn)程。 話題包括 Python 3(以及3.5),為何沒有2.8版本,為什么有這么多開放的bug,Pypy,還有他討厭 Python 的哪些部分。

在宣傳海報(bào)上,Python 之父 Guido van Rossum 在 EuroPython 2015 會(huì)議的發(fā)言分為講話稿和現(xiàn)場(chǎng)問(wèn)答部分,但是他上臺(tái)后將全程改為現(xiàn)場(chǎng)問(wèn)答的形式。他在回答現(xiàn)場(chǎng)觀眾的問(wèn)題前,首先以自己的幾個(gè)問(wèn)題和答案推動(dòng)了會(huì)議的進(jìn)程。 話題包括 Python 3(以及3.5),為何沒有2.8版本,為什么有這么多開放的bug,Pypy,還有他討厭 Python 的哪些部分。

Django Girls

Van Rossum 自己的***個(gè)問(wèn)題是他如何看待 Django Girls ——前一天演講的主題。他說(shuō),這是一次偉大的對(duì)話,他熱愛講故事。他的講話中將不會(huì)有相關(guān)的內(nèi)容,或者任何“漂亮的幻燈片”。當(dāng)他聽到Ola…或Ola… 為這些幻燈片畫了松鼠和獾時(shí),他非常震驚。

他喜歡的另一個(gè)方面是他們申明他們不知道他們正在做什么。讓他想起了 25 年前開始寫 python,他也不知道接下來(lái)該怎么做,例如,他不知道一門編程語(yǔ)言需要不同角色的社區(qū)。

他也被他們一年時(shí)間創(chuàng)造的“強(qiáng)勢(shì)品牌”所感染,“我預(yù)計(jì) Ola and Ola、Django Girls 將走的很遠(yuǎn)。”

Python 版本

轉(zhuǎn)換方向,他的下一個(gè)疑惑是為什么開發(fā)者轉(zhuǎn)向 python 3。“你為什么不能放棄 python 3?”,他設(shè)問(wèn)自己。但他沒有說(shuō)人們應(yīng)該轉(zhuǎn)移向 python 3,但他也不想他們這樣做,但是確實(shí)有許多困難的工作需要花費(fèi)一些其他的東西。例如這些應(yīng)用和網(wǎng)站的面貌,python 2.7 現(xiàn)在并沒有死去,而且會(huì)有更多安全修復(fù),或許,接下來(lái)的五年將會(huì)有更加安全的面貌。移植到 python 3 將有許多繁雜的工作,所以為什么要打擾?

[[146272]]

一方面,Python 3是一種要比 Python 2“好得多的語(yǔ)言”。這是一種非常容易教的語(yǔ)言。比如,Django Girls 工作室是完全基于 Python 3 進(jìn)行開發(fā)的。要說(shuō) Django 的開發(fā)者沒有做過(guò)基于框架接口的垃圾工作,那從來(lái)都是不可能的。這樣一來(lái),使用這種語(yǔ)言(和這種框架)使得***次開發(fā)體驗(yàn)更加讓人愉快。

隨著時(shí)間推移,Python 將變得越來(lái)越好。比方,Python 3.5 中有“很多出色的新的東西”。他說(shuō),Python 2 是一種優(yōu)秀的語(yǔ)言并將一如既往地保持著原本的特性,這讓它漸漸地向***的2.7版靠近。要想在核心開發(fā)者所做的所有工作中獲得益處,唯一辦法是轉(zhuǎn)移到 Python 3 中去。

一個(gè)長(zhǎng)期存在的問(wèn)題是,為什么沒有讓 Python 2.8 發(fā)布,盡管 Van Rossum 指出,可能有些風(fēng)格有些過(guò)時(shí)的問(wèn)題。 Python 2.8 不能解決任何人們想要解決的問(wèn)題。沒有新的特性,這意味著沒有理由讓版本升級(jí),而從 Python 3 開始移植的閘門已經(jīng)打開。那將使得程序既需要移植到 2.8,還需要移植到 3。

Unicode 是一個(gè)移植到 3 的大障礙。但是“該適可而止了”。因此 Python 2 正處在一個(gè)狀態(tài)中,它沒有得到新的特性。這讓核心的開發(fā)者把精力集中在 Python 3 上,把它做得更好。

他接下來(lái)談及了即將在 9 月份完成的 Python3.5。他曾經(jīng)對(duì)如此至多的特性無(wú)法選擇,舉個(gè)例子來(lái)說(shuō),  os.scandir() 帶來(lái)的性能優(yōu)化非常的棒,但實(shí)際上大部分的用戶并不會(huì)注意到。另一部分用戶對(duì)新的矩陣乘法運(yùn)算符將會(huì)感到非常開心。像 NumPy 和其他的科學(xué)計(jì)算包將會(huì)開始使用這玩意,這個(gè)特性將會(huì)比調(diào)用一個(gè)函數(shù)來(lái)的『自然』多了。

或許他最喜歡的 Python3.5 特性是語(yǔ)法提示 , 也就是他自己做的那個(gè) PEP。為了讓 PEP 接受它,他可下了不少功夫,自己做為自己的裁判,說(shuō)服自己接受自己的工作,這也有點(diǎn)小奇怪。不過(guò)他還是希望還是有人來(lái)給幫他做一個(gè)獨(dú)立的 Code Review,就像 Mark Shannon 曾經(jīng)作為 BDFL 代表做過(guò)的事情一樣,他說(shuō)。

“如果你對(duì)這個(gè)也不感到意外的話,上一個(gè) PEP 接受的 Python3.5 特性就是他作為興趣研究搞的異步與等待關(guān)鍵詞。這個(gè)將會(huì)提供一個(gè)更自然的途徑去寫關(guān)于協(xié)程的代碼。”

公開的bug

最近有人問(wèn)及他關(guān)于 python bug 跟蹤里所有公開 bug 的問(wèn)題。如果你隨便找一個(gè)公開的 bug 看,你會(huì)發(fā)現(xiàn)這個(gè) bug 可能已經(jīng)打上了補(bǔ)丁,還有一長(zhǎng)串的討論,甚至核心的開發(fā)人員也說(shuō)補(bǔ)丁可以合并進(jìn)主干了,但是其實(shí) bug 并沒有修復(fù)。難道這是一個(gè)不靠譜的核心開發(fā)者或者是老好人?那還需要這些補(bǔ)丁做些什么?

他說(shuō),這些問(wèn)題同樣也在一些其他大的工程上存在。諸多 bug 沒有通過(guò)正確的方式關(guān)閉,導(dǎo)致了對(duì)文檔的誤讀,堆積了更多的 bug。而這些 bug 由于硬件或者開發(fā)環(huán)境的不同很難復(fù)現(xiàn)。但是這種 bug 沒有補(bǔ)丁。

這里也有一些功能建議的 bug,并附上了補(bǔ)丁,但我們通常會(huì)猶豫是否接受這些更改,因?yàn)檫@些關(guān)注點(diǎn)沒有什么用處。比如不具有同類語(yǔ)言的一些功能,或者向后兼容。不打破所有的時(shí)間很難接受這些補(bǔ)丁。

另外,核心開發(fā)人員自己都有大量的工作,沒有人來(lái)分擔(dān)合并補(bǔ)丁到 Python 核心代碼的工作。所有如果沒有核心團(tuán)隊(duì)關(guān)注的補(bǔ)丁和功能,一般不會(huì)插入到合并流程。

在一個(gè)公司里,這些東西是有些不同。人們付款給人做一些枯燥乏味的工作,但要是開源的話你必須自愿完成那些不愉快的任務(wù)。一些核心開發(fā)者已經(jīng)做這些 枯燥乏味的工作太久了,他們希望從這些工作中脫身。一些開放的 bug 在 bug 追蹤器上有很長(zhǎng)的歷史,這是有很多原因的。

最終,總是有很多統(tǒng)計(jì)效應(yīng)被忽略。如果你隨機(jī)注意到一個(gè) bug,包括已關(guān)閉的 bug,你可能會(huì)得到一個(gè)已關(guān)閉的 bug。許多 bug 很快就被關(guān)閉,并且 bug 被簡(jiǎn)單地修復(fù),類似于那種快速修復(fù)。但是,開放的 bug 的平均壽命是隨著項(xiàng)目年齡的增長(zhǎng)而線性增長(zhǎng)的,他說(shuō)。

GIL

有些聽眾問(wèn)到global interpreter lock(GIL),想要更深入了解這個(gè)問(wèn)題,以及這個(gè)問(wèn)題是如何解決的。Van Rossum笑著反問(wèn)道:“你有多少時(shí)間?”他簡(jiǎn)要的講述了GIL產(chǎn)生的歷史。在Python誕生后,多核計(jì)算機(jī)出現(xiàn)了。當(dāng)線程運(yùn)行在不同的內(nèi)核中時(shí),兩 個(gè)或更多的處理器要更新同一個(gè)對(duì)象便產(chǎn)生了競(jìng)爭(zhēng)機(jī)制,特別在Python垃圾回收處理機(jī)制中。

一個(gè)合理的解決方案就是給每個(gè)對(duì)象上鎖,這樣能保護(hù)數(shù)據(jù)不被多路存取破壞。但結(jié)果導(dǎo)致當(dāng)沒有鎖的競(jìng)爭(zhēng)時(shí),上鎖和解鎖操作代價(jià)高昂。一些實(shí)驗(yàn)表明,不需要上鎖的單線程程序性能會(huì)因此降低2倍。這意味著只有在使用三個(gè)或多個(gè)線程或內(nèi)核的程序會(huì)從中獲益。

因此,GIL 誕生了(盡管這個(gè)名字在它被添加到解釋器后很久才出現(xiàn))。它是一個(gè)立刻有效鎖定所有對(duì)象的單一鎖,這樣所有對(duì)象訪問(wèn)將排序進(jìn)行。目前的問(wèn)題是,10年或 15年以后,多核處理器無(wú)處不在,人們想要不必進(jìn)行多重處理就可利用它們(例如,使用獨(dú)立的進(jìn)程而不是線程通信)

他說(shuō),如果你當(dāng)今想要設(shè)計(jì)一種新語(yǔ)言,要讓它沒有易變的對(duì)象,或者有限的易變性。然而,聽眾中傳來(lái)“這就不是 Python 了”。Van Rossum 贊成的說(shuō):“你說(shuō)出了我要說(shuō)的話”。GIL 周圍有很多開發(fā)者不斷的努力,包括 PyPy 軟件事務(wù)內(nèi)存(STM),以及 PyParallel。其他開發(fā)者也撞破了腦袋在想解決辦法。如果有人知道有什么辦法能夠移除 GIL 且讓語(yǔ)言保持 Python 特性,Van 和其他人將很樂(lè)意聽到。

PyPy

他被問(wèn)到 PyPy,他是否使用它,是否有一天它會(huì)成為默認(rèn)的解釋器。他不使用 PyPy,但他下載了一下,玩了幾分鐘,他喜歡他看到的東西。他在兩種模式下使用 Python,或?qū)懶┬〉哪_本完成一些事情,他只使用一個(gè)已經(jīng)在他系統(tǒng)已經(jīng)內(nèi)置安裝的解釋器,或者做為一個(gè) Dropbox 的工程師將 Python 布署到集群。

Dropbox 集群運(yùn)行修改過(guò)的 Python 2.7,他說(shuō),這引起觀眾的笑聲。“我說(shuō)過(guò),這不是秘密”,他說(shuō)。因?yàn)?PyPy 比較快,Dropbox 的一些部分在使用 PyPy。但公司擔(dān)心一些小的不兼容會(huì)導(dǎo)致一些不容易追蹤的 bug。“我們已經(jīng)遇到了太多這樣的問(wèn)題。”

PyPy 證實(shí)了你可以比 CPython 更快的執(zhí)行 Python。它同時(shí)提供了一個(gè)測(cè)試平臺(tái),在這個(gè)平臺(tái)上可以測(cè)試像 STM 這樣有意思的創(chuàng)意。但是保守原則讓人們只在需要加快速度時(shí)使用 PyPy。這樣做帶來(lái)的問(wèn)題時(shí),當(dāng)你發(fā)現(xiàn)時(shí),你已經(jīng)在很多機(jī)器上部署了以至于很難遷移。因此,這很像遷移到 Python 3 上遇到的問(wèn)題。

Dropbox 有很多對(duì)第三方的依賴,有些甚至不能在它的源代碼上重構(gòu)。這對(duì)那些在生產(chǎn)環(huán)境中使用了成千上萬(wàn)行 Python 代碼的公司也是同樣的,他發(fā)現(xiàn) Google 也是這樣,要遷移很困難。

總之,PyPy 是一個(gè)“非??岬捻?xiàng)目”。但是它有很多復(fù)選框,需要變得更易檢查。他半開玩笑的建議說(shuō),或許 PyPy 需要從 DjangoGirls 中租用 Ola and Ola 來(lái)創(chuàng)建一個(gè)更大的項(xiàng)目社區(qū)。

最喜歡的

[[146273]]

接下來(lái)的 5 個(gè)小問(wèn)題是他喜歡的東西。喜歡的 web 框架?他說(shuō)他在任何一個(gè)框架中只寫一個(gè) web app,他***嘗試的是 Flask。 喜歡的測(cè)試庫(kù)?他主要使用標(biāo)準(zhǔn)庫(kù)中的 unittest 和 mock。編輯器?他現(xiàn)在使用 Emacs,但是最開始使用 vi(兩種都得到不同聽眾的喝彩)。他仍然偶爾使用 vi(或 Vim),但是使用 5 分鐘后,他就要花上 15 分鐘重新適應(yīng) Emacs。

除 Python 外最喜歡的語(yǔ)言是什么?他過(guò)去常常說(shuō)是 C 語(yǔ)言,但是“有點(diǎn)無(wú)聊”。他信賴的人告訴他現(xiàn)代 C++ 是個(gè)優(yōu)秀的語(yǔ)言。他喜歡 Go,但是沒有用它編寫任何有意義的東西。當(dāng)他與設(shè)計(jì)師交談后,他喜歡從 Python 偷了一堆東西的 Swift 的外表。從語(yǔ)言中抄襲你喜歡的不好的東西并以一堆不合邏輯的特性而告終很容易,但是 Swift 的設(shè)計(jì)者看起來(lái)沒有這樣做。***,喜歡的異常?在更多的歡呼和笑聲中,他輕輕地笑著回答是鍵盤中斷。

他所討厭的

***的問(wèn)題是他討厭 Python 哪些方面。他馬上回答:“一切與打包發(fā)布有關(guān)的事情”。總是有與版本交叉和依賴有關(guān)的問(wèn)題引起“永無(wú)止境的混亂”。他害怕同事跑過(guò)來(lái)問(wèn)他“一個(gè)簡(jiǎn)單的 Python 問(wèn)題”,有一半是某種輸入路徑問(wèn)題而且沒有什么簡(jiǎn)單的解決辦法。

然后,他的時(shí)間到了。EuroPython 會(huì)議主辦方為每個(gè)主講嘉賓提供了一份禮物:一頂巴斯克貝雷帽和一個(gè)大手帕。它們出現(xiàn)在 Van Rossum 演講的***(見右上圖)。

責(zé)任編輯:王雪燕 來(lái)源: oschina
相關(guān)推薦

2015-08-20 10:05:15

Python

2019-07-24 13:42:34

Python編程語(yǔ)言代碼

2019-10-31 15:13:11

Python

2021-06-07 11:40:26

Python命令代碼

2013-09-03 10:20:10

SlashdotPythonPython之父采訪

2018-10-23 16:35:19

華為云

2021-05-26 16:10:00

Python 開發(fā)編程語(yǔ)言

2014-02-01 21:25:08

Python數(shù)組

2012-12-10 10:16:07

2020-11-13 14:52:34

Python 微軟編程語(yǔ)言

2012-06-12 16:55:38

2021-05-17 09:57:42

Python 開發(fā)編程語(yǔ)言

2021-06-01 08:55:09

Python編程語(yǔ)言機(jī)器學(xué)習(xí)

2014-11-13 14:28:15

Python

2020-09-21 06:10:47

Python lambda匿名函數(shù)

2024-04-29 07:00:00

Python團(tuán)隊(duì)谷歌替代職位

2022-02-22 14:36:52

編程Swift程序員

2020-11-27 09:57:11

Python代碼PyPy

2010-11-09 09:43:21

YUI3jQuery之父

2020-11-14 16:05:44

Python微軟
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)