由于机器学习的流行,Python 可以说已经是世界上最流行的编程语言,但它的最大弱点是性能:需要高端硬件,非常依赖显卡。
Python 的创造者Van Rossum 希望这种语言比其它语言更灵活,并下定心要让它比现在的性能快两倍。而 CPython(或 Core Python)的核心开发者或贡献者之一 Mark Shannon 制定了 2020 年的实施计划,决心将 CPython 速度提高5倍。Core Python 也是其他变体所基于的 Python 的参考实现,例如专注于数据科学的 Anaconda。
微软近日也发布了一篇名为 “A Team at Microsoft is Helping Make Python Faster” 的博客,详细介绍了该公司的 Faster CPython 团队。文章开头指出,近几年来 Python 的地位不断提高,包括 TIOBE 和 IEEE 都把该语言排在了榜单首位。然而,Python 的多功能性往往伴随着对其性能的批评。一些对性能敏感的软件通常是采用其他语言编写的,譬如 C 语言。近年来,大家也一直都在努力提高 Python 的 CPU 性能。在 2020 年,Python 核心开发者 Mark Shannon 起草了一个将 CPython 提速约 5 倍的实施计划;平均分为 4 个阶段实现,每个阶段将 CPython 的速度提高(大约)50%。但正如 Python 之父 Guido van Rossum 所言,“对于一个志愿者来说,这是一项难以完成的工作。从一开始,我的想法是我们应该尝试看看微软是否能雇用 Mark 以及一个小团队来支持他。这是一项重要的工作,只让一个人来承担的话任务实在太重了”。基于此,微软成立了一个包括 Guido 在内的、由 6 名工程师组成的团队;Guido 于 2020 年 11 月在退休一年后宣布再度复出,加入了微软开发者部门 (Developer Division),称为杰出工程师。Guido 表示,自己在组建这支专业团队时所寻求的是,“如果我们有不同背景和不同技能的人,作为一个团队,我们会做出更好的决定,我们会对一些意外的机遇持有更加开放的态度”。目前该团队已协助其他核心开发人员按上述计划采取行动,Python 3.11 已经在该语言的某些领域实现了 10-60% 的加速。根据介绍,除了拥有坚实的专业知识基础以及良好的协作外,团队成员间还有基于团队的贡献的一致性;“一个致力于 CPython 工作的团队最大的好处也许是一致的、集体的努力和持续的沟通”。成员间会定期开会讨论相关的工作进展,“我们所有六个人每周一都会见面。总是有很多东西可以讨论”。Guido 认为,了解彼此以及他们的协作工作为团队提供了优势,因为大家都了解彼此的沟通方式以及弱点和优势。而当一个团队有共同的愿景时,就更容易思考和规划未来。3.11 的大部分功能都是在团队组建之前提出的,后来该团队致力于将许多性能特性引入该版本,但也已经开始研究未来版本中的特性。Shannon 最初的 4 个阶段的计划还在继续发展中,预计会在未来的几年里持续优化。团队的工作也一直保持着透明性。另一方面,这一团队的发展遵循了微软对 Python 社区长期贡献的承诺。根据团队成员的说法,其目标是为 Python 社区 “add value”。“这是我们作为一个团队的主要目标,我认为这是非常重要的一点。我真正欣赏我们团队的一点是,每个人都明白这一点…… 我们真的更专注于实际工作,以使 Python 变得更好,并在技术领域之外帮助 Python 社区”。通过关注 Python 社区的需求,"每个人都会受益"。 对此,Reddit 上也有网友评论称,“所以微软做了谷歌做不到的事情”。相关链接:
https://devblogs.microsoft.com/python/python-311-faster-cpython-team/
https://www.reddit.com/r/programming/comments/yejstz/a_team_at_microsoft_is_helping_make_python_faster/