你好,我是猫哥。这里记录每周值得分享的 Python 及通用技术内容,本期是特别加更版,聚焦于 Python 官方 2023 年语言峰会的系列博客。
每年在 PyCon US 开始之前,Python 核心开发者、维护者和特邀嘉宾都会聚在一起参加 Python 语言峰会:这是一个为期一天的会谈活动,讨论 Python 的未来方向。
Python语言峰会合影
今年的活动刚结束一个月,PSF 在本周一发布了多篇博客,回顾了峰会上的一些演讲内容。本期周刊将这些文章进一步作了摘要,分享给大家:
这是关于 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 的地位,还为时尚早。
我们曾多次介绍过 nogil 项目,比如在周刊第二期就分享了一篇文章。在本次峰会上,nogil 的作者 Sam Gross 介绍了过去一年的进展,给出了 nogil 在性能上取得的令人满意的数据,还提出了更明确的路线图。大家最担心的依然是它提出编译成两个发行版、以及导致的调试困难等问题。(我们曾在 2 月份的一篇文章 中讨论过)
Joannah Nanjekye 的演讲介绍了 Scalene,这是一个基于采样的 Python 分析器,可以在报告中区分机器代码和 Python 代码。使用 C、C++ 或 Rust 编写的 Python 扩展会被编译为机器代码,因此很难用采样的方式分析。Scalene 解决了一些技术难题,是最受欢迎的 Python 分析工具之一。演讲者试探性提出将 Scalene 的成果集成到标准库 cProfile 中,但没有得到响应。最后,这个库还被拿来跟 Python 3.12 中引入的 perf 分析器作比对。
Sample-based Profiling
Brett Cannon 提出的问题实际是:标准库应该扮演什么样的角色?Python 在发展初期自诩“自带电池”,包含了很多标准库,但随着第三方库越来越丰富以及 PyPI 使得安装库非常便利,很多标准库就不再有价值了。与会者的共识是:标准库应该专注于帮助用户编写更好的 Python 代码。这意味正在进行的标准库“瘦身计划”不会停,同时,未来的新标准库会更加规范引入。
模式匹配语法是 3.10 版本的重大特性,但是 Sullivan 认为它的能力相当有限,因此提出了模式匹配的后续发展方向。与会者们普遍认同要增强模式匹配语法,然而,是否要引入一个新的魔术方法 __match__,或者采用别的方案,暂无定论。文中附有很多代码示例以及关于模式匹配的参考资料,对此话题感兴趣的同学可以去了解下。
Russell Keith-Magee 介绍了 BeeWare,它的目标是在 Android 和 iOS 等移动平台上轻松运行 Python。项目已得到 Anaconda 的投资支持,演讲者的诉求是希望得到 CPython 的“Tier-3”支持。会上讨论了 CI 测试套对移动平台的支持、sys.platform 在移动平台应该得到什么值、以及如何在移动平台发布 CPython 二进制文件,等等。手机上的 Python,这值得期待!
Guido 在峰会上聊了开源倦怠、解决倦怠的策略、以及如何避免倦怠等话题。很多时候,开源贡献者都是在用爱发电,然而大型开源项目还常常有复杂的场景、琐碎的讨论、多样的人际协作、时常冲突的观点或想法等,这些都容易让人疲倦、消磨人的热情。(PS.如果你关注技术新闻的话,会看到 Rust 社区最近闹得沸沸扬扬的核心开发者内讧事件。开源社区的发展也是一大难题,庆幸的是这届峰会反映出 Python 社区是在健康发展中)
介绍了三场简短的闪电演讲,主题有:让我们支持 LLVM-BOLT 作为官方功能、在 Python 中实现延迟导入的机制、让模块支持调用(已提出 PEP-713)。
以上就是今年峰会上讨论的重大议题,可以说都是非常有意义的话题。
有不少内容其实已经有了最新进展(毕竟活动已结束一个月),还有一些可能仍需较长时间才能尘埃落定(比如 nogil 和手机上的 Python)。
这里再补充两篇文章,有关于 Fast CPython 项目的进展:《Faster CPython at PyCon, part one》、《Faster CPython at PyCon, part two》,Python 3.11 已经让大家看到了非常多的性能提升,未来版本更值得期待。

赞助&支持

内容创作要花费大量的时间和精力,如果你觉得有帮助,请随意赞赏买杯咖啡 进行支持!如果你喜欢本周刊,请转发分享给其他需要的同学,让更多人可以从中受益~
另诚邀赞助者,欢迎通过私信联系。

关于周刊

本周刊已持续连载一年,更新内容接近 11 万字。希望周刊能成为你高质量的信息筛选器,成为你开阔视野的一扇明窗。目前已开通付费专栏,欢迎你来订阅:https://xiaobot.net/p/python_weekly