限时领|《AI 百问百答》专栏课+实体书(包邮)! 了解详情
写点什么

Python 之父:Python 4.0 可能不会有了

  • 2021-06-23
  • 本文字数:1988 字

    阅读完需:约 7 分钟

Python之父:Python 4.0可能不会有了

别把希望寄托在 Python 4.0 上。

 

Python 之父 Guido van Rossum 最近在接受微软 Reactor 的采访时被问到 Python 的未来,以及 Python 是否会发布 4.0 版本。他直言,Python 4.0 可能永远不会出现在世人面前。

 

采访视频链接:https://www.youtube.com/watch?v=aYbNh3NS7jA

 

Van Rossum 表示,他和 Python 的核心开发团队成员对 Python 4 的想法并没有太多兴趣,而且在 2008 年作为最终版本发布 Python 3 时,大家就已经从 Python 2 到 Python 3 的过渡期吸取了足够的教训。

 

他提到:“我对 Python 4 的想法并不感到兴奋,核心开发团队中也没有人真正对此感到兴奋:我们更有可能继续编号,至少会编号到 3.33。”

 

“Python 4,在这个问题上,无论是什么时候,只要核心开发团队一提到它,基本只是当做一个玩笑……我们已经从 Python 3 和 Python 2 中学到很多东西,因此,在严肃的意义上,谈论 Python 4 几乎是一个禁忌。”

 

Python 2.7.18 是 Python 2.7 生命周期中的最后一个版本,于 2020 年 4 月发布。Van Rossum 曾警告说,Python 3 将不会与 Python 2 兼容,那些创建了基于 Python 2 的软件库的依赖关系的开发者无法升级到 3.0 版本

 

这个过程既缓慢又痛苦,持续了好几年,很明显,Van Rossum 和公司并不急于重新开始。

 

“因为 Python 比核心开发者所认识到的更加成功,所以我们应该对 Python 有更深的认识,并且支持从 Python 2 过渡到 Python 3。”van Rossum 说。

 

“以我们的经验来看,我们认为过渡会比较简单,因为我们都是 Python 编程的‘爱因斯坦’,可以在睡梦中把代码从 Python 2 翻译成 Python 3。”

 

Van Rossum 并没有完全排除 Python 4.0 的可能性,但他暗示,这只有在与 C 兼容方面有重大改变时才有可能出现。他说:“我可以想象到,在某个时候,我们被迫放弃某些二进制或 API 与 C 扩展的兼容性……如果不改变语言本身,C 扩展就会有明显的不兼容性;如果我们能摆脱 GIL(global interpreter lock,全局解释器锁);如果其中一种或两种出现,我们可能会被迫调用 4.0,因为 C 扩展层面的兼容性问题。”

 

不过,由于 Python 3.10 预计将在 10 月发布,而 3.11 版本预计将会有一些重大的速度改进,因此,van Rossum 强调说,在尽可能长的时间内,发布编程语言的增量更新是重点。

 

“我们现在有严格的年度发布计划,因此,在 Python 3.10 之后将是 3.11,之后将是 3.12,以此类推。在我们不得不再增加一个数字之前,我们可以上升到 3.99。再加一个数字并非完全微不足道,但还是比从版本 3 到 4 好得多。”

 

“Python 的加速是渐进式的。在 3.11 里会出现一些新的速度,然后我们再用 3.12 和 3.13 加速,以此类推。”

 

Python提速是 Python 核心开发团队的第一要务,van Rossum 在今年的语言峰会上宣布,他的目标是在 3.11 版本中将 CPython 的性能提高一倍

 

van Rossum 在采访中还提到了外部项目为加快语言速度所做的努力,包括 Pyston,这是 Python 3.8.8 的一个实现,在开源之前从 Dropbox 开始的。它的创造者最近发布了 Pyston 2.2,承诺比 CPython 3.8.8 的性能提高 30%。

 

“让 Python 更快,我想说的是,突然又回到新闻头条了。但愿通过我的团队,我能在这方面做些贡献,因为我确实对该领域有所了解。”van Rossum 说。

 

“现在,我们感觉到我们有一年左右的时间来证明我们能够在 Python 性能方面有所作为,3.11 将大大超过 3.10。”

 

Van Rossum 还谈到了他对其他编程语言的看法,他说他非常欣赏 Rust 提高 C++ 代码的能力,并认为 Go 是新“Pythonic”编程语言中最有趣的一种。

 

这位 Python 之父还描述了 Python 如何在近几年开始把 TypeScript 作为事情发展的决定性因素。“你可能已经注意到,在过去的六、七年中,我们一直在向 Python 添加可选的静态类型,也被称为渐进类型。”他说。

 

“事实上,当我们开始这个项目时,我并不知道 TypeScript,所以我不能说我们最初是受 TypeScript 的启发……现在,我们肯定会关注 TypeScript 的示例,有时我们会提出新的特性,因为我们知道某些特性最初是在 Typescript 中没有的,然后会根据用户的需求将其添加到其中,并取得了巨大的成功。”

 

Van Rossum 说,Python Python 仍然在试图重新创建其中一些成功案例。“Anders Hejlsberg 是一个非常聪明的家伙。TypeScript 已经完成了一些 Python 还在等待处理的工作。”

 

译注:Anders Hejlsberg,1960 年 12 月出生于丹麦哥本哈根,曾在丹麦科技大学学习工程学,计算机科学家。Turbo Pascal 编译器的主要作者,Delphi、 C# 和 TypeScript 之父,.NET 创立者。)

 

“从我与 Anders 的交谈中,TypeScript 听起来也是在向 Python 学习,就像 JavaScript 在一些领域向 Python 学习一样。”

 

原文链接:

 

https://www.tectalk.co/why-python-4-0-might-never-arrive-according-to-its-creator/#comment-155

 

延伸阅读:

 

《Python之父:让 Python 快2倍》

2021-06-23 14:4012474

评论 3 条评论

发布
用户头像
C,Java,C++已经离开父亲独立生活,Python什么时候离家。
2021-07-26 11:31
回复
用户头像
2021-07-16 16:29
回复
用户头像
太好了,终于可以来学一门不存在兼容性问题的语言了。
2021-06-30 16:20
回复
没有更多了
发现更多内容

webpack热更新原理(面试大概率会问)

Geek_02d948

webpack

Nodejs相关ORM框架分析

coder2028

node.js

​GOPS演讲 | 如何构建现代运营与支持体系,实现团队的高效协同

龙智—DevSecOps解决方案

gops ITSM ITSM解决方案 GOPS全球运维大会

DAO社区治理代币投票挖矿系统开发合约定制

开发微hkkf5566

JavaScript刷LeetCode-字符串类解题技巧

Geek_07a724

JavaScript LeetCode

开源代码安全 | 西门子为保护代码安全采取了什么措施?

龙智—DevSecOps解决方案

SCA SCA工具 开源代码安全

HarmonyOS 3开启新一轮升级,3年前的nova 6也能更新!

极客天地

你知道IPC二级和IPC三级有什么区别吗?两者对PCB产品的影响又是什么呢?

华秋PCB

PCB ipc PCB设计

javascript尾递归优化

hellocoder2029

JavaScript

javascript 高级编程 之 Array 用法总结

hellocoder2029

JavaScript

干货|分析PostgreSql单表60w数据却占用55g空间

查拉图斯特拉说

数据库 postgresql db 11月月更

Go语言入门16—锁

良猿

Go golang 后端 11月月更

成为web前端工程师培训和自学选择

小谷哥

在线研讨会报名 | 如何通过自动化测试实现降本、增效与提质

龙智—DevSecOps解决方案

自动化测试 研讨会

云栖盘点:2022 云网络产业干货分享

云布道师

云网络 云栖大会

技术指南 | 如何集成Perforce版本控制系统Helix Core (P4V) 与软件生命周期管理工具Helix ALM

龙智—DevSecOps解决方案

版本控制 软件开发生命周期 版本管理 ALM

JavaScript刷LeetCode拿offer-js版字典

Geek_07a724

JavaScript LeetCode

让数据流动起来,RocketMQ Connect 技术架构解析

阿里巴巴云原生

阿里云 RocketMQ 云原生

Nodejs:ESModule和commonjs,傻傻分不清

coder2028

node.js

安装户外LED显示屏安装注意事项

Dylan

LED显示屏 户外LED显示屏 led显示屏厂家

docker如何在容器外执行容器内命令

A-刘晨阳

Docker Linux 运维 11月月更

linux(centos)中部署docker(步骤超全,含带一些发展史和一些概念)

A-刘晨阳

Docker Linux 运维 11月月更

params传参与body传参区别

源字节1号

软件开发 前端开发 后端开发 小程序开发

用javascript分类刷leetcode3.动态规划(图文视频讲解)

Geek_07a724

JavaScript LeetCode

js作用域、作用域链和它的一些优化

hellocoder2029

JavaScript

用Vue.js开发企业管理后台,我做到了

博文视点Broadview

webpack模块化的原理

Geek_02d948

webpack

Nodejs+Redis实现简易消息队列

coder2028

node.js

云栖盘点 | 一文 get 云原生峰会的最全发布

云布道师

云原生 云栖大会

AR Engine光照估计能力,让虚拟物体在现实世界更具真实感

HarmonyOS SDK

AR HMS Core

【LeetCode】只出现一次的数字Java题解

Albert

算法 LeetCode 11月月更

Python之父:Python 4.0可能不会有了_语言 & 开发_TecTalk_InfoQ精选文章