成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Slashdot對(duì)Python之父的采訪

開(kāi)發(fā) 后端 前端
Python之父Guido van Rossum在2013年1月正式從Google離職后并正式加入 Dropbox。2013年8月19日,Slashdot 網(wǎng)站發(fā)起了一個(gè)對(duì) Guido 的訪談主題帖,網(wǎng)友在評(píng)論中提問(wèn)。8月25日,Slashdot 在另外一個(gè)帖子中匯總了“面向?qū)ο?、函?shù)式編程、PyPy、Python 3”等問(wèn)題和回復(fù)。

導(dǎo)讀:Python之父Guido van Rossum在2013年1月正式從Google離職后并正式加入 Dropbox。2013年8月19日,Slashdot 網(wǎng)站發(fā)起了一個(gè)對(duì) Guido 的訪談主題帖,網(wǎng)友在評(píng)論中提問(wèn)。8月25日,Slashdot 在另外一個(gè)帖子中匯總了“面向?qū)ο蟆⒑瘮?shù)式編程、PyPy、Python 3”等問(wèn)題和回復(fù)。該匯總帖現(xiàn)已由 賤圣OMG 翻譯成中文。

[[84687]] 

從Google到Dropbox

nurhussein 提問(wèn):“Hi,是什么促使離開(kāi)Google去Dropbox的?你之前在Google主要做什么?以后在Dropbox會(huì)做什么?”

Guido:在Google呆了7年之后,我已經(jīng)準(zhǔn)備好生活里有一些變化,而這時(shí)Dropbox的工作機(jī)會(huì)正好契合了我的想法。以較高的層次來(lái)看,我的工作仍然沒(méi)有什么變化:

  • 花費(fèi)一半時(shí)間來(lái)做作為Python的BDFL需要做的事情
  • 在公司里作為一名普通的工程師(不是一名經(jīng)理或者團(tuán)隊(duì)***)
  • 做什么代碼審查,架構(gòu)和設(shè)計(jì)工作
  • 處理很多email
  • 用Python來(lái)完成我的很多工作

一些細(xì)節(jié)當(dāng)然是不同的。我在Google只做了兩件事:最開(kāi)始的兩年我從事在線代碼審查工具M(jìn)ondrian的開(kāi)發(fā)。這個(gè)工具從來(lái)沒(méi)有被開(kāi)源,但是它促使了 Rietveld 的產(chǎn)生,它被Python,Go和Chromium 社區(qū)使用。在我加入Google App Engine后,我做了很多不同的事情,大部分是Python方面的事情。我Python的***一個(gè)大項(xiàng)目是一個(gè)新的Python數(shù)據(jù)庫(kù)API,NDB。

我已經(jīng)來(lái)Dropbox7個(gè)月了,我在這主要的工作是設(shè)計(jì)Dropbox數(shù)據(jù)存儲(chǔ)API。用到這個(gè)詞來(lái)描述這個(gè)數(shù)據(jù)存儲(chǔ)有點(diǎn)諷刺,但是不是我的錯(cuò)——Dropbox數(shù)據(jù)存儲(chǔ)和Google App Engine數(shù)據(jù)存儲(chǔ)有一點(diǎn)重疊。

更諷刺的是,即使我做了如此多的設(shè)計(jì)工作,用Python完成了兩個(gè)原型,但是我們上個(gè)月發(fā)布的SDK里面只支持Java,Object-C和Javascritp。不過(guò)我正在完善它,這次采訪拖累了我的進(jìn)度。

為什么Python避開(kāi)了一些常見(jiàn)的面向?qū)ο箫L(fēng)格

由 i_ate_god 提問(wèn):“接口,虛類,私有成員,等等…為什么Python沒(méi)有這些特性”

Guido:我能想到的有兩個(gè)原因:你并不是真的需要它們,并且如果沒(méi)有編譯時(shí)的類型檢查會(huì)很難實(shí)現(xiàn)。 Python是作為一個(gè)臭鼬工廠的項(xiàng)目開(kāi)始做的(沒(méi)有被管理層支持和鼓勵(lì)但也沒(méi)有阻止),并且我希望能夠快點(diǎn)出一些成果。這指引我移除了一些不是真正需要或者繼續(xù)的特性;這也讓我進(jìn)行運(yùn)行時(shí)的所有類型檢查,它限制了Python能夠支持的特性。我也不是面向?qū)ο蟮闹覍?shí)信徒——我只是想要一個(gè)簡(jiǎn)單的語(yǔ)言,它因?yàn)橐馔饣蚨嗷蛏俚刈兊糜幸恍┟嫦驅(qū)ο蟆?/p>

在現(xiàn)代的Python里,針對(duì)這些特性有一些粗糙的等價(jià)語(yǔ)法,但是它們并不是一直很好的工作,或者它們導(dǎo)致了一大堆的上面的執(zhí)行,所以它們一般是被避免的,但是它們也有其用處。

函數(shù)式語(yǔ)言

由 ebno-10db 提問(wèn):“有些人提出,Python是,至少一部分,是一種函數(shù)式語(yǔ)言。你不同意,我也是。只是有一些map和filter類型函數(shù)并不會(huì)讓它成為函數(shù)式語(yǔ)言。以我的理解,這些函數(shù)是被一些思念list的人加到庫(kù)里的,并且你已經(jīng)嘗試了幾次去掉它們。總的來(lái)說(shuō),你不是一個(gè)函數(shù)式編程的粉絲,至少?gòu)?Python上來(lái)看不是。

問(wèn)題:你是否感覺(jué)函數(shù)式編程方法總的來(lái)說(shuō)不是特別有用,或者它不是十分適合Python?很希望聽(tīng)到你不同方面的原因。”

Guido:我并不是把一個(gè)想法做到***的信徒,我試著在設(shè)計(jì)選擇的時(shí)候走實(shí)用主義的路子(但不是“太”實(shí)用主義)。我會(huì)衡量現(xiàn)實(shí)代碼的可讀性和可用性。有些地方 map( ) 和 filter( ) 是適合的,但是另一方面Python有列表推導(dǎo)。我不再討厭 reduce( ),因?yàn)槲以?jīng)只用 (a) 來(lái)實(shí)現(xiàn)sum( ),或者用(b) 可讀性不好。所以我們添加了內(nèi)建的sum( ),將reduce( )移除出內(nèi)建函數(shù),移到了一個(gè)工具函數(shù)里。

我對(duì)函數(shù)式語(yǔ)言的看法,就是它們都用非常強(qiáng)大的編譯器,比如Haskell。對(duì)這樣的一個(gè)編譯器,函數(shù)式泛型是非常有用的,因?yàn)樗尨罅康霓D(zhuǎn)變成為可能,包括并行化。但是Python解釋器并不清楚你的代碼的含義,這也是很有用的。所以,我不認(rèn)為把一下函數(shù)式的思想加入Python是合理的,因?yàn)檫@些在函數(shù)式語(yǔ)言里是很有用的,但是不適合Python,并且這會(huì)讓代碼對(duì)不使用函數(shù)式編程的人非常不具有可讀性(這里指的是大部分程序員)。

我也不認(rèn)為現(xiàn)在函數(shù)式語(yǔ)言的成果已經(jīng)讓它準(zhǔn)備好成為主流。不可否認(rèn)的是,我對(duì)于Haskell一些相關(guān)的領(lǐng)域并不是很了解,但是任何沒(méi)有 Haskell流行的語(yǔ)言都有它的實(shí)際用處,我也沒(méi)有聽(tīng)過(guò)有別的函數(shù)式語(yǔ)言比Haskell更流行。對(duì)于Haskell,我認(rèn)為讓很多編譯器技術(shù)得到證明是非常棒的,但是它的“純凈”會(huì)是它被人接受的***障礙。它的單一讓它對(duì)于大部分人是不適合的。

多行l(wèi)ambda表達(dá)式

由 NeverWorker1 提問(wèn):“對(duì)于Python,有一個(gè)最常見(jiàn)的抱怨就是它的對(duì)于lambda表達(dá)式的限制,也就是說(shuō)一行里不能賦值。很明顯,Python對(duì)空格的處理是導(dǎo)致這樣的主要原因。我已經(jīng)花了一些事件思考實(shí)現(xiàn)多行l(wèi)ambda表達(dá)式的可能性,然后我能想出的***方法是硬塞進(jìn)一些不用的符號(hào),比如C語(yǔ)言風(fēng)格的大括號(hào),這樣最多有點(diǎn)亂。有沒(méi)有更好的方法,你覺(jué)得這個(gè)功能會(huì)被添加上嗎?”

Guido:真的?我基本上從來(lái)沒(méi)聽(tīng)到過(guò)那些抱怨,除了在Slashdot采訪里提問(wèn)題的人。

這確實(shí)是更好的方法,這里使用def關(guān)鍵字在本地作用域定義一個(gè)正規(guī)的函數(shù)。這個(gè)被定義的函數(shù)對(duì)象變成了一個(gè)本地變量,而這根使用lambda是相同的語(yǔ)義,除非這里用到了一個(gè)本地變量,并且這里沒(méi)有任何語(yǔ)法的限制。例如,以下兩種寫法的語(yǔ)言是相同的:

  1. def make_adder(n):  
  2. __def adder(x):  
  3. ____return x + n  
  4. __return adder 

然后這是使用lambda的表達(dá)式:

  1. def make_adder(n):  
  2. __return lambda x: x + n 

Andrew Koenig 有一次向我指出了在一種場(chǎng)景下,lambda是非常適合的,那就是你有你個(gè)很長(zhǎng)的list或者dict包括很多l(xiāng)ambda表達(dá)式,因此如果你想不用 lambda實(shí)現(xiàn)的話,那么定義一大堆函數(shù),給它們命名,然后用list或dict里的名稱來(lái)引用它們就會(huì)讓你受不了。但是,在那種情況下,lambda 表達(dá)式是足夠簡(jiǎn)單的,如果你有一些異常,在list或dict之前使用def才是一種好的妥協(xié)。

PyPy

由Btrot69提問(wèn):“你覺(jué)得PyPy代表未來(lái)的發(fā)展方向嗎?你是否對(duì)此表示懷疑?如果是,為什么?”

Guido:我對(duì)此仍然持懷疑態(tài)度,有兩個(gè)原因:(1)它們還不支持Python3。(2)還有很多擴(kuò)展模塊不能很好的支持。但是我希望它們能修復(fù)那些問(wèn)題。作為PyPy項(xiàng)目的競(jìng)爭(zhēng)者,Jython和IronPython會(huì)讓CPython項(xiàng)目保持其發(fā)展勢(shì)頭。

瀏覽器運(yùn)行Python?

多年以來(lái),曾經(jīng)嘗試幾次創(chuàng)建一個(gè)沙箱版本的Python,使之能夠運(yùn)行在瀏覽器上。主要是因?yàn)镴avascript的問(wèn)題。而現(xiàn)在針對(duì)Javascript做的工作,我們有了一個(gè)很好的替代品CoffeeScript——那現(xiàn)在是不是已經(jīng)是時(shí)候來(lái)實(shí)現(xiàn)讓Python運(yùn)行在瀏覽器里的功能了?

Guido:我在1995年就放棄了這件事。并且請(qǐng)不要把Python編譯成Javascript。它們的語(yǔ)義非常不同,結(jié)果是你用Javascript寫了一個(gè)Python運(yùn)行時(shí),它會(huì)讓運(yùn)行變得太慢。

Python3

由 MetalliQaZ  提問(wèn):“你對(duì)目前向Python 3的遷移的遷移感覺(jué)怎么樣?從一個(gè)用戶的角度來(lái)看,一些流行的庫(kù)的轉(zhuǎn)變還差得很遠(yuǎn),而這阻礙著這種過(guò)渡。在我的專業(yè)所及的地方,基本上我用的所有系統(tǒng)都沒(méi)有安裝3.x解釋器。事實(shí)上,2.7也很少,我想聽(tīng)聽(tīng)你的看法。”

Guido:很好奇你在哪工作。我同意向Python3的遷移會(huì)持續(xù)很長(zhǎng)時(shí)間,但是如果你的系統(tǒng)還沒(méi)用上2.7 版本的話,那就真是有點(diǎn)古老了!在我離開(kāi)Google的時(shí)候,所有向Python2.7過(guò)渡的工作全部完成了(在前幾年已經(jīng)成功的從2.4遷移到 2.6),在Dropbox這里,客戶端和服務(wù)器端都是用的2.7。這兩個(gè)公司都在考慮Python3的問(wèn)題了。

再來(lái)說(shuō)向Python3的遷移,我實(shí)際上是相當(dāng)樂(lè)觀的。很多流行的庫(kù)都開(kāi)始著手做這件事。它確實(shí)會(huì)持續(xù)很長(zhǎng)時(shí)間,但也有很多進(jìn)展,過(guò)幾年之后,我希望所有的代碼都能遷移到Python3上來(lái)。完全根除Python2的使用可能會(huì)花更多的時(shí)間,但是呢,Windows XP不也是沒(méi)完全死掉嗎。

原文鏈接: Slashdot   翻譯: 伯樂(lè)在線 - 伯樂(lè)在線讀者

譯文鏈接: http://blog.jobbole.com/47081/

責(zé)任編輯:林師授 來(lái)源: 伯樂(lè)在線
相關(guān)推薦

2018-02-09 15:12:20

2013-08-08 14:13:18

程序員

2012-09-18 01:38:25

Stiff程序員采訪

2015-08-21 10:14:17

Python 之父Python

2015-08-20 10:05:15

Python

2012-06-19 14:08:24

LinuxLinus Torva

2023-08-23 19:01:09

PythonExcel語(yǔ)言

2019-10-31 15:13:11

Python

2011-06-22 13:07:37

MVC

2021-05-26 16:10:00

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

2014-11-13 14:28:15

Python

2019-07-24 13:42:34

Python編程語(yǔ)言代碼

2019-01-03 09:32:15

深度學(xué)習(xí)數(shù)據(jù)泄漏人工智能

2021-06-07 11:40:26

Python命令代碼

2021-06-01 08:55:09

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

2012-12-10 10:16:07

2020-11-13 14:52:34

Python 微軟編程語(yǔ)言

2009-04-21 09:39:38

SunOracle甲骨文

2009-09-18 09:36:56

2022-02-22 14:36:52

編程Swift程序員
點(diǎn)贊
收藏

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

主站蜘蛛池模板: 99热精品6| 久久综合激情 | 午夜精品福利视频 | 精品久久国产视频 | 亚洲综合视频 | 日韩毛片| 国产一级片免费看 | 色资源在线视频 | 日本精品一区二区 | 91福利网址 | 欧美精品综合在线 | 日本在线看 | 欧美一级二级在线观看 | 日本黄色片免费在线观看 | 亚洲一二视频 | 国产精品一区二区在线 | 人人干人人玩 | 一区二区在线不卡 | 精品国产一区二区三区性色 | 看黄在线 | 中文字幕在线视频一区二区三区 | 国内精品久久久久 | 成人免费视频观看 | 成人亚洲精品 | 欧美 日韩 国产 成人 在线 91 | 岛国一区 | 亚洲综合国产 | 国产精品成人国产乱一区 | 国产高清在线精品 | 久久久美女 | 国产精品久久久久久久久久久久 | 久久精品国产a三级三级三级 | 久久久av| 99亚洲精品视频 | 五月天婷婷综合 | 中文字幕不卡在线观看 | 欧美日韩国产一区二区三区 | 天天看逼| 亚洲精品久久久久久久久久久 | 亚洲性爰| 不卡一区二区三区四区 |