当前位置: 首页 > 科技观察

微软GitHub收购npm或成最大赢家!开源世界的残酷竞争影响着1200万开发者

时间:2023-03-15 16:21:34 科技观察

GitHub于3月16日正式宣布已签署收购npm的协议,未来将帮助npm满足快速增长的JavaScript社区的需求。众所周知,GitHub已经成为微软的子公司,微软此举或将重新夺回其在开源社区和Web端开发领域的领先地位。npm完全用JavaScript编写,最初由IsaacZ.Schlueter开发。Isaac说他意识到了“模块管理不好”的问题,看到了PHP的PEAR和Perl的CPAN等软件的缺点,所以写了npm。npm入微软怀抱,新马甲GitHub称永远免费。GitHubCEO纳特·弗里德曼(NatFriedman)发表博文称,他已经签署了收购npm的协议。npm是JavaScript世界的重要组成部分。npm团队过去10年的工作,以及数以千计的开源开发人员和维护人员的贡献,使npm成为了超过130万个软件包的大本营,每月有750亿次下载。它们共同帮助JavaScript成为世界上最大的开发者生态系统。我们GitHub很自豪能成为npm故事的一部分,并帮助npm继续扩展新功能以满足快速增长的JavaScript社区的需求。对于每天使用公共npm注册表的1200万开发人员来说,npm始终可用且免费。交易完成后,我们的重点将是:投资镜像仓库基础设施和平台建设。JavaScript生态系统庞大且发展迅速。收购完成后,公司将进行必要的投资以确保npm快速、可靠且可扩展。提升核心体验。该公司将致力于改善开发人员和维护人员的日常体验,支持已经在npmv7CLI上开始的工作,它将保持免费和开源。与社区联系。公司将积极参与JavaScript社区,从开发者那里获取想法,并利用他们的力量帮助定义npm的未来。npm的创始人也感慨创业不易:早在2009年,在长时间没有休假后,我就辞掉了工作,希望看看当我释放自己的创造力时会发生什么。我写了一个包管理器。我创建npm是为了在一小群决定用JavaScript编写Web服务器的书呆子之间共享模块。从这个目标出发,npm缓慢而稳步地发展。我为这个项目付出了很多努力,也经历了太多的经济困难。希望继续为开源事业做出贡献自从GitHub在2009年向雅虎发表关于git和社交编程的演讲以来,我一直在密切关注GitHub的发展轨迹。自从我将开源作为一种生活方式的选择以来,它已经成为我生活中很重要的一部分。当我在旧金山的GitHub总部看到GitHubPackages测试版和演示时,我记得当时尴尬地脱口而出,“你为什么不试试买下我们?”我们对这个社区的承诺是在可预见的未来保持npm开放。镜像存储库是免费和开源的,并且会继续改进npmCLI。在GitHub,npm将得到世界上最大的开发者社区之一的额外支持和支持。微软在代码托管和JavaScript两个领域成为终极老大,开发者反响激烈。对于一家市值超过万亿元的公司,很多人讨厌也是正常的。套用一句老话:如果世界上只有两种公司,一种是被人骂的,一种是默默无闻的,那么被骂死的就是微软。在欧美,微软在很多人心目中的形象相当于《大富翁》游戏中的白胡子老富翁,一个“面善心恶”的奸商形象。Reddit上的一个帖子《Why do people hate on Microsoft so much and give Linux a pass for it's short comings?》获得了超过1,300个赞;在Slashdot上,在《Why Does Everyone Hate Microsoft?》下有超过1500条回复表达了对微软的仇恨。开发者是对微软不满的主力军,而在这些开发者中,开源社区是主力军。他们担心一向“眼里只有钱”的微软正在逐渐蚕食缺乏抵抗力的开源世界。来自Twitter用户@conrmahr的一条推文展示了当微软将npm纳入他们的口袋时会发生什么:现在,我可以编写一个部署到Azure的节点应用程序,它抽象出一个linkedin搜索api以显示在我的xbox仪表板上显示职位空缺,以及版本控制在GitHub中。微软和大富翁再次陷入困境。当然,世上没有无缘无故的爱,也没有无缘无故的恨。美国司法部在微软公司内部发现的一句话,Embrace,extend,andextinguish(拥抱、延伸和熄灭,最后一个词也是exterminate,或按extinguish译为extinction),曾暴露其真实意图巨人在前:第一步是拥抱广泛使用的技术标准和开源平台;第二步,植入自己的专利和基因;第三步,据为己有。回过头来仔细看看:微软对GitHub的收购引发了开源社区的恐慌浪潮。这一次,微软没有出面,而是要求GitHub接受npm。迄今为止,最大的开源社区属于微软;最大的js包管理器也属于微软。微软一举成为开源代码托管平台和JavaScript领域的终极老大!很臭,不是吗?npm与Node.js的前世今生Node.js是目前非常火热的Web服务器技术,但它的诞生经历却很奇特。浏览器技术每天都在进步,微软错失良机。我们都知道,在Netscape设计JavaScript的几个月内,JavaScript已经成为前端开发事实上的唯一标准。后来微软通过IE打败了Netscape,统一了桌面。结果,浏览器几年没有任何进展。(2001年的古老IE6至今仍在使用!)微软认为IE6浏览器已经非常完善,几乎没有改进的余地,因此解散了IE6开发团队!另一方面,谷歌认为支持现代网络应用程序的新一代浏览器才刚刚起步,特别是因为负责运行JavaScript的浏览器引擎的性能可以提高10倍。先是Mozilla借助壮烈牺牲的Netscape遗产在2002年推出了Firefox浏览器,随后Apple在2003年推出了基于开源KHTML浏览器的基于WebKit的Safari浏览器,但仅限于Mac平台。Google也看中了WebKit内核,因此推出了基于WebKit内核的Chrome浏览器。Google认为,要运行现代Web应用程序,浏览器必须具有非常强大的JavaScript引擎,因此Google开发了一种名为V8的高性能JavaScript引擎,该引擎在BSD许可下开源。C++太难用了。RyanDahl自己创建了Node.js语言。据说有一个歪果仁名叫莱恩·达尔。他的工作是用C/C++编写高性能Web服务。高性能,异步IO和事件驱动是基本原则,但是用C/C++写太痛苦了。于是这个人开始设想用高级语言开发Web服务。他评估了很多高级语言,发现虽然很多语言同时提供了同步IO和异步IO,但是开发者一旦使用了同步IO,就再也懒得写异步IO了,所以,最后,Ryan针对JavaScript。因为JavaScript是单线程执行的,根本无法进行同步IO操作,所以JavaScript的这个“缺陷”导致它只能使用异步IO。于是在2009年,Ryan正式推出了一个基于JavaScript语言和V8引擎的开源Web服务器项目,命名为Node.js。虽然名字很土,但是Node是第一次将JavaScript引入到后端服务器开发中,而世界上已经有无数的JavaScript开发者,所以Node一下子火了起来。代码依赖管理混乱。我想写一个包管理器。如果你开发了很多网站服务,依赖的代码越来越多,你会发现一件很麻烦的事情:去jQuery官网下载jQuery;去BootStrap官网下载BootStrap;去Underscore官网下载Underscore……让一些程序员看不下去。一个拥有三种美德(懒惰、急躁和傲慢)的程序员IsaacZ.Schlueter给出了一个解决方案:用一个工具把这些代码集中到Let'smanagetogether!开发者编写了大量的Node.js开源包,但Node.js缺少包管理器,于是RyanDahl和npm的作者一拍即合,抱抱取暖。最后,Node.js内置了npm。随着Node.js的流行,大家开始使用npm来分享JS代码,所以很多开源作者也将他们的包发布到npm。将你需要的包写入package.json,然后运行npminstall,npm会自动帮你安装。