Python潮流周刊#4:Python 2023 语言峰会

news/2025/2/4 5:57:15/

△点击上方“Python猫”关注 ,回复“1”领取电子书

96cf0554ba5e6e13bf7ff043ca7adea4.png

你好,我是猫哥。这里记录每周值得分享的 Python 及通用技术内容,本期是特别加更版,聚焦于 Python 官方 2023 年语言峰会的系列博客。

由于公众号不支持外链,文中大量链接可通过文末「阅读原文」查看。

每年在 PyCon US 开始之前,Python 核心开发者、维护者和特邀嘉宾都会聚在一起参加 Python 语言峰会:这是一个为期一天的会谈活动,讨论 Python 的未来方向。

40cb00c4d8bb66c2b4744227ed7c6abe.png
Python语言峰会合影

今年的活动刚结束一个月,PSF 在本周一发布了多篇博客,回顾了峰会上的一些演讲内容。本期周刊将这些文章进一步作了摘要,分享给大家:

1、Three Talks on the C API[1]

这是关于 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[2]

我们曾多次介绍过 nogil 项目,比如在周刊第二期就分享了一篇文章。在本次峰会上,nogil 的作者 Sam Gross 介绍了过去一年的进展,给出了 nogil 在性能上取得的令人满意的数据,还提出了更明确的路线图。大家最担心的依然是它提出编译成两个发行版、以及导致的调试困难等问题。(我们曾在 2 月份的一篇文章 中讨论过)

3、Towards Native Profiling for Python[3]

Joannah Nanjekye 的演讲介绍了 Scalene,这是一个基于采样的 Python 分析器,可以在报告中区分机器代码和 Python 代码。使用 C、C++ 或 Rust 编写的 Python 扩展会被编译为机器代码,因此很难用采样的方式分析。Scalene 解决了一些技术难题,是最受欢迎的 Python 分析工具之一。演讲者试探性提出将 Scalene 的成果集成到标准库 cProfile 中,但没有得到响应。最后,这个库还被拿来跟 Python 3.12 中引入的 perf 分析器作比对。

fb51c809c284fc6f566bce6d5f3f88ce.png
Sample-based Profiling

4、What is the stdlib for?[4]

Brett Cannon 提出的问题实际是:标准库应该扮演什么样的角色?Python 在发展初期自诩“自带电池”,包含了很多标准库,但随着第三方库越来越丰富以及 PyPI 使得安装库非常便利,很多标准库就不再有价值了。与会者的共识是:标准库应该专注于帮助用户编写更好的 Python 代码。这意味正在进行的标准库“瘦身计划”不会停,同时,未来的新标准库会更加规范引入。

5、Pattern Matching, __match__, and View Patterns[5]

模式匹配语法是 3.10 版本的重大特性,但是 Sullivan 认为它的能力相当有限,因此提出了模式匹配的后续发展方向。与会者们普遍认同要增强模式匹配语法,然而,是否要引入一个新的魔术方法 __match__,或者采用别的方案,暂无定论。文中附有很多代码示例以及关于模式匹配的参考资料,对此话题感兴趣的同学可以去了解下。

6、Python on Mobile: State of the Union[6]

Russell Keith-Magee 介绍了 BeeWare,它的目标是在 Android 和 iOS 等移动平台上轻松运行 Python。项目已得到 Anaconda 的投资支持,演讲者的诉求是希望得到 CPython 的“Tier-3”支持。会上讨论了 CI 测试套对移动平台的支持、sys.platform 在移动平台应该得到什么值、以及如何在移动平台发布 CPython 二进制文件,等等。手机上的 Python,这值得期待!

7、Burnout is Real[7]

Guido 在峰会上聊了开源倦怠、解决倦怠的策略、以及如何避免倦怠等话题。很多时候,开源贡献者都是在用爱发电,然而大型开源项目还常常有复杂的场景、琐碎的讨论、多样的人际协作、时常冲突的观点或想法等,这些都容易让人疲倦、消磨人的热情。(PS.如果你关注技术新闻的话,会看到 Rust 社区最近闹得沸沸扬扬的核心开发者内讧事件。开源社区的发展也是一大难题,庆幸的是这届峰会反映出 Python 社区是在健康发展中)

70ec868fbb7fff87b062491672b0cc9f.png

8、Lightning Talks[8]

介绍了三场简短的闪电演讲,主题有:让我们支持 LLVM-BOLT 作为官方功能、在 Python 中实现延迟导入的机制、让模块支持调用(已提出 PEP-713)。

以上就是今年峰会上讨论的重大议题,可以说都是非常有意义的话题。

有不少内容其实已经有了最新进展(毕竟活动已结束一个月),还有一些可能仍需较长时间才能尘埃落定(比如 nogil 和手机上的 Python)。

这里再补充两篇文章,有关于 Fast CPython 项目的进展:《Faster CPython at PyCon, part one[9]》、《Faster CPython at PyCon, part two[10]》,Python 3.11 已经让大家看到了非常多的性能提升,未来版本更值得期待。

赞助&支持

内容创作不易,如果你觉得有帮助,请随意赞赏[11]、买杯咖啡[12]或在爱发电[13]进行支持!如果你喜欢本周刊,请转发分享给其他需要的同学~

另诚邀赞助者,欢迎通过私信联系。

关于周刊

Python 潮流周刊,精心筛选国内外的 200+ 信息源,为你挑选最值得分享的文章、教程、开源项目、软件工具、播客和视频、热门话题等内容。愿景:帮助所有读者精进 Python 技术,并增长职业和副业的收入。

订阅方式:Python猫[14] | RSS[15] | 邮件[16] | Github[17] | Telegram[18] | Twitter[19]

18f568e902cb15ea2792e2a223ed2db7.jpeg

参考资料

[1]

Three Talks on the C API: https://pyfound.blogspot.com/2023/05/the-python-language-summit-2023-three.html

[2]

Making the Global Interpreter Lock Optional: https://pyfound.blogspot.com/2023/05/the-python-language-summit-2023-making.html

[3]

Towards Native Profiling for Python: https://pyfound.blogspot.com/2023/05/the-python-language-summit-2023-towards.html

[4]

What is the stdlib for?: https://pyfound.blogspot.com/2023/05/the-python-language-summit-2023-what-is.html

[5]

Pattern Matching, __match__, and View Patterns: https://pyfound.blogspot.com/2023/05/the-python-language-summit-2023-pattern.html

[6]

Python on Mobile: State of the Union: https://pyfound.blogspot.com/2023/05/the-python-language-summit-2023-python.html

[7]

Burnout is Real: https://pyfound.blogspot.com/2023/05/the-python-language-summit-2023-burnout.html

[8]

Lightning Talks: https://pyfound.blogspot.com/2023/05/the-python-language-summit-2023.html

[9]

Faster CPython at PyCon, part one: https://lwn.net/Articles/930705

[10]

Faster CPython at PyCon, part two: https://lwn.net/Articles/931197/

[11]

赞赏: https://img.pythoncat.top/wechat_code.png

[12]

买杯咖啡: https://www.buymeacoffee.com/pythoncat

[13]

爱发电: https://afdian.net/a/pythoncat

[14]

Python猫: https://img.pythoncat.top/python_cat.jpg

[15]

RSS: https://pythoncat.top/rss.xml

[16]

邮件: https://pythoncat.substack.com

[17]

Github: https://github.com/chinesehuazhou/python-weekly

[18]

Telegram: https://t.me/pythontrendingweekly

[19]

Twitter: https://twitter.com/chinesehuazhou

90caa3110d35241b5a4d0c6aafd7f405.gif

如果你觉得本文有帮助

请慷慨分享点赞,感谢啦


http://www.ppmy.cn/news/137271.html

相关文章

Vagrant编排虚拟机安装与配置

1.安装VirtualBox与Vagrant VirtualBox与Vagrant是支持不通过操作系统的;根据具体操作系统下载对应版本即可。(这里使用windows操作系统搭建) VirtualBox https://www.virtualbox.org/wiki/Downloads Vagrant https://developer.hashicorp.com/vagrant/downloads Va…

设计模式之~状态模式

状态模式(State),当一个对象的内部状态改变时允许改变其行为,这个对象看起来像是改变了其类。 能够让程序根据不同的外部情况来做出不同的响应,最直接的方法就是在程序中将这些 可能发生的外部情况全部考虑到&#xff…

一个注解的事儿,数据脱敏解决了

目录 什么是数据脱敏开整使用 Hutool 工具类实现数据掩码Hutool 信息脱敏工具类使用 Jackson 进行数据序列化脱敏 注解实现数据脱敏1、定义一个注解2、创建一个枚举类3、创建我们的自定义序列化类4、测试 项目 pom 文件 总结 本文主要分享什么是数据脱敏,如何优雅的…

修复电动牙刷

电动牙刷 飞利浦6750,服役三年多。 一天,突然不能正常工作,正常工作时间为两分钟,这下几秒就停。 拆开检查,电池处有水迹,存在跑电现象,用吹风机吹干,装回。 正常用了几天&#…

智能牙刷

资料整理: 一,牙刷震动方式 1.偏振式 2.回转式 二,电机种类 1.机械扭力式振荡电机 2.有刷旋转电机 3.有刷往复式振动电机 4.无刷往复式振电机 三,电路设计 主柄:蓝牙无线充电电机控制状态指示(LED、震动、…

飞利浦 27B1U7903 评测怎么样

这款显示器采用27英寸4K分辨率60Hz刷新率的MiniLED IPS屏,具有1300:1的对比度,而且通过DisplayHDR 1400认证,色域达到Adobe RGB 99.2%。 飞利浦 27B1U7903更多使用感受和评价:http://www.adiannao.cn/dy 此外,这款显示…

超声波五档电动牙刷方案

两个按键,4个指示灯,一个充电指示灯,3个档位指示灯。 三个档位,低速,高速、震动。每个档位工作30S停0.5秒,总共工作2分钟&#…

电动牙刷技术方案

松翰半导体推出电动牙刷技术方案 电动牙刷技术方案 电动牙刷技术方案优势 • 芯片选型型号丰富,可符合多种设计要求 • 部分方案已成熟量产,稳定性高 • 智能控制,集成度高 完善的研发团队,提供专业的技术支持 • 性价比高 …