AI 前线导读:Python 是微软未来云计算的一个重要组成部分,是服务和团队需要支持的语言之一,也是微软公司内外快速增长的数据科学和分析领域最受欢迎的语言。但一直以来,Python 在微软似乎从来没有享有如此高的盛誉。
然而,过去八年却发生了戏剧性的变化。微软的很多产品现在都开始支持 Python,还有一些最新的产品只支持 Python。微软的一些关键工具是用 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 大会,在大会上展示我们开发的工具。但我们在微软内部还不够强大,还无法获得营销团队的支持,所以我们让工程师负责规划、人员配备、装修和运营展位。有时候,我们会冲到当地的印刷店,以便在最后一刻打印出更好看的标志,或者跑到杂货店购买巧克力,因为我们真的没有什么可以拿出手的好东西。我们经常感觉自己是一家存活在大公司内的小型创业公司!

PyCon US 2014 微软展台

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

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

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 安装程序以及 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 Day 海报

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

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,如何在八年内逆袭成功?相关推荐

  1. 每日一题.PYTHON面向对象编写模拟人生屌丝逆袭游戏(登录类/角色类/场景类)?

    文件结构: [root@xmdevops xmdevops_limanman]# tree |grep -v ".pyc" |-- main.py                 ...

  2. 如何自学python-小白是如何自学Python逆袭成功的?

    1. 寻找一个导师 导师可以降低你加入一个新行业的成本,帮助你熟悉环境和行业规则,也会鼓励你完成心理方面的转变. 2. 建立新的社交网络 过去的人脉关系会阻碍你的转行,因为他们是以过去对你的认知来评价 ...

  3. Python编程零基础如何逆袭成为爬虫实战高手

    网络爬虫是一种互联网机器人,它通过爬取互联网上网站的内容来工作.它是用计算机语言编写的程序或脚本,用于自动从Internet上获取任何信息或数据.机器人扫描并抓取每个所需页面上的某些信息,直到处理完所 ...

  4. Python小辣鸡的逆袭第六章之字典

    第六章 字典 6.1 简单字典示例 字典格式 eg:alien_={'color':'green','points':'5'} 花括号括起来,由键-值对构成,键与值之间用冒号隔开,键-值对之间用逗号隔 ...

  5. Python编程零基础如何逆袭成为爬虫实战高手之《WIFI破解》(甩万能钥匙十条街)爆赞爆赞~

    导语 Hello,大家好呀!我是木木子吖- 一个集美貌幽默风趣善良可爱并努力码代码的程序媛一枚. 听说关注我的人会一夜暴富发大财哦~ (哇哇哇 这真的爱

  6. 从护士“逆袭”微软中国总裁,打工女皇消失20年后重出江湖回应2亿年薪传闻...

    最近前微软中国总裁吴士宏在消失20年后重出江湖,引发网络热议,当年离开微软之后她加盟了TCL集团,被曝年薪高达2亿元,现在这事也得到了吴士宏本人的澄清,表示这只是一些人的炒作而已. 10月14日,在接 ...

  7. 微软Office 2013:会受企业待见的最佳新功能

    微软对其久负盛名的 Office套件进行了一次重大的改动,新版本--现处于测试之中,定于明年推出--拥有许多新的.经过改进的功能,应该会吸引IT专业人员和知识员工. 这一点适用于新款Office的两个 ...

  8. 王朝的更迭:那个最不受微软员工待见的高管走了

    西雅图IT圈:seattleit [今日作者]Dexter 读书巨慢理事会会长 Reorg -- 一个让微软员工不寒而栗的词 业界公认把Reorg(业务重组)玩得最6的,非微软莫属.没办法,公司大员工 ...

  9. 微软如何开始拥抱Python?

    Python,是微软公司未来云业务体系的重要组成部分,属于服务与团队支持工作中需要使用的基础语言之一,同时更是公司快速增长的数据科学与分析领域内最受欢迎的语言选项.然而,Python早期在微软公司显然 ...

最新文章

  1. uwb定位算法c++代码_一指连小米UWB技术发布!手机一指,就能操控
  2. linux mysql定时备份并压缩
  3. 关于div的outline-offset属性和focus事件的接收
  4. 虚函数与纯虚函数区别
  5. mongod: error while loading shared libraries: libcrypto.so.1.0.0: cannot open shared object file:
  6. ClassLoader类加载器简介
  7. SpingMVC之拦截器
  8. linux虚拟机怎么恢复出厂设置_Vmware安装linux后一些初始化配置
  9. mysql必知必会pdf脚本之家,sql必知必会pdf 下载
  10. ASP.NET Web程序设计 第五章 页面状态管理
  11. 安装ie11提示计算机安装了更新的版本,离线安装IE11浏览器提示quot;获取更新quot;解决方法 - 191路由网...
  12. echart的基本使用方法
  13. ios上架应用在苹果商店搜不到
  14. uva 232 - Crossword Answers(纵横迷宫)
  15. 研磨设计模式之简单工厂模式-3
  16. sql 语句 将查询结果中数字等标示转成汉字
  17. linux企业级应用实战运维和调优资源,Linux企业级应用实战、运维和调优
  18. php jwt设置有效期,07-如何设置JWT的过期时间
  19. 壁挂炉洗澡怎么调水温_松鼠洗澡水温-小松鼠壁挂炉怎么调水温 热死人!
  20. [转]JQuery Mobile 手机显示页面偏小_se7en3_新浪博客

热门文章

  1. OPNsense 18.7.X汉化包发布!
  2. 我为NET狂-----大前端专帖
  3. ync 小技巧-14-为用户启用统一的联系人存储库-Lync-无联系人
  4. 第4章 与缓冲区有关的函数
  5. StartSSL免费SSL证书申请和账户注册完整过程
  6. 根文件系统使用登录模式
  7. KindEditorckplayer的简单结合
  8. 51CTO,什么情况?
  9. 一分钟了解 Matlab求两个矩阵的相关程度corr2
  10. C/C++运行时库 解释