2020 年 1 月 1 日,Python 官方结束了对 Python 2 的维护,意味着 Python 2 完全退休,进入 Python 3 时代。之后,关于 Python 4 的发布排期也成为了社区的热门议题。
去年,Python 之父 Van Rossum 在推特上表示,假如会有 Python 4,从 3 到 4 的版本过渡会更像从 1 到 2 的过渡,而不会像从 2 到 3 的过渡。
但在最近接受 Microsoft Reactor 采访时,Van Rossum 被问及 Python 的未来,以及什么时候会出 Python 4.0。他却表示,可能不会有 Python 4 了。
Van Rossum 回答说:「我和 Python 核心开发团队的成员对 Python 4.0 没什么想法,提不起兴趣,估计至少会一直编号到 3.33。」
视频地址:
https://www.youtube.com/watch?v=aYbNh3NS7jA
在从 Python 2 过渡到 Python 3 时已经被上了一课的 Van Rossum 表示,在内部的严肃场合,谈论 Python 4 是个禁忌,大家只会在饮茶时把 Python 4 当玩笑开。
2020 年 4 月,Python 2.7 生命周期中的最后一个版本 - Python 2.7.18 发布了。彼时 Van Rossum 警告过开发人员 Python 3 与 Python 2 不兼容,因此基于 Python 2 的软件库依赖项将不能升级至版本 3.0。
那是一个延续了数年之久,缓慢而又痛苦的迁移期。Van Rossum 说:「实际上,Python 比核心开发人员意识到的要成功得多,因此我们应该对从 Python 2 过渡到 Python3 更加了解和支持。但当时我们错误地认为过渡会很简单,因为我们都像 Python 编程中的爱因斯坦一样,可以在睡眠中将代码从 Python 2 转换为 Python3。」
不过,Van Rossum 并没有完全排除 Python 4.0 的可能性,他暗示道,当 Python 与 C 的兼容性发生重大变化时,可能会改变目前的想法。Van Rossum 表示:「如果不更改语言就会与 C 扩展存在严重的不兼容,或者我们能够摆脱全局解释器锁(GIL),这样的情况下我们可能被迫升级至 Python4.0。」
然而,关于预计在 10 月发布的 Python 3.10,以及将实现一些重大速度提升的版本 3.11,Van Rossum 强调,重点依旧是尽可能长时间地渐进式的更新编程语言。
两年前,Guido van Rossum 从 Dropbox 离职,宣布退休,但又在 2020 年 11 月加入了微软,主动结束了自己的退休生活。当时他表示,将致力于「使用户更好地使用 Python(并且不仅仅是在 Windows 系统上)」。
「现在,我们有一个严格的年度发布时间表,Python 3.10 之后是 3.11,之后是 3.12,依此类推。(在 Python 4 之前)我们必须先发布 3.9,每次添加另一个数字并不是容易的事,但仍然比从 3 到 4 轻松得多。」
「Python 的加速是渐进式的,3.11 版本会有新的速度提升,我们会在 3.12 和 3.13 中将其进一步提高。」
接下来,让 Python 更快是 Python 核心开发团队的工作重点。在近日的 PyCon Language Summit 上,Van Rossum 宣布目标是在 3.11 版本中将 CPython 的性能提高一倍。
Van Rossum 还介绍了通过外部项目(比如 Pyston)来加速语言的努力,Pyston 项目是 Python 3.8.8 的实现,该实现最初发布在 Dropbox,后来开源。其创建者最近发布了 Pyston 2.2,相比 CPython 3.8.8 的性能提高了 30%。
「现在,我觉得大约有一年时间来证明我们在 Python 性能上取得了进步,3.11 会比 3.10 快得多。」
同时,Van Rossum 也分享了自己对其他编程语言的看法,他欣赏 Rust 改进 C++ 代码的能力,并且 Go 是「比较 Python」的语言中最有趣的。
「你可能注意到,在过去的六七年里,我们一直在 Python 中添加可选的静态类型,也叫渐进类型。」Python 之父也介绍了 Python 近年来对 TypeScript 的重视程度。
「当开始项目时,我实际上并不了解 TypeScript,所以我不能说最初是受到了 TypeScript 的启发…… 如今,我们肯定是以 TypeScript 为样板,有时我们发布了新功能,因为某些功能相对 Typescript 是缺失的,然后我们根据用户需求将其进行添加,非常成功。」
Van Rossum 说,Python 仍然在努力寻找重获成功的方法。在他看来,Hejlsberg 是一个非常聪明的人,TypeScript 正在做的一些事情,是 Python 未来需要弄清楚的。实际上 TypeScript 也在向 Python 学习,就像 JavaScript 在一些领域从 Python 那里学习一样。