10 月 23 - 25 日,QCon 上海站即将召开,9折优惠最后2天 了解详情
写点什么

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:4012607

评论 3 条评论

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

字节速通!这份软件测试八股文还怕不能拿offer?你值得拥有

Java你猿哥

MySQL 面试 软件测试 计算机 八股文

MATLAB与Simulink

袁袁袁袁满

三周年连更

MySQL深分页问题原理与三种解决方案

Java MySQL 数据库

https和http有什么区别?

海拥(haiyong.site)

三周年连更

变量,常量以及与其他语言的差异

乌龟哥哥

三周年连更

基于Alpine制作Tomcat的Docker镜像

清康

太强了!牛客网开源1240页字节算法实录,无意中掀起GitHub刷题热潮

Java 数据结构 算法 LeetCode

面试官:一千万的数据,你是怎么查询的?

什么是 Intelligence Enterprise 的 Business network?

汪子熙

人工智能 机器学习 数字化转型 三周年连更

为什么《魂斗罗》只有128KB却可以实现那么长的剧情?

Java你猿哥

Java 编程 程序员 汇编语言 优化技术

分布式事务的21种武器 - 4

俞凡

架构 云原生

运行第一个程序Hello world

鸿蒙之旅

OpenHarmony 三周年连更

分布式事务的21种武器 - 5

俞凡

架构 云原生

一文看懂:性能监控神器JavaMelody

后台技术汇

三周年连更

Bash脚本中的Sleep命令到底有何妙用?

wljslmz

三周年连更

程序员如何应对失业? | 社区征文

石云升

职业规划 三周年征文 三周年连更

围绕应用的云原生转型建设

穿过生命散发芬芳

云原生 三周年连更

自动化与DevOps

阿泽🧸

自动化 三周年连更

Python的常见数据结构

timerring

Python

速通字节!阿里p8耗时6个月打造的java面试手册,看到直呼“面试有手就行”

Java你猿哥

Java spring 微服务 JVM 多线程

Golden Gate(GGX)开发者见解与创新DeFi应用

股市老人

Java 数组在内存中的结构是怎样的?数组访问、遍历、复制、扩容、缩容如何编写代码?

Java架构历程

Java 数组 三周年连更

MySQL面试八股文:索引篇

Java你猿哥

Java MySQL ssm 索引 八股文

程序性能提高了5倍!开源阿里500页的Java程序优化笔记

Java你猿哥

Java 面试 性能优化 Java虚拟机 Java性能优化

面试不再慌!苦学这份2023最全的Java性能优化实战笔记,已涨17k

Java你猿哥

Java 面试 JVM 多线程 Java性能优化

我懵了,如果要存 IP 地址,用什么数据类型比较好?

Java你猿哥

Java MySQL 数据库 ssm IP

Redis数据类型及底层大剖析

Java 数据库 redis 缓存

Java8 lambda 表达式 forEach 如何提前终止?

Java你猿哥

Java ssm java8 foreach

SpringBoot核心配置全面总结

小小怪下士

Java 程序员 后端 springboot

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