我问答网
有问必答

为什么有些开源软件项目突然就“死了”?

前几天刷 GitHub,又看到一个熟悉的仓库挂上了「Archived」标签,心头一紧。明明去年还热热闹闹的,怎么说不更就不更了?点进去一看,维护者最后一条留言写着:“对不起大家,我实在扛不住了,生活太忙,抱歉。” 哎,那种感受,就像突然得知一个老朋友不告而别——你知道他可能很累,但没想过真的就这么放下。 说实话,开源世界每天都有项目诞生,也有项目死去,只是我们很少留意。用的好好的,谁会去关心背后那个人是不是还在熬夜修 Bug 呢?今天索性就聊聊这个有点丧、但又特别真实的话题。

那些突然 “暴毙” 的开源项目,都是怎么死的?

最常见的死法:维护者倦怠。一个人撑起一个项目,白天上班,晚上写代码,周末还得回 issue,而且——完全没收入。初期靠热情顶着,慢慢热情被琐碎磨光,某天醒来看着满屏的未读通知,突然就破防了。“我是谁?我在干嘛?我图啥?” 然后归档。我认识一个小哥,维护一个工具库,star 上万,但他说每天打开 GitHub 就像上刑场,最后直接把项目捐给基金会,但基金会也管不过来,最后还是死掉了。
疲惫的开源维护者深夜在电脑前崩溃的插画
疲惫的开源维护者深夜在电脑前崩溃的插画
商业公司突然抽风。很多大厂开源项目,用的时候是真香,但砍起来也是真狠。比如 Google 突然关闭某个云服务相关的开源 SDK,Facebook 把某个 React 生态库弃之不顾,理由永远只有一个:“战略调整”。你气的跳脚,但除了 fork 一份自己埋坑,还能怎样?还有被收购后雪藏——大公司买了小团队,第二天就把开源项目私有化了,留下一地 issue 里的哀嚎。 技术栈过时。前几年还风光无限的框架,现在可能连教程都搜不到了。维护者看着逐渐减少的下载量,越发觉得没必要再投入,毕竟学个新东西不香吗?于是慢慢断更,直到某天连仓库地址都 404。有时候不是不想维护,是真的没用户了,那种孤独感比没人用还可怕。 社区分裂。核心成员闹矛盾,一言不合就 fork,两边都抢用户,结果两边都没精力维护好。Node.js 的 io.js 分叉算是幸运的,最后合并了,但多少小项目一分就永无宁日,最后双双死掉。贡献者互撕的时候,根本没人管代码,最终用户只能默默删库跑路。 还有更悲剧的——安全问题致命一击。曝出个大漏洞,维护者没空修,直接被生态标记为不安全,用户一哄而散。其实漏洞未必多严重,但没人维护就相当于宣判死刑。LeftPad 那种小包一夜之间死亡,差点让整个互联网陪葬,但更多的无名包,死了就死了,没人记得。

为什么我们很少察觉到它们的消逝?

为什么我们很少察觉到它们的消逝?
为什么我们很少察觉到它们的消逝?
因为开源软件太像空气了——免费、无处不在,直到没了才觉得窒息。但空气不会突然消失,开源项目会。只不过大多数时候,替代品咻地一下就补位了,npm 上每天新增成千上万个包,死掉的那些,就像换掉一支牙刷一样平常。 而且,GitHub 的归档并不删库,你还能继续用,只是不再更新。那种感觉就像住进一个不再有人修缮的老房子,看起来还在,慢慢积灰。很多企业甚至过了大半年才发现依赖的库已经僵死,然后才慌慌忙忙找替代方案。 另外,媒体只会追悼大项目。Redis 换协议,全网哀嚎;但一个只有几百 star 的工具停更,最多在 Hacker News 上泛起几个水花。开源世界的注意力倾斜太严重了,头部项目活得像明星,长尾项目死得像尘埃。

我们能做些什么?哪怕只是少点心碎

别等到失去了才后悔。如果你在用某个心仪的开源软件,花几分钟瞅一眼它的 健康指标:最近一次提交是几个月前?issue 有没有活人回复?PR 合并率怎样?如果都报红灯,赶紧做个备用计划。大企业最好 fork 一份内部维护,或者干脆买商业支持,别把命脉拴在一个人身上。
开源项目健康检查清单图表
开源项目健康检查清单图表
看社区结构。单点维护者风险极高,哪怕他热情似火,也可能明天突然生病、跳槽、养娃。而有基金会背书的项目(比如 Apache、CNCF),通常有多个公司撑着,死掉的概率低很多。即便有变动,也会有个交接缓冲期。 协议也很关键。一些过于严格的 copyleft 协议会让商业公司绕道,贡献者寥寥,慢慢地就只剩原作者的孤军奋战。宽容的协议更容易聚拢人气,人气就是续命的药。 最后,如果条件允许,别只当伸手党。偶尔给个 star 不是敷衍,那是给维护者的小红花;提个友善的 issue 或 PR,哪怕帮他改个错别字,都会让人觉得不那么孤独。经济上的支持更直接——一杯咖啡钱,可能就能让他多熬一个晚上。 说实话,开源圈最迷人的地方是那种无功利的热爱,但最残酷的也是它。纯粹靠爱发电,总会有油尽灯枯的一天。我们享受了多少免费的便利,就应当承受多少突然失去的风险。下次看到一个项目还在更新,记得心里默默感谢一下那些素未谋面的人——他们本可以不这么累的。 哎,不多说了,我去给几个常用库打赏了。希望明天醒来,GitHub 上少几个 Archived 的标签吧。
免责声明:市场有风险,选择需谨慎!此文仅供参考,不作买卖依据。如有侵权请联系删除。
文章名称:为什么有些开源软件项目突然就“死了”?
文章链接:https://www.wowenda.cn/a/52665.html