Python潮流周刊#4:Python 2023 語言峰會

来源:https://www.cnblogs.com/pythonista/archive/2023/05/31/17447290.html
-Advertisement-
Play Games

> 源碼都背下來了,你給我看這 **我是 javapub,一名 `Markdown` 程式員從👨‍💻,八股文種子選手。** **面試官: 你好,我看到你的簡歷上寫著你熟悉 Java 中的 "synchronized" 關鍵字。你能給我講講它的作用嗎?** **候選人:** 當然,"synchro ...


你好,我是貓哥。這裡記錄每周值得分享的 Python 及通用技術內容,本期是特別加更版,聚焦於 Python 官方 2023 年語言峰會的系列博客。

博客原文:https://pythoncat.top/posts/2023-05-31-weekly4

每年在 PyCon US 開始之前,Python 核心開發者、維護者和特邀嘉賓都會聚在一起參加 Python 語言峰會:這是一個為期一天的會談活動,討論 Python 的未來方向。

Python語言峰會合影

今年的活動剛結束一個月,PSF 在本周一發佈了多篇博客,回顧了峰會上的一些演講內容。本期周刊將這些文章進一步作了摘要,分享給大家:

1、Three Talks on the C API

這是關於 C API 的三場演講。首先,Mark Shannon 和 Guido van Rossum 提及當前 C API 對第三方擴展的支持不夠,經常在升級版本時破壞它們的功能。會上的結論是收集 C API 的問題清單,再制定解決方案。

另一場演講是關於 HPy,它是一個用於編寫 Python 擴展模塊的新的 API,旨在解決 CPython C API 的一些限制和問題。它的好處是編寫的擴展模塊可以在不同的 Python 實現中運行,例如 CPython 和 PyPy。但是,演講者想要官方將它作為推薦方案的想法沒有得到支持,一方面的原因是它還不夠完善,更重要的原因則是 Guido 評論的自上而下的方法行不通。HPy 似乎是挺不錯的剋服 C API 問題的方案,但它要取代 C API 的地位,還為時尚早。

2、Making the Global Interpreter Lock Optional

我們曾多次介紹過 nogil 項目,比如在周刊第二期就分享了一篇文章。在本次峰會上,nogil 的作者 Sam Gross 介紹了過去一年的進展,給出了 nogil 在性能上取得的令人滿意的數據,還提出了更明確的路線圖。大家最擔心的依然是它提出編譯成兩個發行版、以及導致的調試困難等問題。(我們曾在 2 月份的一篇文章 中討論過)

3、Towards Native Profiling for Python

Joannah Nanjekye 的演講介紹了 Scalene,這是一個基於採樣的 Python 分析器,可以在報告中區分機器代碼和 Python 代碼。使用 C、C++ 或 Rust 編寫的 Python 擴展會被編譯為機器代碼,因此很難用採樣的方式分析。Scalene 解決了一些技術難題,是最受歡迎的 Python 分析工具之一。演講者試探性提出將 Scalene 的成果集成到標準庫 cProfile 中,但沒有得到響應。最後,這個庫還被拿來跟 Python 3.12 中引入的 perf 分析器作比對。

Sample-based Profiling

4、What is the stdlib for?

Brett Cannon 提出的問題實際是:標準庫應該扮演什麼樣的角色?Python 在發展初期自詡“自帶電池”,包含了很多標準庫,但隨著第三方庫越來越豐富以及 PyPI 使得安裝庫非常便利,很多標準庫就不再有價值了。與會者的共識是:標準庫應該專註於幫助用戶編寫更好的 Python 代碼。這意味正在進行的標準庫“瘦身計劃”不會停,同時,未來的新標準庫會更加規範引入。

5、Pattern Matching, __match__, and View Patterns

模式匹配語法是 3.10 版本的重大特性,但是 Sullivan 認為它的能力相當有限,因此提出了模式匹配的後續發展方向。與會者們普遍認同要增強模式匹配語法,然而,是否要引入一個新的魔術方法 __match__,或者採用別的方案,暫無定論。文中附有很多代碼示例以及關於模式匹配的參考資料,對此話題感興趣的同學可以去瞭解下。

6、Python on Mobile: State of the Union

Russell Keith-Magee 介紹了 BeeWare,它的目標是在 Android 和 iOS 等移動平臺上輕鬆運行 Python。項目已得到 Anaconda 的投資支持,演講者的訴求是希望得到 CPython 的“Tier-3”支持。會上討論了 CI 測試套對移動平臺的支持、sys.platform 在移動平臺應該得到什麼值、以及如何在移動平臺發佈 CPython 二進位文件,等等。手機上的 Python,這值得期待!

7、Burnout is Real

Guido 在峰會上聊了開源倦怠、解決倦怠的策略、以及如何避免倦怠等話題。很多時候,開源貢獻者都是在用愛發電,然而大型開源項目還常常有複雜的場景、瑣碎的討論、多樣的人際協作、時常衝突的觀點或想法等,這些都容易讓人疲倦、消磨人的熱情。(PS.如果你關註技術新聞的話,會看到 Rust 社區最近鬧得沸沸揚揚的核心開發者內訌事件。開源社區的發展也是一大難題,慶幸的是這屆峰會反映出 Python 社區是在健康發展中)

8、Lightning Talks

介紹了三場簡短的閃電演講,主題有:讓我們支持 LLVM-BOLT 作為官方功能、在 Python 中實現延遲導入的機制、讓模塊支持調用(已提出 PEP-713)。

以上就是今年峰會上討論的重大議題,可以說都是非常有意義的話題。

有不少內容其實已經有了最新進展(畢竟活動已結束一個月),還有一些可能仍需較長時間才能塵埃落定(比如 nogil 和手機上的 Python)。

這裡再補充兩篇文章,有關於 Fast CPython 項目的進展:《Faster CPython at PyCon, part one》、《Faster CPython at PyCon, part two》,Python 3.11 已經讓大家看到了非常多的性能提升,未來版本更值得期待。

贊助&支持

內容創作不易,如果你覺得有幫助,請隨意贊賞買杯咖啡或在愛發電進行支持!如果你喜歡本周刊,請轉發分享給其他需要的同學~

另誠邀贊助者,歡迎通過私信聯繫。

關於周刊

Python 潮流周刊,精心篩選國內外的 200+ 信息源,為你挑選最值得分享的文章、教程、開源項目、軟體工具、播客和視頻、熱門話題等內容。願景:幫助所有讀者精進 Python 技術,並增長職業和副業的收入。

訂閱方式:Python貓 | RSS | 郵件 | Github | Telegram | Twitter


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • > 隨著人工智慧技術的不斷發展,阿裡體育等IT大廠,推出的“樂動力”、“天天跳繩”AI運動APP,讓**雲上運動會、線上運動會、健身打卡、AI體育指導**等概念空前火熱。那麼,能否將這些在APP成功應用的場景搬上小程式,分享這些概念的紅利呢?本系列文章就帶您一步一步從零開始開發一個AI運動小程式,本 ...
  • # 前言 本文主要講述**單例模式**,文中使用通俗易懂的案例,使你更好的學習本章知識點並理解原理,做到有道無術。 # 一. 什麼是單例模式 單例模式是23種設計模式中**創建型模式**的一種,通過單例模式的方法創建的類在當前進程或者線程中只有一個實例。單例模式有兩種比較常見的實現方式:**餓漢式* ...
  • ### 外觀式定義 為子系統中的一組介面提供一個一致的界面,Facade 模式定義了一個高層介面,這個介面使得這一子系統更加容易使用。 #### 界面 在這裡提到的界面,主要指的是從一個組件外部來看這個組件,能夠看到什麼,這就是這個組件的界面,也就是所說的外觀。 #### 介面 在這裡提到的介面,主 ...
  • # 前言 本文主要講述**工廠模式**,文中使用通俗易懂的案例,使你更好的學習本章知識點並理解原理,做到有道無術。 # 一.什麼是工廠模式 工廠模式是23種設計模式中**創建型模式**的一種,它是一個最簡單的對象創建管理方式,根據調用方傳遞的類型來創建對象並返回。封裝了對象創建的過程,降低了程式模塊 ...
  • ### 解釋器模式(Interpreter Pattern) #### 一、定義 解釋器模式(Interpreter Pattern)提供了評估語言的語法或表達式的方式,它屬於行為型模式。這種模式實現了一個表達式介面,該介面解釋一個特定的上下文。這種模式被用在 SQL 解析、符號處理引擎等。 給定一 ...
  • 在Java中,序列化(Serialization)是指將對象的狀態轉換為位元組流的過程,以便將其保存到文件、在網路中傳輸或持久化到資料庫中。而反序列化(Deserialization)則是將位元組流轉換回對象的過程,恢復對象的狀態。 序列化和反序列化主要用於以下場景: 1. 對象持久化:通過序列化,可以 ...
  • > 內容摘自我的學習網站:topjavaer.cn Redis連環40問,絕對夠全! ## Redis是什麼? Redis(`Remote Dictionary Server`)是一個使用 C 語言編寫的,高性能非關係型的鍵值對資料庫。與傳統資料庫不同的是,Redis 的數據是存在記憶體中的,所以讀寫 ...
  • > 本文首發於公眾號:Hunter後端 > 原文鏈接:[Python連接es筆記四之創建和刪除操作](https://mp.weixin.qq.com/s/ZCe0JT9TDEiZI7M5dxC9qA) 這一篇筆記介紹一下索引和數據的創建和刪除。 其實對於索引來說,如果可以接觸到 kibana 的話 ...
一周排行
    -Advertisement-
    Play Games
  • GoF之工廠模式 @目錄GoF之工廠模式每博一文案1. 簡單說明“23種設計模式”1.2 介紹工廠模式的三種形態1.3 簡單工廠模式(靜態工廠模式)1.3.1 簡單工廠模式的優缺點:1.4 工廠方法模式1.4.1 工廠方法模式的優缺點:1.5 抽象工廠模式1.6 抽象工廠模式的優缺點:2. 總結:3 ...
  • 新改進提供的Taurus Rpc 功能,可以簡化微服務間的調用,同時可以不用再手動輸出模塊名稱,或調用路徑,包括負載均衡,這一切,由框架實現並提供了。新的Taurus Rpc 功能,將使得服務間的調用,更加輕鬆、簡約、高效。 ...
  • 本章將和大家分享ES的數據同步方案和ES集群相關知識。廢話不多說,下麵我們直接進入主題。 一、ES數據同步 1、數據同步問題 Elasticsearch中的酒店數據來自於mysql資料庫,因此mysql數據發生改變時,Elasticsearch也必須跟著改變,這個就是Elasticsearch與my ...
  • 引言 在我們之前的文章中介紹過使用Bogus生成模擬測試數據,今天來講解一下功能更加強大自動生成測試數據的工具的庫"AutoFixture"。 什麼是AutoFixture? AutoFixture 是一個針對 .NET 的開源庫,旨在最大程度地減少單元測試中的“安排(Arrange)”階段,以提高 ...
  • 經過前面幾個部分學習,相信學過的同學已經能夠掌握 .NET Emit 這種中間語言,並能使得它來編寫一些應用,以提高程式的性能。隨著 IL 指令篇的結束,本系列也已經接近尾聲,在這接近結束的最後,會提供幾個可供直接使用的示例,以供大伙分析或使用在項目中。 ...
  • 當從不同來源導入Excel數據時,可能存在重覆的記錄。為了確保數據的準確性,通常需要刪除這些重覆的行。手動查找並刪除可能會非常耗費時間,而通過編程腳本則可以實現在短時間內處理大量數據。本文將提供一個使用C# 快速查找並刪除Excel重覆項的免費解決方案。 以下是實現步驟: 1. 首先安裝免費.NET ...
  • C++ 異常處理 C++ 異常處理機制允許程式在運行時處理錯誤或意外情況。它提供了捕獲和處理錯誤的一種結構化方式,使程式更加健壯和可靠。 異常處理的基本概念: 異常: 程式在運行時發生的錯誤或意外情況。 拋出異常: 使用 throw 關鍵字將異常傳遞給調用堆棧。 捕獲異常: 使用 try-catch ...
  • 優秀且經驗豐富的Java開發人員的特征之一是對API的廣泛瞭解,包括JDK和第三方庫。 我花了很多時間來學習API,尤其是在閱讀了Effective Java 3rd Edition之後 ,Joshua Bloch建議在Java 3rd Edition中使用現有的API進行開發,而不是為常見的東西編 ...
  • 框架 · 使用laravel框架,原因:tp的框架路由和orm沒有laravel好用 · 使用強制路由,方便介面多時,分多版本,分文件夾等操作 介面 · 介面開發註意欄位類型,欄位是int,查詢成功失敗都要返回int(對接java等強類型語言方便) · 查詢介面用GET、其他用POST 代碼 · 所 ...
  • 正文 下午找企業的人去鎮上做貸後。 車上聽同事跟那個司機對罵,火星子都快出來了。司機跟那同事更熟一些,連我在內一共就三個人,同事那一手指桑罵槐給我都聽愣了。司機也是老社會人了,馬上聽出來了,為那個無辜的企業經辦人辯護,實際上是為自己辯護。 “這個事情你不能怪企業。”“但他們總不能讓銀行的人全權負責, ...