微软方面发布了一篇名为 “A Team at Microsoft is Helping Make Python Faster” 的博客,详细介绍了该公司的 Faster CPython 团队。
文章开头指出,近几年来 Python 的地位不断提高,包括 TIOBE 和 IEEE 都把该语言排在了榜单首位。然而,Python 的多功能性往往伴随着对其性能的批评。一些对性能敏感的软件通常是采用其他语言编写的,譬如 C 语言。近年来,大家也一直都在努力提高 Python 的 CPU 性能。
在 2020 年,核心开发者 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/