Python語言在開發(fā)社區(qū)中的熱議簡介
Python經(jīng)過長時間的發(fā)展,很多用戶都很了解Python的實(shí)際應(yīng)用操作,這里我發(fā)表一下個人理解,和大家討論討論。希望大家通過瀏覽以下的文章會有所收獲,以下Python語言的應(yīng)用及開發(fā)社區(qū)熱議的介紹。
Collin Winter是Python社區(qū)一位頗具影響力的開發(fā)者,他曾是CPython項(xiàng)目的核心開發(fā)者之一、也曾是Unladen Swallow(見文末注釋)的核心開發(fā)者,參與了很多Python項(xiàng)目的開發(fā)。近來傳聞Google將在其新項(xiàng)目中限制Python的使用,為此有開發(fā) 者(以K表示)在Google 論壇中公開詢問了Collin Winter,Collin Winter就很多尖銳的問題做了解答。這篇帖子同時也吸引了很多高質(zhì)量的跟帖。
Google將在其新項(xiàng)目中限制Python的使用,無疑這將大大減少Python代碼和Python得到的支持。是否確有其事還是只是謠傳?
Collin Winter:的確,Google將限制Python語言的應(yīng)用因?yàn)椋篜ython不如Java和C++快,線程占有、內(nèi)存使用都很高在使用Python開發(fā) 新系統(tǒng)的時候,我們深知如果負(fù)載增加了10倍或者100倍系統(tǒng)會怎樣,開發(fā)出的服務(wù)會有多糟糕我想Python已經(jīng)發(fā)展到了一個狹縫中,因此在選擇時我們 應(yīng)當(dāng)權(quán)衡其優(yōu)點(diǎn)和缺點(diǎn),也許開發(fā)人員使用Python會很有效率,但隨著系統(tǒng)的增大卻會遇到許多平臺級的性能限制。#t#
Unladen Swallow會改變這一切么?你的期望是什么呢?
Collin Winter:Unladen Swallow旨在盡可能地將Python用在更多它現(xiàn)在尚未涉足的地方,而且Unladen Swallow也并非包治百病的靈丹妙藥。如果沒有人給Python注入投資,Python將仍舊比C和Java慢、占用更多的內(nèi)存和線程。我希望開發(fā)者 對Python的關(guān)注能夠形成一個良性循環(huán):越多的開發(fā)者感興趣、越多的公司干興趣,就有越多的投資注入,從而開發(fā)出更多的Python資源。
我認(rèn)為Python及其他動態(tài)語言***的一點(diǎn)就是:許多開發(fā)者工作于不同的子系統(tǒng),但都為同一個代碼基工作。而C或者C++語言則不同,參與的開發(fā) 者越多,代碼基就越支離破碎。從這個角度來說動態(tài)語言更加易于sandbox操作。這種敏捷和靈活是Python語言的重要特性。
Python的確是比C和Java慢,但它比較起v8 JavaScript引擎如何,是否會是后者的競爭對手呢?
Collin Winter:我認(rèn)為像CPython之類的應(yīng)用不可能像V8或者SquirrelFish Extreme那樣快,畢竟后兩者是專為速度而生的。我們也曾遇到一些高速性能方面的優(yōu)化卻很難配置到CPython中,因而只能放棄。作為開源項(xiàng)目的志 愿者,CPython跟V8的側(cè)重點(diǎn)不一樣:CPython強(qiáng)調(diào)的是簡單,也即簡單、稍慢的內(nèi)核便于人們在業(yè)余時間維護(hù)。
對于Python的另一個項(xiàng)目PyPy我倒是有很高的期望,希望它能擺脫C-level向后兼容的束縛而提供長久的性能解決方案。但這個愿望可能需要十年來實(shí)現(xiàn)。
Python為什么考慮的是人們在業(yè)余時間的維護(hù)?
Collin Winter:CPython開發(fā)人員很少是有報酬的,幾乎全部是志愿者,而Ruby開發(fā)者卻能夠從EngineYard等贊助商那里獲得基金,因而當(dāng)他 們意識到MRI伺服web應(yīng)用很慢時,他們可以更好地開發(fā)他們的VM。這也決定了我們開發(fā)的東西更加照顧大多數(shù)人的需求。
一位名叫Leon Sit的開發(fā)者在這里補(bǔ)充道:我認(rèn)為當(dāng)系統(tǒng)增大時,CPython除了在數(shù)字碼方面表現(xiàn)不錯之外其他的都差強(qiáng)人意。而且,CPython依賴C編輯器而 Windows系統(tǒng)根本沒有C編輯器。為了提高CPython的速度,就需要添加打印信息而它們涉及的語法卻非Python語言的標(biāo)準(zhǔn)語法。