当前位置: 首页 > 科技观察

八年未见微软的Python是如何成功逆袭的?

时间:2023-03-15 00:33:13 科技观察

Python是微软未来云计算的重要组成部分。它是服务和团队需要支持的语言之一,也是微软内外快速发展的数据科学和分析领域的首选语言。但Python在微软似乎从未享有如此高的声誉。然而,过去八年发生了翻天覆地的变化。微软的很多产品现在都支持Python,有的最新产品只支持Python。微软的一些关键工具是用Python开发的,开发人员正在积极投资于该语言和社区。Python是微软未来云计算的重要组成部分。它是服务和团队需要支持的语言之一,也是微软内外快速发展的数据科学和分析领域的首选语言。但Python在微软似乎从未享有如此高的声誉。2010年,我们的一些Python程序员保持低调,以防有人注意到他们并将他们拉入他们的项目。他们很少而且相距甚远,是从以前的工作中继承下来的,但逐渐改变了一种饱受“非这里发明”综合症困扰的公司文化:Python属于别人,所以微软非常尊重它。没兴趣。然而,过去八年发生了翻天覆地的变化。微软的很多产品现在都支持Python,有的最新产品只支持Python。我们的一些关键工具是用Python开发的,我们正在积极投资语言和社区。从2011年加入公司至今,有幸参与了一些重要的Python项目。今天,我在Microsoft帮助发展Python,并与社区合作,让Python对每个人来说都更好。VisualStudio中的Python在加入微软之前,我只是澳大利亚的一名研究生,但我??已经是VisualStudio的忠实粉丝和Python开发人员。当Microsoft在2010年首次发布ToolsforVisualStudio(PTVS)时,我无比兴奋。.NET的Python版本IronPython已移交给社区,由DinoViehland和ShahrokhMortazavi组成的小团队继续为Microsoft产品提供Python支持。经过与法律团队几个月的谈判,PTVS在Apache2.0许可下托管在CodePlex(微软以前的开源托管服务)上,现在正在接受外部贡献。作为一名Python开发人员,我喜欢使用最早的PTVS版本并帮助查找和修复一些错误。一个多月后,PTVS的开发经理问我是否有兴趣以暑期实习生的身份加入微软。一年后,我成功成为雷德蒙德办公室团队的全职员工。由于我们的团队最了解Python,因此成为为MicrosoftAzure提供Python支持的团队是理所当然的。用于Python的AzureSDK的初始版本是由我们的团队开发的,现在有五个人,随着Python变得越来越重要,我们已经能够将这项工作转移给一个专门的团队。然后我们请来了LaurentMazuel,他是使Azure管理SDK取得成功的关键人物——能够协调100多个Azure服务并生成一个统一的库绝对是一个巨大的挑战!在接下来的几年里,我们看到我们的项目在用户和效用方面都经历了显着增长。每个新版本都会在Twitter、Reddit和HackerNews上引起关注和讨论,许多人不相信微软正在用Python做些什么,包括我们自己的同事。我办公室隔壁的一位开发同事直到半年后才意识到我们实际上是一个Python团队。我们的工程团队每年都会参加各种Python会议,展示我们开发的工具。但我们在微软内部的实力不足以让营销团队加入,所以我们让工程师负责规划、人员配备、装修和展台运营。有时我们会冲到当地的印刷店,在最后一刻打印出更好看的标志,或者跑到杂货店买巧克力,因为我们真的没有什么好东西可以拿到手。我们常常觉得自己是一家大公司里的一家小创业公司!PyConUS2014微软展台长期以来,公司内外的人都认为PTVS是一个社区项目,却没有意识到我们也属于微软。不过,有一些迹象表明情况正在好转。例如,我们找到负责visualstudio.com的营销人员,让他在首页的语言列表中添加“Python”。毫不奇怪,这引起了一些人的注意,我们开始看起来更“官方”了。后来我们开发的工具加入了VisualStudio2015安装器,这也是一个转折点。此版本包括一个改进的“自定义”页面,该页面简化了核心选项并添加了许多“外部”组件。有史以来第一次,用户无需下载Python安装程序即可检查Python。随着我们的用户数量激增,包含Python工具的VisualStudio2015安装程序越来越受欢迎。我们不再低调!PTVS迁移到GitHub,Azure的PythonSDK变得比预期更受欢迎,这一切都开始真正引发微软的文化变革。成为Python贡献者在PyConUS2015上,我自愿为Windows贡献Python支持,这个提议很快被接受,在与法律团队进行多次接触后,我很快成为了核心CPython开发人员。对于Python3.5,我将Python使用的VisualC++2010编译器和运行时迁移到最新版本,其中包括专门针对CPython的更改。我还重写了安装程序,修复了安装方法,并将安装目录更改为更安全的目录。***,我开始研究python.org上列出的所有Windows版本的Python。Python3.5的旧Python安装程序和新安装程序现在我们有五个CPython核心提交者和时间授权,我们可以花时间在这个项目上。我们正在致力于兼容性改进、注册、精美的新图标、JIT挂钩以及更多正在进行的工作。受雇于一家大公司并拥有我们自己的项目有助于我们看到纯志愿者看不到的问题。我们付出的时间是有偿的,所以我们更有能力对Python社区产生令人满意的积极影响。处于文化变革之中当有人来找你并向你询问Python而不是你告诉他们时,你知道你公司的文化正在发生变化。我们认为跨平台AzureCLI是我们的一大胜利。它最初是在Node.js中开发的,其开发团队发现维护如此庞大的命令行工具越来越困难。他们在研究替代方案时向我们寻求帮助。讨论是这样进行的:CLI团队:“我们不了解Python,但它似乎是一个可扩展命令行工具的不错选择”。Python团队:“是的,这将是一个不错的选择。”CLI团队:“你们能帮我们设置基本结构吗?只需几条命令,并告诉我们如何保留登录状态和配置文件?以及本地化?”Python团队:“当然,我们很乐意”。CLI团队:“你需要多少周?”Python团队:“它将在周三准备好”。CLI团队感到惊讶,也许还有点怀疑。他们最终接受了我们的提议,我为他们提供了一个示例:https://github.com/Azure/azure-cli/tree/549f1be8ee881fb309caf3559d9232d3191af81d。AzureCLI团队使用了我们的东西并将它们变成了世界上最好的Python命令行应用程序。Knack(https://github.com/Microsoft/knack)现在是一个Python框架,致力于构建高性能的大型命令行应用程序,可以处理数千个命令和选项,同时支持参数完成、提示和可扩展属性、配置文件等微软的PythonDay海报虽然我们知道Python在微软已经非常流行,但有一件事仍然让我们感到惊讶。2014年底,我们组织了一个内部“Python日”,邀请了一些名人,预订了100人的房间,并在办公室周围张贴了海报。当那一天到来时,由于涉及的人数众多,我们不得不搬到雷德蒙德地区最好的房间之一,并开始为全球其他办事处进行直播。超过1,000人参加或观看了此次活动——约占整个公司的1%(包括所有工程、财务、人力资源和法务人员)。带有Python工作负载的VisualStudio2017安装程序同时,VisualStudio2017获得了一个全新的安装程序。我们从一开始就被包括在内——不仅仅是作为一个扩展链接,而是作为一个真正的内置功能。但是,我们仍然在GitHub上发布我们的工作,我们的模型用于其他VisualStudio组件。PTVS是最早的开源VisualStudio功能之一,现在还有更多的开源功能,包括Roslyn(C#和VisualBasic编译器)、MSBuild和VisualF#等。我们还采用了社区为VisualStudioCode开发的Python扩展,并聘请了其开发人员DonJayamanne与其他开发人员一起全职工作。因为它一开始是开源的,所以它必须继续这样,我们的官方GitHub存储库清楚地表明我们是从原始分支分支出来的。我们是PyConUS2019的主要赞助商(第三次),因此您可以期待在那里见到我们。与五年前不同,我们将有一个更好的展台,有很多演示。我们将讲述我们与Python的故事,我们如何依赖Python,我们如何为Python做出贡献,以及我们如何支持使用Python的用户。不再低调2011年,Python在微软非常低调。而在2018年,我们为Python感到自豪。您可以在我们的开发人员工具(如VisualStudio和VisualStudioCode)中看到Python,我们将它托管在AzureNotebook中,使用它来构建AzureCLI等等。我们聘请了五名核心CPython开发人员,以及许多其他通过NumFOCUS和PyData积极支持开源数据科学的贡献者。我们还定期赞助、主办和参加世界各地的Python活动。虽然我不能说出我们在过去八年中取得的所有进展,但我很荣幸能够参与其中并帮助Microsoft成为开源社区中更好的参与者。