[控场AI]
· 5 分钟阅读· 2,862 字

微软开源之路:从TypeScript到VS Code的文化变革

微软开源之路:从TypeScript到VS Code的文化变革

微软用十余年从分发jQuery到开源VS Code,完成了一场由审批加速折射出的开源文化转型。

这篇文章由一位深度参与微软开源历程的资深工程师回顾讲述。微软的开源之路起步务实,最初仅是在ASP.NET中分发jQuery,随后因社区信任需要而主动开源TypeScript,耗时约六个月完成内部审批。真正标志文化转型的,是几年后开源Chakra JavaScript引擎时审批时间缩短了数个数量级——这一数字直观说明开源已从需要反复论证的例外演变为默认选项。此后.NET开源和VS Code从零以开源方式构建,代表了更成熟的「在开放中构建」策略,也印证了开发者工具在开源模式下更容易积累社区信任、形成生态正向循环的核心判断。

微软曾长期被视为开源世界的对立面,但过去十余年间,这家公司完成了一场深刻的转型。从最早在 ASP.NET 中分发 jQuery,到 TypeScript、Chakra、.NET 乃至 Visual Studio Code 的全面开源,微软内部经历的不只是技术选型的变化,更是一场彻底的文化重塑。一位深度参与其中的微软资深工程师,回顾了这段将核心开发者产品逐步推向开源社区的历程。

开源的起点:从分发 jQuery 到自建 TypeScript

微软的开源实践并非一开始就以「贡献代码」的姿态出现。真正的起点相当务实——在 ASP.NET 中支持并重新分发 jQuery。这一步并不涉及微软自己构建 jQuery,而只是将这个流行的前端库整合进自家框架,让开发者能够直接受益。

us just redistributing jQuery so that our developers could benefit from it

这种「借力」的方式,为后续更深层次的开源奠定了心理和组织基础。真正的转折点是 TypeScript 的发布。团队意识到,一门旨在被 JavaScript 社区广泛采纳的语言,必须是开源的——否则它无法获得社区的信任与贡献。语言的成功高度依赖生态,而封闭的技术很难在开放的 JavaScript 世界中立足。

TypeScript 于2012年首次公开发布,是微软设计的 JavaScript 超集语言,通过静态类型系统和编译期检查来提升大型项目的可维护性。它最终编译输出标准 JavaScript,可在任何支持 JS 的环境中运行。TypeScript 的开源决策具有战略意义:JavaScript 社区长期形成了开放、去中心化的文化,一门由大公司主导的私有语言很难获得社区信任,更难以被第三方框架和工具链集成。事实证明,开源策略是正确的——Angular、Vue、React 等主流框架先后将 TypeScript 纳入一等支持,TypeScript 也因此成为前端工程化的事实标准之一。

审批周期的变化:一场看不见的文化革命

将 TypeScript 推向开源的过程并不轻松。据这位工程师回忆,仅仅是说服公司高层(原文戏称为「muckety mucks」)批准开源,就花费了大约六个月时间,涉及大量关于「如何做」和「为什么做」的内部沟通。

something like that to talk about how and get the support from the muckety mucks high up

真正能体现文化变革的,不是某一个开源决定本身,而是审批所需时间的急剧缩短。仅仅几年之后,当团队决定开源 Chakra——即当年 Internet Explorer 背后的 JavaScript 引擎时,从提出到获批所耗费的时间,比 TypeScript 时期缩短了数个数量级。

the Chakra, the JavaScript engine that was behind Internet Explorer

这个对比极具说服力。同样是开源核心技术资产,决策效率的巨大差异,直观地反映出微软内部对开源态度的根本性转变:开源不再是一个需要层层论证的例外,而逐渐成为一种默认选项。

Chakra 是微软为 Internet Explorer 和早期 Edge 浏览器开发的 JavaScript 引擎,于2016年以 ChakraCore 的名义在 GitHub 上开源。JavaScript 引擎是浏览器的核心竞争力,负责解析、编译和执行 JS 代码,直接影响网页性能体验。在 Chakra 之前,谷歌的 V8(Chrome/Node.js)和 Mozilla 的 SpiderMonkey 是开源 JS 引擎的代表,而微软选择跟进开源,一方面是为了争取开发者社区的好感,另一方面也希望借助外部贡献提升引擎质量。ChakraCore 的开源标志着微软愿意将曾被视为核心竞争壁垒的底层技术公开,这在几年前几乎难以想象。

从 .NET 到 VS Code:现代开发者产品的构建逻辑

开源的势头并未止步于语言和引擎。随后,微软将 .NET 也带入开源世界,并且从一开始就以开源方式构建 Visual Studio Code。这两个案例代表了更成熟的开源思路——不是先闭门造车再对外开放,而是直接在公开环境中进行开发。

bringing .NET to open source, also building Visual Studio Code in open source

VS Code 的成功尤其印证了这一逻辑。它如今是全球最受欢迎的代码编辑器之一,其庞大的插件生态和社区活跃度,很大程度上得益于开放的构建模式。这位工程师总结道,现代开发者产品需要「在开放中构建」——当产品以开源方式打造时,它们更容易积累忠实的用户群,并且往往会成为更优秀的产品。

.NET 的开源历程同样是一次重大转变。微软于2014年宣布 .NET 开源,并在2016年发布跨平台的 .NET Core,打破了 .NET 长期以来仅限 Windows 的局限。这背后的推动力之一是云计算市场的竞争压力——Linux 是服务器端的主流操作系统,若 .NET 不能跨平台运行,微软就无法在云原生时代与 Java、Go 等竞争。Visual Studio Code 则完全从零以开源模式构建,基于 Electron 框架开发,代码库托管于 GitHub 并接受社区 PR。这种「天生开源」的开发模式让 VS Code 在发布后数年内积累了超过三万个插件,月活用户突破数千万,成为史上增长最快的开发者工具之一。

开源为何让产品更好

这段回顾背后隐含一个值得深思的产品哲学:开发者工具的价值,很大程度上来自于社区的信任、贡献与共建。对于面向开发者的产品而言,透明和开放不是营销噱头,而是产品竞争力的核心组成部分。

开源意味着开发者可以审查代码、提交修复、贡献功能,甚至基于自身需求进行扩展。这种双向互动让产品在真实场景中不断打磨,形成正向循环。微软从 jQuery 分发到 VS Code 开源的这条路径,本质上是从「把技术给开发者用」进化到「和开发者一起造技术」。

对于任何思考技术产品战略的团队来说,这段经历提供了一个清晰的参照:文化转变往往比技术决策更难,但一旦组织真正接纳开放的价值观,开源就会从需要反复审批的特例,变成推动产品成功的自然选择。

#微软开源#TypeScript开源#VS Code#.NET开源#Chakra引擎#开源文化#开发者工具
分享:

相关推荐