從某些方面看,Python的崛起就像那個英國喜劇團體(Python因這個喜劇團體而得名)一樣不尋常。在Python自己的領域,這門編程語言也變得越來越出名和越來越有影響力。
Python原先是荷蘭程序員Guido van Rossum的一個個人項目。20世紀80年代末,van Rossum在荷蘭國家數(shù)學和計算機科學研究中心的CWI部門開發(fā)分布式系統(tǒng)。由于對已有的編程語言感到十分失望,他決定開發(fā)一門新的語言——一門既易于使用功能又強大的語言。
Python之父Guido van Rossum
對于外行來說,自己開發(fā)一門編程語言就像是“造飛機”一樣,但當時30多歲的van Rossum在某些方面已經(jīng)很有造詣。他花了三年時間與CWI的一個團隊合作,一起開發(fā)了ABC(一種解釋型編程語言),他知道開發(fā)一個可以執(zhí)行指令的解釋器需要些什么,以及一門新的編程語言需要哪些語法構(gòu)建塊。
Python在20世紀90年代初期到中期開始受到關(guān)注,Python的時代到來了,這讓van Rossum感到震驚。
van Rossum相信,被Python吸引過來的開發(fā)者,他們轉(zhuǎn)向Python的原因與他當初創(chuàng)建Python的原因是一樣的。他們需要一門高級的腳本語言,能夠在易用性和功能之間取得平衡。他們希望能夠結(jié)束在C語言中手動管理內(nèi)存、在開始新項目時需要為重復任務重新實現(xiàn)代碼的日子。
Warsaw說,Python在可用性和功能之間取得了平衡——在20世紀90年代早期,任何一門主流編程語言都沒能提供這種平衡?!蔽覍戇^很多Perl、Tcl和C代碼,感覺它們一點都不好玩。Python一出現(xiàn),我就想,‘哇,它讓編程變得更有趣了’”。
不管是過去還是現(xiàn)在,Python提供的都是清晰而明確的語法,它使用縮進將代碼分組成塊,讓開發(fā)人員更容易閱讀和理解代碼。
雖然Python繼續(xù)以驚人的速度吸引新用戶,但社區(qū)內(nèi)的一些人也看到了未來要面臨的挑戰(zhàn)。如果Python想要保持常青,就要不斷進化。
在今年的Python語言峰會上,BeeWare聯(lián)合創(chuàng)始人Russell Keith-Magee說,如果對移動和Web平臺的支持得不到改善,Python將面臨“生存危機”。
他說:“手機和平板電腦對市場的滲透程度是臺式機和筆記本電腦從未達到過的,但整個社區(qū)都沒有一個關(guān)于如何在這些設備上使用Python的案例。那么,當有一天筆記本電腦逐漸成為小眾設備時,Python又將面臨怎樣的窘境?”
他指出了Python的一些問題,比如,Python還不支持在非x86硬件平臺上編譯代碼,Python的測試套件很容易在移動和Web平臺上崩潰,Python應用程序的體積太大,在Android、Windows和Web平臺上開發(fā)GUI代碼時需要使用asyncio庫,而這需要做額外的,標準庫中的很多模塊與CPython之外的解釋器不兼容。
Warsaw說,Keith-Magee提出了很多很好的觀點,并認為Python需要與新的平臺——手機、平板電腦以及Web技術(shù)(如WebAssembly)保持接軌,這點很重要。
Warsaw說,“目前Python在這方面并沒有出彩的表現(xiàn)”,他希望iPhone或Android手機也能下載到使用Python開發(fā)的應用程序,而用戶甚至都不知道“原來它們是用Python開發(fā)的”。
現(xiàn)代處理器芯片的核心數(shù)量在不斷增長(英特爾最新的服務器處理器核數(shù)已經(jīng)達到了48個),Warsaw也希望Python能夠更好地讓任務運行在多個處理器核心上。
他對Eric Snow在Python子解釋器方面所做的十分感興趣。他說:“我希望看到有更多的處理任務能夠利用多核處理器”。
Snow正在參與一個長期項目,這個項目旨在讓Python更容易地在多個處理器核心之間分配任務。他使用了現(xiàn)有Python子解析器的修訂版本,并改變了子解析器與全局解釋器鎖(GIL)之間的交互方式。
Warsaw說:“這些功能不會出現(xiàn)在Python 3.8中,但或許會在3.9中加入。我覺得我們將在未來兩到兩年半的時間內(nèi)看到這些功能。我真的很高興Eric能夠繼續(xù)做下去,這是一項非常重要的”。
他說,之前有過一些失敗的項目(比如Gilectomy,旨在讓多線程Python應用程序運行在多個核心上),但這些項目給我們上了有趣的一課,讓我們知道Python如何能更好地在多個核心之間分配負載。
Python社區(qū)正在對標準庫進行現(xiàn)代化。最近發(fā)布了一項提案,建議將過時的模塊從標準庫中移除。Python的標準庫通常被認為是Python的優(yōu)勢所在,因為它被用來處理很多常見任務,這也就是為什么人們都說Python有“內(nèi)置電池”。但在今年的Python語言峰會上,有人提出了這樣的一個問題:如果人們能夠從PyPI自行選擇模塊,而不是使用內(nèi)置的標準庫,這樣是否會更好?
還有一個問題是,Python指導委員會的成員組成能否更好地反映2019年P(guān)ython用戶群的多樣性?
Wijaya說:“我希望指導委員會能夠具備更好的多樣性,不僅在性別方面,還有種族等方面”。
如果還有什么疑問,可以點擊進入【天津樂搏學院】網(wǎng)站咨詢我們的老師。預約試聽后可免費領取學習資料資料。
如何學習Python語言,記得在前幾年經(jīng)常聽到這樣的問題,當時只是在網(wǎng)上隨便搜了一下便饑不擇食的找了一些書開始啃起來,結(jié)果發(fā)現(xiàn)很疑惑,感覺吃力,走了很多彎路。若不得法還會降低初學者的興趣,現(xiàn)在小編就說說自己對python入門的理解.... [詳情]
Stack Overflow 最近的調(diào)查顯示,Python 已經(jīng)成了發(fā)展最快的主流編程語言,也是 Stack Overflow 上來自高收入國家的訪問中,點擊量最高的標簽。為什么突然間 Python 就發(fā)展如此快了? 隨小編看下去!... [詳情]
近幾年,所有編程語言的流行度都在成趨勢下滑,除了 Python。Python 為什么會變得越來越火?小編為大家梳理了 Python 的發(fā)展史,試圖揭示背后的秘密。 ... [詳情]
毫無疑問,Python 是當下最火的編程語言之一。對于許多未曾涉足計算機編程的領域「小白」來說,深入地掌握 Python 看似是一件十分困難的事。其實,只要掌握了科學的學習方法并制定了合理的學習計劃,Python 從 入門到精通只需要一個月就夠了!... [詳情]
根據(jù)老師的介紹,PyScript為一個研發(fā)框架的語言,其為開發(fā)和使用者提供了在標準HTML中嵌入編寫Python代碼的構(gòu)架能力、使用Python調(diào)用JavaScript函數(shù)庫,以及創(chuàng)建Python Web應用。PyScript旨在提供“一等公民(first-class)”的編程語言,它具有一致的風格化規(guī)則、更具表現(xiàn)力且更易于學習。... [詳情]
在討論應該使用Python還是JavaScript構(gòu)建項目時,一般我們都不會說只使用一種編程語言來構(gòu)建所有的組件。 在現(xiàn)代軟件開發(fā)中,如果想構(gòu)建符合標準的軟件,確保在截止日期前完成,或者構(gòu)建一款可以處理數(shù)百萬用戶的應用程序,那么通常都會使用多種語言、框架、工具和API。 因此,如果我們想比較Python和JavaScript,那么就應該討論使用這兩種語言來構(gòu)建軟件的核心組件。 ... [詳情]