北京时间今天(3月18日)凌晨,GitHub 首席执行官 Nat Friedman 宣布 GitHub 已签署收购 npm 的协议,之后将致力于建立可靠的注册表基础架构并改善核心体验、提高代码的安全性。
交易完成后,GitHub 的工作重点包括:
- 为 registry 服务提供更好的基础设施和平台,保证 npm 更快、更可靠以及拥有更强大的伸缩性
- 改进核心体验
- 保持与 JavaScript 社区的积极互动
未来会将 npm 集成至 GitHub 以提升开源软件供应链的安全性,并让用户能够跟踪从 GitHub PR 到修复问题的 npm 软件包版本的更改。
在 GitHub 收购 npm 后:
- 将继续为使用 npm Pro, Teams 和 Enterprise 托管私有 registry 的付费客户提供支持
- 未来会将 npm 付费客户的私有 npm 软件包迁移至 GitHub Packages,以使 npm 专注于成为 JavaScript 的大型 public registry
关于 npm 包管理器
npm 全拼为 Node Package Manager,是 JavaScript/Node 软件包管理器。截至目前,npm 已经为超过 1200 万名开发者提供了超过 130 万个软件包,这些软件包每个月一共要被下载 750 亿次。
大部分的开发者都知道 Node.js 的爆火离不开 npm,其实 npm 之所以能发展到如今的规模,也离不开 Node.js。
Node.js 刚出世时,因为缺少一个单独的包管理器,于是其作者和 npm 的作者一拍即合,在 Node.js 中内置了 npm。
后来随着 Node.js 的火爆,大家开始用 npm 来共享 JavaScript 代码了,于是 jQuery 作者也将 jQuery 发布到 npm 了。随着 npm 的影响力日益增大,用 npm 来分享代码已经成了前端工程师的标配之一。
但因其开源的业务形态,再加上非职业化的企业运营,从创办起就不断陷入财务危机。在近一年中,该公司还频繁曝出丑闻,npm 的管理层在过去一年中也发生了数次变化。npm 的前员工和社区开发人员因对公司不满,还创建了一个 npm 的竞品。
面对各种层面的危机与风险,加入 GitHub 可能是 npm 最好的解决方案之一了。npm 的创始人 Schlueter 在官方博客中也表示,“作为一家初创公司,我们有难以实现的大梦想。这是实现这些梦想的机会。”
而对 GitHub 和微软来说,收购 npm 更多的则是战略层面的意义。
微软的战略意义
GitHub 收购 npm 的消息对整个 JavaScript 和前端开发人员都是友好的,背靠大树好乘凉,有钱好办事的道理谁都懂。
但对于 GitHub 的这一收购行为,有开发者评论道:微软接管 JavaScript 的目标就快实现了。
- 2018 年,微软以 75 亿美元的价格收购了 GitHub,接管了技术领域最大的开源生态系统
- 2019 年 11 月,微软推出了 web 版 VS Code,占领了大部分开发者的机器
- 2020 年收购 npm,则拥有了通过 TypeScript 改变开发者使用 JavaScript 方式的能力
不管是流行的开发工具栈中,从托管平台、包管理工具、 IDE(Editor),到编程语言等,微软都已取得了巨大的优势。近几年,微软一直在执行一个云优先的战略,致力于通过技术路线将 Azure 打造成全球领先的综合云服务。此次收购 npm ,意在将这些工具全部与 Azure 打通,无缝集成。
对于 GitHub 的这一收购行为,有开发者评论道:
微软通过收购 GitHub 接管了整个开源生态系统,通过收购 npm 接管了整个 JavaScript 生态系统,通过 Visual Studio Code 占领了大部分开发者的机器,通过 TypeScript 改变了开发者使用 JavaScript 的方式。因此可以认为,JavaScript 现在基本上是属于微软的。
另外,网上还有另一种担忧。
早在 2018 年 5 月 12 日,开源倡导者、Eclipse 基金会主席 Mike Milinkovich 批评微软正在垄断开源工具。例如曾经出现的 Facebook 修改 React 开源协议的事件。Mike 认为,GitHub 和 VS Code 已经代表了一种很大的聚集度了,微软又开始涉足软件包管理服务这块蛋糕,那么开源开发者使用的路径将全都指向微软。
无论如何,在 GitHub 收购 npm 后,微软在构建 JavaScript 生态将更进一步。