7

Python的未来在哪里?4年性能提升5倍,4.0也许永远不会来

 3 years ago
source link: https://www.techug.com/post/where-is-the-future-of-python-5-times-performance-improvement-in-4-years-4-0-may-never-come.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

来源:麦叔编程

作者:麦叔

在最近的一次采访中,Python的创建者(现在在微软工作)吉多表示:

Python 4.0也许永远都不会有!我和Python核心成员对Python 4.0一点都不兴趣!

如果你因此担心Python的未来,那你就错了!吉多的这个表态可以说:

对开发者是一个重大好消息!让我们的头发掉的慢一点!

软件版本更新机制

编程语言(包括其他软件)的更新一般包含三种不同类型:

  • 大版本更新:比如从Python 2到Python 3
  • 小版本更新:比如从3.7到3.8
  • 补丁更新:比如从3.9.5到3.9.6

这些版本的名字不是随便用的,各有各的含义:

  • 大版本更新:可能是完全不兼容的,语法有重大变化。比如用Python 2写的代码,到了Python 3完全不能运行,必须修改,必须大改!
  • 小版本更新:基本保持兼容,至少不会有语法的变化。一般会引入一些比较重要的新功能,同时可能会有计划的淘汰一些库。对于要淘汰的库,会先发出Warning,告诉你过两个小版本会淘汰,建议现在就改写,然后在后面的某个小版本再淘汰。这种变化就算代码要改动,也是很简单的改动。
  • 补丁更新:这种更新是完全兼容的,代码不用修改就可以正常运行在新版本上。

不会有4.0是很长情的告白

吉多说的“Python 4.0也许永远不会来”,不但不是坏消息,反而是一个很长情的承诺。

他在告诉开发者:

Python将来不会轻易有大规模语法变化,你可以大胆的学,它已经比较稳定了!

他们从Python 2到Python 3的大版本更新中得到了教训,代价太大了!

对于大型的Python程序,从Python 2到Python 3的升级是一个漫长而痛苦的过程,有时候要花几年的时间。

其实也给我的粉丝和广发Python学习者带来很大的困扰。有时候网上找资料,找到的是Python 2的代码,在Python 3上不能运行,浪费了时间,还被误导。

我们以为从2到3的升级应该是很简单的,因为我们都是Python编程界的爱因斯坦。我们可以睡着觉就把2给升级到3。

言外之意就是说:

可大部分人不是Python编程中的爱因斯坦,升级过程痛苦而漫长。

正是基于此,他们不会轻易去升级Python到4.0,保持语法基本不变,不会给开发者和学习者带来更多负担。

这不是说Python不会再改进。相反的,Python核心团队有很宏大的改进计划。

Python现在的更新节奏是每年一个小版本。比如2020年算是3.9,2021年是3.10,2022年是3.11。

他们会继续按照这个节奏更新下去,至少要更新到3.33,甚至更新到3.99。

这样一算:

  • 二十多年,甚至八十多年,就过去了;
  • 够我和我的粉丝用的了;
  • 也够我们的儿子,甚至孙子用的啦。

3.11 性能提升2倍,向Rust, Go和TypeScript学习

Python的应用非常广泛,但也经常因为性能的问题被人所诟病,所以Python核心团队的一个工作重点就是:

提升性能!

吉多和他的合伙人Mark Shannon曾说过:

3.11的运行速度会有非常大的提升!而且这个提升会持续下去,3.12,3.13会有继续的提升。

他们计划在接下来的4年中,让Python的性能提升5倍!

这种提升主要是优化cPython解释器,从内核上改变Python的运行方式,比如:

  • 提升小整数(一个字节之内)的运算性能,
  • 提升二进制操作的性能
  • 更快的调用栈和返回值机制
  • 更好的对象内存管理机制
  • 更快的异常处理
  • 其他解释器性能增强

除了在Python内部提升,吉多和核心团队也在积极的学习其他编程语言的优点,从中获得Python的改进思路。他提到了以下三种编程语言:

  • TypeScript

这也给我们一些启示:这些语言很优秀,值得大神学习,也值得我们学习!


Recommend

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK