CNode

如何看待 GitHub 收购 NPM?

分享
Ii5ting发布于6 年前最后回复6 年前23 回复9836 浏览0 收藏

Github很早就在个人主页和组织首页增加了Packages功能,意图很明显,就是整合开发上下游生态链,我注意到了这个细节,但没想到 Github 会收购NPM,收到这个消息既意外也不意外,毕竟微软财大气粗。

官方原话是“Discover and publish public and private packages in one place”,这里包含了3层意思,1、发现和发布,在 Github 有源码也有包,让开发者更方便,2、公开和私有的模块,私有的模块应用场景也是很多的,比如很多公司内部自建NPM源的其中一个原因是就是为了私有化,保证业务代码的安全。3、都放在一处管理,做好代码托管,工程管理,又将手伸向了更为基础的包管理领域,可见 Github 大大的野心。这其实对程序员来说是好事,你要做的只是写好代码,其他工作 Github 都会帮你做起来。GitHub 今天宣布收购 NPM,收购之后的 NPM 仍会保持免费、公开的,大家可以放心使用。GitHub 也承诺会改进 NPM 核心体验。今年底,NPM 付费用户将可以选择迁移到 GitHub Packages(GitHub 也将继续支持 NPM 付费用户)。

在今天,NPM有超过123万+的模块,内容涵盖了js能够涉及的方方面面,是今天Node.js和大前端繁荣的真正底座。 NPM完全用JavaScript写成,最初由艾萨克·施吕特(Isaac Z. Schlueter)开发。我们看一下Isaac的工作经历,Ryan Dahl在Joyent公司于2009年发布Node.js第一个版本,2010年Isaac进入Joyent,Isaac表示自己意识到“模块管理很糟糕”的问题,并看到了PHP的PEAR与Perl的CPAN等软件的缺点,于是编写了NPM。直到2014年1月,开始以公司的方式运作NPM。NPM伴随 Node.js 崛起,在大前端如火如荼的发展中,伴随大前端的发展相互成就,这其实也是技术创业的很好的方式。

NPM, Inc毕竟是垂类的的小公司,被收购也许是最好的结局,再次感谢Isaac的伟大工作。其实,在Node.js世界里,有很多这样的默默付出的大佬。比如一直被忽视的CNPM作者苏千。NPM固然优势明显,没有CNPM搭建私有源,Node.js还是很难在企业里大量应用的,此一极大功劳也。正是有了Isaac和苏千这些保有初心的人护航Node.js,才有了今天Node.js的美好前景,我坚信Node.js和NPM未来的发展会越来越好的。

https://www.zhihu.com/question/380064874/answer/1084394045

查看回复

回复 (23)

J
justjavac#1·6 年前

看到狼叔也看好这次收购,我就放心了

I
i5ting#2·6 年前
引用 justjavac看到狼叔也看好这次收购,我就放心了

@justjavac 要不要买点微软股票?

J
justjavac#3·6 年前
引用 i5ting@justjavac 要不要买点微软股票?

@i5ting 从没炒过股,不知道怎么买

Z
zy445566#4·6 年前

怎么不劝Apache割让maven?估计还是屁股决定脑袋,npm包多,买下成本低,正好博个名声集开源小成。

I
i5ting#5·6 年前
引用 zy445566怎么不劝Apache割让maven?估计还是屁股决定脑袋,npm包多,买下成本低,正好博个名声集开源小成。

@zy445566

mvn deploy -Dregistry=https://maven.pkg.github.com/phanatic -Dtoken=$GH_TOKEN
A
alsotang#6·6 年前

npm客户端继续改进,有指望了

J
justjavac#7·6 年前
引用 alsotangnpm客户端继续改进,有指望了

@alsotang npm 的源码真是一言难尽,不过比 node.js 源码好很多,但是和隔壁 yarn 比就差远了。微软爸爸赶紧用 ts 重构一下 npm 吧

J
justjavac#9·6 年前
引用 i5ting@justjavac yarn的cli处理模块clipanion写的很漂亮。参见 https://github.com/i5ting/clipanion test

@i5ting 我也是看 yarn2 的源码时发现的,我正在把这个模块移植到 deno,或者在 deno 里面用类似的思想重新实现一个

J
justjavac#10·6 年前

自从用过 nest 后,就对 decorator 爱不释手了

I
i5ting#11·6 年前
引用 justjavac自从用过 nest 后,就对 decorator 爱不释手了

@justjavac decorator合理用,最怕瞎几把用的,恶心死了。适度的加入是锦上添花

D
dongguangming#12·6 年前

商业化了

W
waitingsong#13·6 年前
引用 i5ting@justjavac decorator合理用,最怕瞎几把用的,恶心死了。适度的加入是锦上添花

@i5ting 过犹不及。 比如 await/async 的滥用(滥用是主语,前面可以换成其它技术)。 个人觉得 decorator 的一个滥用就是 TypeORM 的 @Column (好像是这个名字) 对类型(字段)的注解。好比是画蛇添足。

A
alsotang#15·6 年前
引用 justjavac@waitingsong 还有一个滥用(或者即将被滥用)的就是 optional chaining

@justjavac optional chaining 存在也算是好多年了吧...要滥用也不等现在啊,jq不就是optional chaining的代表吗

J
justjavac#16·6 年前
引用 alsotang@justjavac optional chaining 存在也算是好多年了吧...要滥用也不等现在啊,jq不就是optional chaining的代表吗

@alsotang 以后会出现一种 code style,以安全保守的名义,所有的属性访问都使用 ?., 就是这种画风:response?.data?.list?.user?.address?.city

J
justjavac#18·6 年前
引用 1316346949@justjavac 我怎么感觉npm源码比nodejs差很多啊

@1316346949 半斤八两,但是 npm 是纯 js 写的,没有哪些歪七歪八的 C++ 代码,所以感觉不是太糟糕(虽然也很糟糕

W
waitingsong#19·6 年前
引用 justjavac@alsotang 以后会出现一种 code style,以安全保守的名义,所有的属性访问都使用 ?., 就是这种画风:response?.data?.list?.user?.address?...

@justjavac 最新版 vs code 和 typescript,ts 项目,如果对象类型的某个属性是可选,那么写代码的时候 vscode (or eslint?)就会自动把 foo.name 给你改成 foo?.name ……

以后恐怕就是一堆的 ?. 操作符号了,然后再加上一堆 ??,真要疯得~~ 再以后,一堆的 |>, js 代码真成天书了……

I
iyuq#21·6 年前

@justjavac 之前不是还看到npm有代码使用了rust吗,不过估计是接口服务的代码

J
justjavac#22·6 年前
引用 iyuq@justjavac 之前不是还看到npm有代码使用了rust吗,不过估计是接口服务的代码

@iyuq 你是说 npm 源码,还是托管在 npm 上的包啊。如果是 npm 源码,应该没有用到任何 rust 代码。如果是托管在 npm 的包,rust 代码非常多。

H
HelTi#23·6 年前

很棒!期待和Azure云打通,建立统一的js生态。

参与回复
登录后即可参与回复。登录