Microsoft 最近的动作和言论表明该公司的关注点已经重新回到了通过内部技术的开源和对已有标准的支持向更广泛的开发社区做贡献。Microsoft 在过去一段时间内一直在致力于 Python Tools for Visual Studio (PTVS)的研发,同时还发布了支持 Node.js 的 Visual Studio 工具( NTVS )。
InfoQ 最近有机会与 Microsoft 的合作伙伴项目经理 Shahrokh Mortazavi 一起讨论已发布的这些工具以及他们未来的计划。Mortazavi 在 Node 和 Python 工具组里面工作,这是开发部的一部分。下面是谈话的具体内容。
InfoQ: 整个开发部的工作是什么?
Shahrokh:整个开发部的工作是全面负责开发者需要的技术和服务。在开发部中,我们组的任务是探索新兴的或者重新热门的技术,例如 Node.js 和 Python。
InfoQ: Python 工具集已经出现很长一段时间了,人们对它的反应如何?
Shahrokh: 非常好。在 Codeplex 上 PTVS 的下载量现在处于第一位。Python 本来就已经被很多工业领域所使用。Reddit、Youtube、Dropbox 等流行的网站都广泛地使用了这门语言。有很多财富 500 强的企业也使用了 Python。某个主要金融机构的一个项目有 3000 名开发人员和超过 1600 万行 Python 代码,这是我们了解到的最大的 Python 项目之一。Node.js 也是这种状态,eBay、Walmart、Paypal 和 Azure 等公司或平台都在使用它。
InfoQ: 与其他主要的平台(Linux 和 Mac OS X)相比,Python 在 Windows 平台上的流行程度如何?
Shahrokh: 在 Windows 平台上非常流行。仅在 Python.org 这一网站上 CPython 每年就有超过 2100 万次下载。Python 发行版的前两名告诉我们他们从 Windows 平台上获得的收益比从 Linux 和 Mac 平台上获得的总和还要多。
InfoQ: 我并不知道这一点——真是令人印象深刻。那么你认为读者应该注意哪些特性呢?
Shahrokh: 混合模式调试是一个非常令人兴奋的特性。它让你能够一起调试 Python 和 C++ 代码。该功能结合了调用栈,因此你能够在任何一门语言中设置端点并在 Python 和本地代码之间切换。有一部分用户告诉我们他们安装 Windows 的目的就是为了能够使用 PTVS 中的这个功能。
另一个非常好的特性是:可以在 Visual Studio 中开发 Python 但是部署到远程 Linux 服务器上并调试——无论这个实例是在 Azure 中还是在传统的独立环境中。集成的 IPython REPL 和内联图像也非常不错。
InfoQ: 对于 PTVS 和 NTVS 还有哪些人们可能不知道的事情?
Shahrokh:除了良好的调试、智能感知、配置等功能所带来的生产效率的提升之外,这些项目还有一个作用:那就是它们为那些想要开发自己的 Visual Studio 插件的团队提供了大量资源。无论他们是要集成一门新的语言,还是要分支项目系统,这些项目都具有非常好的借鉴意义。
InfoQ: 你是如何决定要支持哪门语言的?你们有计划将其他语言加入到 Python 和 Node.js 中么?
Shahrokh: 要为某门语言提供工具的时候,我们会考虑很多因素:行业趋势、客户要求等。我们首先会考虑为那些 Azure 支持或者其他 Microsoft 项目(Skype、Bing 等)使用的语言提供增强工具。
InfoQ: 考虑到这些项目是开源的,你们是否能够频繁地收到来自于外部开发者的补丁或者贡献?
Shahrokh:我们发现外部公司更趋向于根据具体的情况对补丁或者更新进行处理。如果他们认为这个补丁可能获得专利产权那么他们便不会将其共享出来,因为他们认为自己可以从中获得竞争优势。但是如果这种变化或者提升仅仅是一般的问题,那么他们便会将其提供出来。例如,Eve Online 给我们发送了一个能够让 PTVS 支持 Stackless Python 的补丁。Clickberry 提供了很多 NTVS 补丁。Red Gate 贡献了 NPM 包管理器。
再次感谢 Shahrokh 能够抽出时间来与我们一起探讨 PTVS 和 NTVS。
评论