不受微软待见的Python,如何在八年内逆袭成功?

Python是微软未来云计算的一个重要组成部分,是服务和团队需要支持的语言之一,也是微软公司内外快速增长的数据科学和分析领域最受欢迎的语言。但一直以来,Python在微软似乎从来没有享有如此高的盛誉。

2010年,我们的一些Python程序员非常低调,以防有人注意到他们,把他们拉入自己的项目。他们为数不多,是从之前的工作中留存下来的,但却一点一点地改变患上“非我原创(not invented here)”综合症的公司文化:Python属于其他人,所以微软对它不感兴趣。

然而,过去八年却发生了戏剧性的变化。微软的很多产品现在都开始支持Python,还有一些最新的产品只支持Python。我们的一些关键工具是用Python开发的,而且我们也正在积极地在这门语言和社区上投入。

从2011年加入公司到现在,我有幸参与了一些重要的Python项目。现在,我在为Python在微软的发展壮大贡献着一己之力,并与社区合作,让每个人都能更好地使用Python。

Visual Studio中的Python

在加入微软之前,我还只是澳大利亚的一名研究生,不过我当时已经是Visual Studio的铁杆粉丝和Python开发者。微软在2010年第一次发布Visual Studio(PTVS)Python工具时,我感到无比兴奋。.NET的Python版本IronPython已经交给了社区,Dino Viehland和Shahrokh Mortazavi组成的一个小团队继续为微软产品提供Python支持。经过与法律团队数月的谈判,PTVS基于Apache 2.0许可托管在CodePlex(微软的前开源托管服务)上,并开始接受外部的贡献。

作为一名Python开发者,我很高兴能够使用最早的PTVS版本,并帮忙找到和解决了一些bug。一个多月之后,PTVS开发经理问我是否有兴趣作为暑期实习生加入微软。一年后,我顺利成为雷德蒙德办公室团队的一名全职员工。

由于我们的团队具备最丰富的Python知识,所以理所当然地成为为微软Azure提供Python支持的团队。最初版本的Azure SDK for Python是由我们的团队开发的,这个团队现在有五个人,随着Python重要性的提升,我们已经能够将这项工作交给专门的团队。后来,我们招来了Laurent Mazuel,他是让Azure Management SDK取得成功的核心人物——能够协调100多个Azure服务并生成一个同一的库绝对是一个巨大的挑战!

在接下来的几年里,我们看到我们的项目在用户和实用性方面都经历了显著的增长。每次发布新版本都会在Twitter、Reddit和Hacker News引起人们的关注和讨论,很多人不相信微软正在做与Python有关的东西,包括我们自己的同事在内。我办公室旁边的一位开发同事直到半年后才知道到我们实际上是一个Python团队。

我们的工程团队每年都会参加各种Python大会,在大会上展示我们开发的工具。但我们在微软内部还不够强大,还无法获得营销团队的支持,所以我们让工程师负责规划、人员配备、装修和运营展位。有时候,我们会冲到当地的印刷店,以便在最后一刻打印出更好看的标志,或者跑到杂货店购买巧克力,因为我们真的没有什么可以拿出手的好东西。我们经常感觉自己是一家存活在大公司内的小型创业公司!

不受微软待见的Python,如何在八年内逆袭成功?_第1张图片PyCon US 2014微软展台

一直以来,公司内外的人都认为PTVS是一个社区项目,但却没有意识到我们其实也是属于微软的。不过也有一些迹象表明,这种情况有在改善。比如,我们找到负责visualstudio.com的市场人员,并让他在主页的语言列表中加入“Python”。不出所料,这引起了一些人的注意,我们开始看起来更“官方”了。

后来,我们开发的工具被添加到Visual Studio 2015安装程序中,这也是一个转折点。这个版本包含了一个改进过的“自定义”页面,其中简化了核心选项,并添加了很多“外部”组件。用户可以勾选Python,而无需下载Python安装程序,这也是有史以来的第一次。

不受微软待见的Python,如何在八年内逆袭成功?_第2张图片Visual Studio 2015安装程序,包含了Python工具

随着我们的用户数量的飙升,引起了越来越多人的关注。我们不再低调了!PTVS迁移到了GitHub上,Python SDK for Azure比预期的更受欢迎,而这一切开始真正引领微软的文化变革。

成为Python贡献者

在PyCon US 2015大会上,我自愿为Windows提供Python支持,这个提议很快被接受,经过多次与法律团队的交涉后,我很快成为CPython的核心开发者。

对于Python 3.5,我将Python使用的Visual C++ 2010编译器和运行时迁移到最新版本,其中包括专门针对CPython做出的变更。我还重写了安装程序,修复了安装方式,并将安装目录改到了更为安全的目录。最后,我开始负责开发python.org上列出的所有Windows版本的Python。

不受微软待见的Python,如何在八年内逆袭成功?_第3张图片旧的Python安装程序以及Python 3.5的新安装程序

现在,我们有五个CPython核心提交者,并且获得了时间上的授权,我们可以花时间在这个项目上。我们致力于改进兼容性、注册、花哨的新图标、JIT钩子以及其他更多正在进行中的工作。受雇于大型公司并拥有自己的项目,这样有助于我们看到一些问题,而这些问题是纯粹的志愿者看不到的。我们付出的时间是有偿的,因此更加能够给Python社区带来令人满意的积极影响。

身处文化变革之中

当有人走过来问你有关Python的事情而不是你主动去告诉他们时,你就知道,公司的文化正在发生变革。我们认为跨平台Azure CLI是我们的一个主要胜利。它最初用Node.js开发,后来,它的开发团队发现维护这么大的命令行工具越来越困难。在研究替代方案时,他们向我们寻求帮助。

讨论过程大致如下:

CLI团队:“我们并不了解Python,但对于可扩展的命令行工具来说,Python似乎是一个不错的选择”。

Python团队:“是的,它会是一个不错的选择。”

CLI团队:“你们能否帮我们建立基本的结构?只需要几个命令,并告诉我们如何保留登录状态和配置文件?还有本地化?”

Python团队:“当然,我们很乐意”。

CLI团队:“你们需要几个礼拜时间?”

Python团队:“礼拜三之前就可以准备好了”。

CLI团队感到很惊讶,或许还有几分怀疑。他们最终接受了我们的提议,我还为他们提供了一个示例:

https://github.com/Azure/azure-cli/tree/549f1be8ee881fb309caf3559d9232d3191af81d。

Azure CLI团队采用了我们的东西,并将它们变成了世界上最大的Python命令行应用程序。

Knack(https://github.com/Microsoft/knack) 现在是专门用于构建高性能大规模命令行应用程序的Python框架,可以处理数千个命令和选项,同时支持参数完成、提示、可扩展性、配置文件,等等。

不受微软待见的Python,如何在八年内逆袭成功?_第4张图片微软的Python Day海报

虽然我们自己知道Python在微软其实已经很受欢迎,但有一件事还是让我们感到很惊讶。2014年末,我们组织了一个内部的“Python Day”,邀请了一些名人,预订了一个可以容纳100人的房间,并在办公室周围张贴海报。当这一天到来时,因为参与的人太多,我们不得不换到雷德蒙德区最大的房间之一,并为其他全球办事处开启了在线直播。有超过1000人参加或观看了此次活动——约占整个公司的1%(包括所有工程人员、财务人员、人力资源和法律人员)。

不受微软待见的Python,如何在八年内逆袭成功?_第5张图片Visual Studio 2017安装程序,提供了Python工作负载

与此同时,Visual Studio 2017换上了全新的安装程序。我们从一开始就被包含在内——不只是一个扩展链接,而是作为真正的内置功能。不过,我们仍然将我们的工作公开在GitHub上,我们的模型也被用在其他的Visual Studio组件中。PTVS是最早的开源Visual Studio功能之一,现在有更多的开源功能,包括Roslyn(C#和Visual Basic编译器)、MSBuild和Visual F#等。

我们还采用了由社区开发的Visual Studio Code Python扩展,并招来了它的开发者Don Jayamanne,让他全职与其他开发者一起工作。因为它一开始是开源的,所以必须继续保持这种状态,我们的官方GitHub存储库清楚地表明我们是从原始分支fork出来的。

我们是PyCon US 2019的关键赞助商(这已经是第三次了),所以你们可以期待在那里见到我们。与五年前不同,我们将拥有一个更好的展台,并提供大量的演示。我们将介绍我们与Python的故事,比如我们如何依赖Python,如何为Python贡献我们的力量,如何为使用Python的用户提供支持。

不再低调

2011年,Python在微软非常低调。而到了2018年,我们为Python感到自豪。在我们的开发者工具(如Visual Studio和Visual Studio Code)中都能看到Python的身影,我们在Azure Notebook中托管它,并使用它来构建Azure CLI,等等。我们聘请了五位核心CPython开发者,还有很多其他贡献者,他们通过NumFOCUS和PyData积极支持开源数据科学。我们还定期赞助、主持和参加世界各地的Python活动。

虽然我不能代表我们在过去八年中所取得的所有进展,但我很荣幸能够为此而努力,并帮助微软成为更好的开源社区参与者。

英文原文:

https://medium.com/microsoft-open-source-stories/python-at-microsoft-flying-under-the-radar-eabbdebe4fb0

你可能感兴趣的:(不受微软待见的Python,如何在八年内逆袭成功?)