写点什么

Python 之父:让 Python 速度快 2 倍

  • 2021-05-19
  • 本文字数:2176 字

    阅读完需:约 7 分钟

Python之父:让 Python 速度快2倍

近日,在美国参加 PyCon 语言峰会的 Guido van Rossum 表示,必须让 Python 语言的速度水平提高 2 倍,借此与 C++ 等高性能编程语言正面对抗。


Core Python(CPython)的市场吸引力也证明了上述论断,其出色的运行速度已经催生出 Pyston 等多种实现方案。


正是由于天然性能不足,才让 Python 语言更多在数据科学与机器学习领域得以施展——这类工作负载主要由 GPU 负责处理,因此抵消了大部分速度劣势。当然,Python 也确实成就了 NumPy 以及 TensorFlow 机器学习框架等多种特定领域库,建立起自己的数据科学与机器学习应用优势。

van Rossum 的雄心

上周,2021Python 语言峰会 PyCon 正式召开。在峰会上,van Rossum 在 GitHub 上发布了一份文档,详尽介绍了自己提升 Python 速度表现的雄心壮志。



在文档中,他披露了“Shannon Plan”项目,承诺 4 年把 Python 速度提升 5 倍。并且在 Python 3.11 版本,实现 Python 速度提高 2 倍的目标。据悉,Python 3.11 是计划于明年发布 pre-alpha 版本的 Python 三个分支之一。

闲不住的大牛

30 年前,由于对已有的编程语言感到十分失望,van Rossum 决定开发一门新语言——一门既易于使用功能又强大的语言。于是,Python 诞生了。


目前,Python 已经发展成世界上非常流行的编程语言,有无数开发者使用它处理大大小小的任务,特别是 Web 开发人员、数据科学家和系统管理员。并且,Python 也在一些世界知名的组织中扮演着关键角色,比如,Netflix 用 Python 向全球 1 亿多户家庭提供流媒体视频,Instagram 用 Python 实现图片分享,NASA 借助 Python 来探索太空。


去年 11 月,van Rossum 决定离开“退休”状态重返工作,正式加盟微软。


而在退休前,他曾在 Dropbox 公司工作,并写下了 400 万行 Python 代码。


他坦言,“退休后,每天闲坐在家简直无聊透顶”。为此,他申请了微软职位,并顺利出任微软杰出工程师这一实权职务。


对此,微软也表现出自己对优秀人才的重视,允许他“自由选择项目”,这也让 van Rossum“再次回到自己熟悉的战场”。


van Rossum 写道,“感谢微软以这样的方式回馈 Python 项目”。


微软助力 Python 项目

据悉,微软公司长期以来一直以多种方式为 Python 项目提供助力,包括发布免费的 Python 课程(微软 Azure 云 AI 服务教程的一部分)、通过 VS Code Python 扩展在 Windows 10 及以上版本支持 Python,并成为 Python 项目的正式赞助商。


此外,微软自 2006 年起开始成为 Python 软件基金会(PSF)的赞助商,并在今年提供了 15 万美元资助。


van Rossum 表示,微软还资助了一支小型 Python 团队“负责语言解释层面的性能改进工作”。


目前,微软共有五位专为 CPython 开发做出贡献的核心成员,分别为 Brett Cannon、Steve Dower、Guido van Rossum、Eric Snow 以及 Barry Warsaw,他们也都是 Python 核心开发者社区中的资深人士。


微软在今年 4 月发表声明,提到 Eric Snow 一直在通过子解释器研究 Python 语言中的多线程性能。自 Python 3.5 版本开始,Steve Dower 出任 build 管理员,同时也是 Windows 平台的 CPython 专家。Barry Warsaw 则身为 Python 指导委员会成员、Python 安全响应小组成员并为 Python 版本管理器做出了贡献。


并且,随着近期软件供应链攻击受到整个技术社区的高度关注,微软还将重点放在保护主程序包 repo PyPI(即 Python Package Index)身上。


微软公司 Python 与 AI 工具首席经理 Dan Taylor 提到,“作为 PSF 15 万美元财务赞助中的一部分,我们将把资金集中到程序包工作小组当中,帮助他们进一步改善 PyPI 与程序包生态系统。”


“面对近期持续涌现的安全漏洞,我们与 Python 社区已经意识到建立可依赖供应链的重要意义,我们也很高兴能为这项长期改进做出切实贡献。”

van Rossum 对一些问题的回应

目前,van Rossum 也指出他和其他微软同事将携手核心 Python 开发人员推进公开贡献,目前正专注于对 CPython 进行增量式变更。之所以暂时不进行重大变更,是为了避免开发者们再次经历由 Python 2.x 迁移至 Python 3 的痛苦经历。整个迁移过程持续达十年之久,也给 Python 的群众基础造成不小的影响。


van Rossum 写道,“如果分叉 / 分支不能长期存在,就不会有激动人心的 pull 产出。”


他还强调,“我们将继续负责维护与支持工作……所有讨论细节都将公开发布在 GitHub repo 当中。”


有部分资深人士认为 Python 的解释器及其 C 语言应用程序二进制接口(ABI)与应用程序协议接口(API)阻碍了 Python 在浏览器环境下的创新空间,van Rossum 也就此做出了回应。


“首先不能破坏稳定 ABI 的兼容性;其次不能破坏有限 API 的兼容性;第三不能破坏或拖慢极端用例。总之,代码的可维护性才是第一要务。”


但核心 Python 项目是不是真能在 3.11 版本中将速度顺利加倍?van Rossum 好像心里也没底,所以在说明中给自己留了点后路。



他写道,“我们还没法确定 2 倍速度的目标能不能实现。但乐观一点、好奇一点总没有错。”


而且他还大开脑洞,提出了在 Python 3.11 版本之后进一步将速度提高 5 倍的思路,并强调“我们必须保持旺盛的创造力。”


他提到,此次围绕性能展开的 Python 变更,将主要服务于那些“运行 CPU 密集型纯 Python 代码”的开发者以及采用内置 Python 的网站客户。


但对于大家使用 C 语言编写的代码(例如 NumPy 与 TensorFlow)、I/O 绑定代码、多线程代码以及算法代码,此次升级的效果就非常有限了。

2021-05-19 17:535383
用户头像
万佳 前InfoQ编辑

发布了 677 篇内容, 共 359.6 次阅读, 收获喜欢 1801 次。

关注

评论

发布
暂无评论
发现更多内容

冒烟测试与宇宙飞船

FunTester

PIRF-404

EchoZhou

English

天谋科技成为中国工业大数据创新发展联盟专业委员会副主任单位

Apache IoTDB

数业智能心大陆:数字化心理健康的未来

心大陆多智能体

智能体 AI大模型 心理健康 数字心理

蓝易云 - Unity中pivot和center的区别

百度搜索:蓝易云

蓝易云 - wininet,winhttp,xmlhttprequest,各版本区别

百度搜索:蓝易云

安吉尔:净水科技的“自转”革命,守护每一滴纯净

科技热闻

零信任持续高速发展,新场景下展现惊人潜力

芯盾时代

身份安全 数据安全 零信任

实战教程:利用淘宝API接口批量抓取商品列表数据

tbapi

淘宝商品列表数据接口 淘宝商品数据采集 淘宝商品列表数据采集 淘宝商品列表接口 淘宝商品API

LeetCode题解:290. 单词规律,哈希表,JavaScript,详细注释

Lee Chen

VMware vCenter Server 6.7 U3u (安全更新) - ESXi 集中管理软件

sysin

vSphere vmware vcenter esxi

ConsenSys 高管:别傻乎乎盯着 CT 了,能明说的大概不是 Alpha

TechubNews

即将揭晓:思迈特软件如何用AI Agent引领商业智能格局?

ToB行业头条

第三届中国 PM&PMO 前沿大会即将开幕!

新消费日报

客户案例 | 识货基于向量检索服务 Milvus 版搭建电商领域的向量数据检索平台

阿里云大数据AI技术

大数据 向量检索 Milvus

蓝易云 - Linux CentOS7 awk的反转功能

百度搜索:蓝易云

蓝易云 - Ubuntu搭建NFS服务

百度搜索:蓝易云

蓝易云 - Linux系统gdb调试常用命令

百度搜索:蓝易云

【YashanDB知识库】汇聚库23.1环境发生coredump

YashanDB

yashandb 崖山数据库 崖山DB

【YashanDB知识库】离线升级一章22.2不支持直接升级到23.1

YashanDB

yashandb 崖山数据库 崖山DB

VMware vCenter Server 8.0U3a 下载 - 集中式管理 vSphere 环境

sysin

vSphere vmware vcenter esxi

借助 NGINX Plus 优化企业环境中的 MQTT 部署

NGINX开源社区

开源 物联网 IoT mqtt nginx 开源版

天猫商品详情数据接口 | 天猫商品数据采集 | 天猫API接口指南

tbapi

天猫商品详情数据接口 天猫API 天猫商品数据采集 天猫商品详情采集

《Programming from the Ground Up》阅读笔记:p75-p87

codists

assembly 编程人

LeetCode题解:2073. 买票需要的时间,模拟,JavaScript,详细注释

Lee Chen

古画新韵——李逸弘国画作品赏析

科技热闻

架构升级:火山引擎VeDI实验平台服务能力进一步优化

新消费日报

LeetCode题解:1233. 删除子文件夹,排序,JavaScript,详细注释

Lee Chen

全能数据分析工具:ableau Desktop 2019 for Mac 中文激活版

你的猪会飞吗

Mac软件 mac软件下载

计算机视觉与图像分类:技术原理、应用与发展前景

天津汇柏科技有限公司

计算机视觉 图像分类

Python之父:让 Python 速度快2倍_编程语言_万佳_InfoQ精选文章