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