你用Python 3了嗎?這個(gè)飛向火星的語言已經(jīng)30歲了!

新智元報(bào)道
新智元報(bào)道
來源:reddit
編輯:小勻
【新智元導(dǎo)讀】Python30歲了!「沒想到Python這么流行!」
不知不覺,Python 30周年啦!
在很多方面,Python都是一種「動(dòng)態(tài)的」語言。沒錯(cuò),它是一直發(fā)展的,這一點(diǎn)與C或C++都不一樣。

對(duì)Python語言來說,2021年3月很重要,因?yàn)檫@期間它核心發(fā)生了明顯的變化——增加了結(jié)構(gòu)模式匹配,現(xiàn)在可以在Python 3.10.0的最新alpha版本中進(jìn)行測(cè)試。
除了語言本身的變化之外,3月對(duì)Python來說是一個(gè)充滿激動(dòng)人心和歷史性時(shí)刻的月份。該語言慶祝了它的30歲生日,并成為第一批登陸其他星球的開源技術(shù)之一。
那么從今年3月份到現(xiàn)在,它又發(fā)生了哪些變化呢?
一起速覽一下吧!
Python Turns 30 Years Old
盡管Python的實(shí)際誕生日期是1991年2月20日,也就是0.9.0版本發(fā)布的時(shí)候,但3月是一個(gè)值得慶祝的好月份——今年三月是Python軟件基金會(huì)成立20周年,該基金會(huì)成立于2001年3月6日。
在它的三十年中,Python已經(jīng)發(fā)生了很大的變化--無論是作為一種語言還是作為一個(gè)組織。
例如,從Python 2到Python 3的過渡花了十年的時(shí)間才完成。
而且,其決策的組織模式也發(fā)生了變化。語言的創(chuàng)造者Guido van Rossum曾經(jīng)是掌舵人,但在2018年成立了一個(gè)五人指導(dǎo)委員會(huì)來規(guī)劃Python的未來。

結(jié)構(gòu)模式匹配進(jìn)入Python 3.10.0
Python 3.10.0是Python的下一個(gè)小版本,預(yù)計(jì)將在2021年10月4日drop on.
這次更新將給核心語法帶來一個(gè)很大的補(bǔ)充:結(jié)構(gòu)模式匹配,這是在PEP 634中提出的。
你可以說結(jié)構(gòu)模式匹配為 Python 增加了一種開關(guān)語句,但不完全準(zhǔn)確。模式匹配的作用遠(yuǎn)不止這些。
例如,以PEP 635中的一個(gè)例子為例。假設(shè)你需要檢查一個(gè)對(duì)象x是否是一個(gè)包含套接字連接的主機(jī)和端口信息的元組,以及可選的模式,如HTTP或HTTPS。你可以用if...elif...else塊來寫這樣的東西。

而新的結(jié)構(gòu)模式匹配能讓你更簡(jiǎn)潔地寫出:

匹配語句檢查對(duì)象的形狀是否與其中一個(gè)案例相匹配,并將對(duì)象的數(shù)據(jù)與案例表達(dá)式中的變量名綁定。
但是,并非每個(gè)人都對(duì)模式匹配感到興奮,該功能受到了來自核心開發(fā)團(tuán)隊(duì)內(nèi)部和更廣泛的社區(qū)的批評(píng)。
在驗(yàn)收公告中,指導(dǎo)委員會(huì)承認(rèn)了這些擔(dān)憂,同時(shí)也表達(dá)了他們對(duì)該提案的支持。
我們承認(rèn)模式匹配是對(duì)Python的廣泛改變,在整個(gè)社區(qū)達(dá)成共識(shí)幾乎是不可能的。不同的人對(duì)語義和語法的不同方面有保留或擔(dān)憂(指導(dǎo)委員會(huì)也是如此)。盡管如此,經(jīng)過反復(fù)討論,......我們相信PEP 634等文件中規(guī)定的模式匹配將是對(duì)Python語言的一個(gè)偉大補(bǔ)充。
雖然眾說紛紜,但模式匹配將出現(xiàn)在下一個(gè) Python 版本中。你可以通過閱讀PEP 636中的教程來了解更多關(guān)于模式匹配的工作原理。https://www.python.org/dev/peps/pep-0636/
Python Lands on Mars
2月18日,毅力號(hào)火星車在經(jīng)歷了七個(gè)月的旅程后在火星上著陸!
毅力號(hào)依靠大量的開源軟件和現(xiàn)成的硬件,使其成為迄今為止最容易獲得的火星車項(xiàng)目。
Python就是毅力號(hào)上的開源技術(shù)之一。它被用于處理登陸時(shí)拍攝的圖像和視頻。
毅力號(hào)攜帶的最令人興奮的實(shí)驗(yàn)之一是火星直升機(jī),這是一架小型無人機(jī),被用來測(cè)試在稀薄的火星大氣中的飛行。

注意了!Python是飛行控制軟件的開發(fā)要求之一,該軟件被稱為F'。
2020年P(guān)ython開發(fā)者調(diào)查結(jié)果出爐
由JetBrains和Python軟件基金會(huì)進(jìn)行的2020年P(guān)ython開發(fā)者調(diào)查的結(jié)果已經(jīng)出來了,與去年的調(diào)查相比,它們顯示了一些有趣的變化。
在2020年,94%的受訪者報(bào)告主要使用Python 3,這比2019年的90%和2017年的75%有所增加。有趣的是,在計(jì)算機(jī)圖形和游戲開發(fā)領(lǐng)域的大多數(shù)受訪者中,Python 2仍然被廣泛使用。

Flask和Django繼續(xù)主導(dǎo)網(wǎng)絡(luò)框架,分別有46%和43%的采用。新來的FastAPI是第三大最受歡迎的網(wǎng)絡(luò)框架,采用率為12%--考慮到2020年是該框架首次出現(xiàn)在選項(xiàng)列表中,這是一個(gè)不可思議的壯舉。

Visual Studio Code在回答 "你目前使用的Python開發(fā)的主要編輯器是什么 "的問題時(shí),獲得了5%的份額。這使得微軟的IDE獲得了29%的份額,并進(jìn)一步縮小了Visual Studio Code和PyCharm之間的差距,后者仍然以33%的份額位居榜首。
查看調(diào)查結(jié)果,了解更多關(guān)于Python及其生態(tài)系統(tǒng)的統(tǒng)計(jì)數(shù)據(jù)。https://www.jetbrains.com/lp/python-developers-survey-2020/
Django 3.2即將推出的新功能
Django 3.2將在2021年4月的某個(gè)時(shí)候發(fā)布,隨之而來的是一個(gè)令人印象深刻的新功能列表。
一個(gè)主要的更新是增加了對(duì)功能索引的支持,它允許你對(duì)表達(dá)式和數(shù)據(jù)庫函數(shù)進(jìn)行索引,例如索引小寫字母的文本或涉及一個(gè)或多個(gè)數(shù)據(jù)庫列的數(shù)學(xué)公式。
功能性索引是在模型類的Meta.indexes選項(xiàng)中創(chuàng)建的。下面是一個(gè)改編自官方發(fā)布說明的例子。

這創(chuàng)建了一個(gè)名為calc_idx的功能索引,它索引了一個(gè)將身高字段除以體重字段,然后加5的表達(dá)式。
對(duì)PostgreSQL覆蓋索引的支持是Django 3.2中另一個(gè)與索引相關(guān)的變化。一個(gè)覆蓋索引可以讓你在一個(gè)索引中存儲(chǔ)多個(gè)列。這使得只包含索引字段的查詢可以得到滿足,而無需額外的查表。換句話說,你的查詢可以快得多!
另一個(gè)值得注意的變化是增加了管理員網(wǎng)站裝飾器,簡(jiǎn)化了自定義顯示和操作功能的創(chuàng)建。
關(guān)于Django 3.2中新功能的完整列表,請(qǐng)查看官方發(fā)布說明。Python貢獻(xiàn)者Haki Benita也有一篇有用的概述文章,通過更多的背景和幾個(gè)例子來引導(dǎo)你了解一些即將到來的功能。https://hakibenita.com/django-32-exciting-features
PEP 621達(dá)到最終狀態(tài)
早在2016年,PEP 518就引入了pyproject.toml文件,作為指定項(xiàng)目構(gòu)建要求的一個(gè)標(biāo)準(zhǔn)化的地方。在此之前,你只能在setup.py文件中指定元數(shù)據(jù)。這引起了一些問題,因?yàn)閳?zhí)行setup.py和讀取構(gòu)建依賴項(xiàng)需要安裝一些構(gòu)建依賴項(xiàng)。
pyproject.toml在過去幾年中得到了普及,現(xiàn)在被用于存儲(chǔ)構(gòu)建需求之外的東西。像black autoformatter這樣的項(xiàng)目使用pyproject.toml來存儲(chǔ)軟件包配置。
PEP 621在2020年11月被暫時(shí)接受,并在2021年3月1日被標(biāo)記為最終版本,它規(guī)定了如何在pyproject.toml文件中寫入項(xiàng)目的核心元數(shù)據(jù)。從表面上看,這似乎是一個(gè)不太重要的PEP,但它代表了繼續(xù)遠(yuǎn)離setup.py文件的運(yùn)動(dòng),并指出了Python打包生態(tài)系統(tǒng)的改進(jìn)。
PyPI是GitHub秘密掃描的集成商
Python Package Index,簡(jiǎn)稱PyPI,是下載構(gòu)成Python豐富生態(tài)系統(tǒng)的所有軟件包的地方。在pypi.org網(wǎng)站和files.pythonhosted.org之間,PyPI每月產(chǎn)生超過20PB的流量。這相當(dāng)于超過20,000TB!
有這么多的人和組織依賴PyPI,保證索引的安全是最重要的。這個(gè)月,PyPI成為GitHub的官方秘密掃描集成商?,F(xiàn)在,GitHub將檢查公共倉(cāng)庫的每一次提交是否有泄露的PyPI API令牌,如果發(fā)現(xiàn)任何泄露,將禁用倉(cāng)庫并通知其所有者。
4月又會(huì)有哪些變化呢?
等待新的總結(jié)吧!
參考資料:
https://realpython.com/python-news-march-2021/#python-turns-30-years-old
推薦閱讀:

