640?wx_fmt=gif

【CSDN 编者按】一直以来,C# 可以说是微软在编程语言方面最为显著的一大标签,甚至于知乎上都有「微软的所有程序员都用 C# 吗?」的提问。但时至今日,微软正在逐步地拥抱 Java、JavaScript 以及 Python。在本文中,来自微软的 Python 工程师 Steve Dower 即分享了微软是如何一步一步拥抱 Python 的。以宇宙第一 IDE Visual Studio 为例,在数年之前,微软的 Python 开发者可谓少之又少,且非常没有话语权,但今天,微软正在积极拥抱 Python 语言及社区,目前已经有许多产品及关键工具实现了支持,而微软也有着直接的 Python 工程师团队及文化。

640?wx_fmt=jpeg

作者 | Steve Dower,Python 软件工程师

译者 | 弯月

出品 | CSDN(ID:CSDNnews)

以下为译文:

Python 是微软未来云服务的重要组成部分,也是微软的服务和团队需要支持的基本语言之一,同时还是公司内外快速增长的数据科学和分析领域最受欢迎的选择。但是以前在微软 Python 并没有如此受欢迎的地位。

2010 年,我们几个做 Python 的人一直很低调,以防有人注意到他们可以将一些开发人员重新分配给自己的项目。我们的团队很小,都是从以前的工作中留下来的人,但是正在遭受一种“并非起源于这里”综合症的公司文化:Python 是一种属于其他人的语言,所以微软并不感兴趣。

在过去的八年中,这种情况发生了戏剧性的变化。现在许多微软的产品都开始包含 Python 支持,而有些最新的产品只支持 Python。我们的一些关键工具是用 Python 编写的,而且我们正在积极地投资语言和社区。

本篇文章是我的亲身故事。从 2011 年加入微软以来到今天,我有幸参与了一些重要的与 Python 相关的项目,并与许多团队合作建立了其他项目。这些日子以来,我通过微软做出了贡献,建立了 Python 的主体,并与社区合作让每个人都能更好地使用 Python。


640?wx_fmt=png

Visual Studio 中的 Python


在加入微软之前,我曾在澳大利亚的研究生院学习。当时我是 Visual Studio 爱好者,也是 Python 开发人员,2010 年,当看到最早发布的 Visual Studio 版的 Python 工具(简称 PVTS)时,我非常激动。在.NET 上运行的 Python 版本 IronPython 已经交给了社区,与 Dino Viehland 和 Shahrokh Mortazavi 合作的一个小团队被整合在一起,继续为微软产品构建 Python 支持。经过与法律团队数月的谈判,在 Apache 2.0 许可下在 CodePlex(微软以前的开源托管服务)上发布了 PTVS,并允许接受外部贡献。

作为一名 Python 开发人员,我有幸使用了第一版的 PTVS,并报告了一些无法正常工作的问题,还修复了一些问题。在我做了一个月左右的贡献以后,他们团队的经理问我是否有兴趣作为暑期实习生来微软。一年后,我成为了微软位于 Redmond 的全职成员。

由于我们的团队拥有最多的 Python 知识,因此我们自然成了在微软 Azure 上支持 Python 的大本营。最早面向 Python 的 Azure SDK 是在我们的团队中开发的,现在已经有五个人了,随着 Python 重要性的增加,我们将这项工作移交给了一个专门的团队。我们发现了 Laurent Mazuel 对该 SDK 的贡献,并很快招募了他,从那以后他一直是 Azure 管理 SDK 成功的核心人员——协调 100 多个 Azure 的服务生成一个连贯的库是一项很大的挑战!

在接下来的几年里,我们看到我们的项目在用户和实用性方面都有所增长。每个版本的发行都会在 Twitter、Reddit 和 Hacker News(尽管我们很少在这些地方宣传自己的产品)上产生很大的反响,许多人不相信微软真的在从事与 Python 有关的项目,包括我们自己的同事。我与旁边的一位开发人员在办公室共事了半年多,他才相信我们真的有一个 Python 团队。

每年我们的工程团队都会参加各种 Python 会议,展示与讨论我们的工具。然而在微软内部我们还不够大,无法获得营销团队的帮助,因此我们让工程师负责规划、人员配备、装修和运营展位。有时候我们会在活动期间冲到当地的印刷所,然后在最后一刻打印出更好的标志,或者到杂货店拿巧克力,因为我们没有任何真正的赠品。我们经常感觉自己是一家大公司内部的小型创业公司。

长期以来,公司内外的人都认为 PTVS 是一个社区项目,没有意识到我们是真正的微软。但是也有一些进步的迹象。其中一个是,我们找到了负责 visualstudio.com 网站的销售人员,让他在公司主页的语言列表中加入“Python”。不出所料,这引起了一些人的注意,而且是好的方面。我们看起来有点“官方”了。

当我们被添加到 Visual Studio 2015 安装程序时,事情又出现了下一个转折点。这个版本包括一个经过改进的“自定义”页面,该页面简化了核心选项并添加了许多“外部”组件。这是第一次 用户可以获得 Python 支持,而无需下载其他安装程序。

640?wx_fmt=png

Visual Studio 2015 安装程序,包含用于 Python 的工具

随着用户数量飙升,越来越多的人开始关注我们。我们不再低调行事了!PTVS 迁移到了 GitHub 上(https://github.com/Microsoft/PTVS),用于 Azure 的 Python SDK 比预期的更受欢迎,并且这些部分开始逐步落实,并开始了真正的文化变革。


640?wx_fmt=png

向 Python 贡献


同时,在 2015 年美国的 Python 大会上,我自愿帮助支持 Windows 上的 Python,这项提议被很高兴地批准了,经过多次与法律团队的访谈后,我很快成为了微软支持的 CPython 核心开发人员。

对于 Python 3.5 版本,我将 Python 从使用微软 Visual C ++ 2010 编译器和运行时移植到了最新的版本上,包括专门为 CPython 更改了我们的 C 运行时(例如 _set_thread_local_invalid_parameter_handler()函数)。我还重写了安装程序,修复了每个用户的安装并更改为正确安全的安装目录。最后,我还负责构建了 python.org 提供的所有 Python 的 Windows 版本。

640?wx_fmt=png

旧的 Python 安装程序以及 Python 3.5 的新安装程序

如今在微软,我们有五个核心 CPython 的提交者,我们所有人都有时间为该项目做出贡献。我们为兼容性、注册、花哨的新图标(example.png 等)、JIT 执行钩子以及更多正在进行的工作做出了贡献。受雇于大型公司并拥有自己的项目,可以帮助我们看到问题和情况,如果我们纯粹是志愿者,那么就不可能了。再加上领工资的开发时间,我们能够对 Python 社区产生令人满意的积极影响。


640?wx_fmt=png

见证文化的变化


当人们向你询问 Python 时,你就知道这家公司的文化开始发生变化了。我们认为,我们取得重大胜利的项目之一是跨平台的 Azure CLI。最初是用 Node.js 编写的,其背后的团队发现维护这么大的命令行工具越来越困难。在研究替代方法时,他们向我们询问了 Python 支持。

讨论过程大致如下:

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

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

CLI:“你们能否帮我们建立基本结构?只需几个命令,并告诉我们如何保留登录状态和配置文件?也许可以本地化?“

Python:“当然,很高兴。”

CLI:“你们需要多长时间的准备,我们才可以尝试这些东西?”

Python:“周三就可以准备好。”

CLI 感到十分惊讶,可能更多的是怀疑态度,但是他们接受了我们的提议,后来我做了一个样本。CLI 团队采用了我做的样本,并将其转变为世界上最大的 Python 命令行应用程序。现在 Knack 是高性能大规模命令行应用程序的 Python 框架,可以处理数千个命令和选项,同时支持参数补齐、提示、可扩展性、配置文件等。

640?wx_fmt=png

微软 Python 日的海报

虽然我们知道 Python 在微软比想象中更受欢迎,但有一件事真的让我们感到震惊。2014 年末, 我们组织了一个内部的“Python 日”,邀请了一些名人,预定了 100 个人的房间,并在办公室周围张贴海报。结果反响简直太不可思议了!最后那天我们转移到了 Redmond 主园区最大的房间,并为我们其他全球办事处设立了直播。总共有 1 千多人参加或观看了这次活动——大约占整个公司的 1%(包括所有工程、财务、人力资源和法律等来自各个岗位的人员)。

640?wx_fmt=png

Visual Studio 2017 安装程序,拥有 Python 工作负载

大约在同一时间,Visual Studio 2017 设计了一个全新的安装程序。 从过程的早期开始,Python 就被考虑在内——不仅仅是作为扩展的链接,而是作为真正的内置功能。但是我们仍然将我们的工作公开在 GitHub 上,并帮忙构建许多其他 Visual Studio 组件所使用的模型。PTVS 是最早的开源 Visual Studio 功能之一,但现在有很多,包括 Roslyn(C#和 Visual Basic 编译器)、MSBuild 和 Visual F#。

我们还采用了社区构建的 Visual Studio Code 扩展,雇用了它的开发人员 Don Jayamanne,并让他全职与其他开发人员一起工作。由于它始于开源,所以必须保持这种状态,我们的官方 GitHub 代码库也清楚地展示了我们在原始的代码上建立了分支。

640?wx_fmt=png

在 2019 年美国 Python 大会上,我们将第三次作为主要赞助商出席大会。与五年前不同,我们将拥有一个设计好的展台和大量的演示,我们将讨论我们依赖 Python 的所有方式,为 Python 做出贡献,并致力于支持 Python 以及使用 Python 的每个人。


640?wx_fmt=png

不再低调行事


2011 年,微软的 Python 确实行事非常低调。2018 年,我们走向了光明,我们为 Python 感到自豪,在我们的开发人员工具(如 Visual Studio 和 Visual Studio Code)中支持 Python,在 Azure Notebooks 中托管 Python,并使用它来构建 Azure CLI 等最终用户体验。我们聘请了五位核心 CPython 开发人员和许多其他贡献者,通过 NumFOCUS 和 PyData 积极支持开源数据科学,并定期赞助、主持和参加世界各地的 Python 活动。

虽然我不能说在过去八年(甚至更长时间!)中我们见证了很多进步,但是我很荣幸能够为此而努力,并帮助微软成为开源社区中更好的一员。

有关资源:

  • Microsoft 的 Python 的最新资源:

    https://visualstudio.microsoft.com/python-at-microsoft/

  • 在 Channel 9 或 Steve 的 Python 演讲中观看我们的 Python 视频内容:

    https://channel9.msdn.com/Search?term=python&lang-en=true

    http://stevedower.id.au/blog/speaking/

  • 在 GitHub 上的 Microsoft 和 Azure 主页中浏览我们的开源 Python 项目:

    https://github.com/Microsoft?utf8=%E2%9C%93&q=&type=&language=python

    https://github.com/Azure?utf8=%E2%9C%93&q=&type=&language=python

热 文 推 荐 

 去哪儿网裁员超百人;快播王欣晒新团队合照;腾讯联想推定制浏览器 | 极客头条

程序员面试 IT 公司,这些细节一定要注意!

 未来 10 年的科技圈,将会因这 10 项技术而颠覆!

程序员相亲实录:有人被小三,有人重逢初一同学

☞ 程序员求助:被领导强行要求写Bug该怎么办?网友的回答让我笑翻

☞ 20k~65k, 2018年最后一波热门技术岗位, 立刻投简历, 跳槽才是加薪的捷径

何恺明等最新突破:视频识别快慢结合,取得人体动作AVA数据集最佳水平

霸气!女程媛征男友的需求说明书!

 
 
 
 

print_r('点个好看吧!');
var_dump('点个好看吧!');
NSLog(@"点个好看吧!");
System.out.println("点个好看吧!");
console.log("点个好看吧!");
print("点个好看吧!");
printf("点个好看吧!\n");
cout << "点个好看吧!" << endl;
Console.WriteLine("点个好看吧!");
fmt.Println("点个好看吧!");
Response.Write("点个好看吧!");
alert("点个好看吧!")
echo "点个好看吧!"



640?wx_fmt=gif点击“阅读原文”,打开 CSDN App 阅读更贴心!

640?wx_fmt=png 喜欢就点击“好看”吧!
Logo

20年前,《新程序员》创刊时,我们的心愿是全面关注程序员成长,中国将拥有新一代世界级的程序员。20年后的今天,我们有了新的使命:助力中国IT技术人成长,成就一亿技术人!

更多推荐