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包管理器。