导读:
Python 3.13 beta 1 已经发布,此版本具有甚为重要的新功能,包括禁用全局解释器锁 (GIL) 以实现自由线程的选项,以及实验性即时编译器。这两者都可以提高性能。Beta 版的出现也意味着 3.13 的功能冻结。
当前编程语言排行
Redmonk 编程语言排行榜大概是业界最科学的语言排名。它将 Python 列为仅次于 JavaScript 的流行度第二名,因为其与人工智能和机器学习的紧密关联,其使用量不断增加。
尽管 CPython 解释器的速度相对较慢,但其结果是性能成为最近版本的焦点。
我们来看 2024年4月编程语言排行榜单之前20名:
1 JavaScript2 Python3 Java4 PHP5 C#6 TypeScript6 CSS8 C++9 Ruby10 C11 Swift12 Go12 R14 Shell14 Objective-C16 Scala17 Kotlin18 PowerShell19 Rust20 Dart
基于开发者的理性与客观洞察,此榜单的确是公正且合理的。
Python3.13 新特性介绍
版本 3.13 包括发行说明中所说的“基础版 JIT 编译器”,目前默认情况下处于禁用状态。
引用针对此功能的 PEP(Python 增强提案)的解释,这一特性是“与 CPython 传统上执行 Python 代码方式特别重大的背离”。
Python 目前编译为字节码,在运行时解释执行。
Python 3.12 已经包含将指令分解为更小的微操作,然后对其代码进行优化,但这样做的开销目前超过了性能优势,因此暂时被禁用。
JIT 编译器则更进一步,对优化的微操作进行静态编译,目的是克服瓶颈并提高性能。在满足几个标准之前,它也暂不会启用,包括至少 5% 的性能改进、对部署的干扰最小以及得到 Python 指导委员会的批准。此外,目前它还可能存在安全隐患,另一个缺点是运行时会使用更多内存。
如果默认情况下禁用该功能,为什么新版本要包含该功能呢?目前“JIT 的速度大约与现有的专业解释器一样快”,尚未实现 5% 的性能提升目标;但即便如此,该功能的作者表示,这也是“一项重大成就,这也是该方法被认为足够可行,可以合并到 main 中以进行进一步开发的主因。”
许多改进已经在进行中,它们是Python未来性能提升的初步胜利。
Python 3.13 中的另一个关键实验是使 GIL 成为可选项,从而消除并发的主要障碍。根据 PEP 的说法,“缺乏并发性往往是比 Python 代码执行速度更大的问题。”另一个优点是 Python 代码将能够更好地表达并行性,这对于使代码更易于维护具有重要意义,并将改进 Python 作为学习编程语言的优势地位。
3.13 版中还有一些功能,包括新的交互式 Shell,它对提示字符进行着色、具有历史记录保存的多行编辑以及使用 F1 键帮助浏览等。
以上一些特性适用于类 Unix 系统,例如 macOS 、FreeBSD和 Linux。
第三方支持
Apple 的 iOS平台,现在将成为 Python 支持的平台,但仅限于第 3 层(三个级别的编码支持),并且不包括控制台或交互式使用。
新版本和注意事项
Python 3.13中没有新的模块,但是很多模块都有进行改进。一些模块也将被弃用,等待版本 3.14、3.15 或 3.16 中被删除。
Python 3.13的发布计划,包括四个测试版本和两个候选版本,最终版本定于 2024 年 10 月上旬发布。尽管功能已经冻结,但发布经理 Thomas Wouters表示“功能可能也会被修改,或者在极少数情况下,删除直到发布候选阶段开始。”
这一阶段定于七月底进行。是的,Python在越来越好。