詳細說明Python社區(qū)具體內(nèi)容
Python社區(qū)影響力,他曾是CPython項目的核心開發(fā)者之一、也曾是Unladen Swallow(見文末注釋)的核心開發(fā)者,參與了很多Python項目的開發(fā)。希望大家進行學習介紹。
近來傳聞Google將在其新項目中限制Python的使用,為此有開發(fā) 者(以K表示)在Google 論壇中公開詢問了Collin Winter,Collin Winter就很多尖銳的問題做了解答。這篇帖子同時也吸引了很多高質(zhì)量的跟帖。
Collin Winter:的確,Google將限制Python的應用因為:Python不如Java和C++快,線程占有、內(nèi)存使用都很高在使用Python開發(fā)新系統(tǒng)的時候。我們深知如果負載增加了10倍或者100倍系統(tǒng)會怎樣,開發(fā)出的服務會有多糟糕我想Python已經(jīng)發(fā)展到了一個狹縫中。
因此在選擇時我們 應當權(quán)衡其優(yōu)點和缺點,也許開發(fā)人員使用Python會很有效率,但隨著系統(tǒng)的增大卻會遇到許多平臺級的性能限制。Collin Winter:Unladen Swallow旨在盡可能地將Python用在更多它現(xiàn)在尚未涉足的地方,而且Unladen Swallow也并非包治百病的靈丹妙藥。
如果沒有人給Python注入投資,Python將仍舊比C和Java慢、占用更多的內(nèi)存和線程。我希望開發(fā)者 對Python的關注能夠形成一個良性循環(huán)。越多的開發(fā)者感興趣、越多的公司干興趣,就有越多的投資注入,從而開發(fā)出更多的Python資源。我認為Python及其他動態(tài)語言***的一點就是。
許多開發(fā)者工作于不同的子系統(tǒng),但都為同一個代碼基工作。而C或者C++語言則不同,參與的開發(fā) 者越多,代碼基就越支離破碎。從這個角度來說動態(tài)語言更加易于sandbox操作。這種敏捷和靈活是Python語言的重要特性。
Collin Winter:我認為像CPython之類的應用不可能像V8或者SquirrelFish Extreme那樣快,畢竟后兩者是專為速度而生的。我們也曾遇到一些高速性能方面的優(yōu)化卻很難配置到CPython中,因而只能放棄。
作為開源項目的志 愿者,CPython跟V8的側(cè)重點不一樣:CPython強調(diào)的是簡單,也即簡單、稍慢的內(nèi)核便于人們在業(yè)余時間維護。對于Python的另一個項目PyPy我倒是有很高的期望,希望它能擺脫C-level向后兼容的束縛而提供長久的性能解決方案。但這個愿望可能需要十年來實現(xiàn)。
Collin Winter:Python社區(qū)開發(fā)人員很少是有報酬的,幾乎全部是志愿者,而Ruby開發(fā)者卻能夠從EngineYard等贊助商那里獲得基金。因而當他們意識到MRI伺服web應用很慢時,他們可以更好地開發(fā)他們的VM。這也決定了我們開發(fā)的東西更加照顧大多數(shù)人的需求。
一位名叫Leon Sit的開發(fā)者在這里補充道:我認為當系統(tǒng)增大時,CPython除了在數(shù)字碼方面表現(xiàn)不錯之外其他的都差強人意。而且,CPython依賴C編輯器而 Windows系統(tǒng)根本沒有C編輯器。為了提高CPython的速度,就需要添加打印信息而它們涉及的語法卻非Python的標準語法。
Collin Winter: Unladen Swallow的另一個主要目標是維護與C擴展模塊的兼容性,后者被Google廣泛使用。使用Jython需要將基礎架構(gòu)從SWIG移植到JNI,這是 一項很痛苦的工作,而且?guī)缀鯐o可避免地帶來非常繁瑣的bug。這是我們?yōu)槭裁礇]有選擇Jython作為baseline的首要原因。
Jython是一部分全職的有薪開發(fā)者。但到目前為止,IronPython和Jython不得不將大部分的開發(fā)精力放在與CPython的兼容 上,只有很少的精力放在性能優(yōu)化方面。也由此可見支持Python 3多么影響Jython,IronPython, PyPy等項目。
網(wǎng)友Tom Machinski認為:Python并非與低階虛擬機(LLVM)相兼容。Unladen Swallow項目組提高五倍性能的承諾并沒有真正意義上的實現(xiàn)。如果CPU耗用至少90%的執(zhí)行時間用以運行一小段循環(huán),CPython無疑可以將這段 程序提高100倍甚至更多。但如果是大的應用呢?而且不要忘了,這種加速往往只是針對程序的某個點,也即熱點優(yōu)化(hot spot optimization)。
不要誤會我的意思,我當然對Unladen Swallow項目很感興趣而且希望它能夠真正地實現(xiàn)目標。但我也絕對認同Collin的意思:即便Unladen Swallow項目所有的目標都能真正實現(xiàn),Python社區(qū)也不是Java或者C++的對手。
【編輯推薦】