我上周陪朋友熬到凌晨三点。
他负责的电商活动页服务器崩了。
查了俩小时日志,定位到是个三年没更新的图片压缩库出了内存泄漏。只要上传超过2M的活动海报,服务进程就直接崩溃,连个错误提示都打不出来。
没人维护。
商业支持早就停了。
作者最后一次提交代码,还是2020年疫情刚爆发的时候。
最后翻到GitHub的issue区最下面,2021年有个匿名用户贴了个十几行的补丁,连个PR都没提,就说自己遇到同样的问题,改了就能跑。
朋友半信半疑打上去。
服务器直接稳了。
就这么离谱。
你以为开源软件是程序员做公益白送的?
很多人对开源软件的印象,还停留在“一群爱好者没事干写代码免费给人用”的阶段。甚至有人觉得,用开源的就是“穷,买不起商业软件”。
真不是。
根据软件供应链厂商Sonatype2024年的公开报告,全球商业软件的代码库中,开源组件的占比平均超过75%。
你早上刷的短视频App,解码视频用的组件,大概率是开源的;你打车用的定位SDK,底层的地理坐标转换库,可能也是开源的;甚至你公司用来做考勤的系统,连数据库都是开源的MySQL或者PostgreSQL。
你根本意识不到你在用开源软件。
就像你每天呼吸空气,不会特意停下来想“我今天吸了多少氧气”一样。

那些被骂“没人维护”的开源项目,藏着多少隐形贡献者
刚才说的那个图片压缩库,朋友后来看了下下载量,每个月还有十几万次的拉取。
全是企业用户。
但为啥没人出来当正式维护者?
太正常了。
很多用这个库的开发者,都是公司的员工。他们改了代码,自己公司用,但是因为项目没有统一的贡献者许可协议,或者怕提交PR之后要承担后续的维护责任,就干脆不发正式的贡献,只把补丁贴在issue区,谁用谁拿。
我上次遇到个更离谱的。
一个做工业控制的开源库,核心逻辑的补丁是个刚毕业的大专生贴的。他说自己在工厂实习,遇到同样的传感器读数不准的问题,改了之后试了三个月没问题,就贴出来了。
没人给他钱。
没人给他署名。
甚至连个点赞都没几个。
但就是这个补丁,救了好几个跟他遇到同样问题的小工厂,不然他们换一套进口的控制系统,要花几十万。

很多人看到一个开源项目最后一次更新是两三年前,就直接骂“这项目死了,别用了”。
根本不是。
只是正式的维护者没出来说话而已,底下偷偷用、偷偷改的人多了去了。
别把“开源等于不安全”当刻板印象
我见过太多人一听到开源软件,第一反应就是“代码都公开了,会不会有后门?会不会被人攻击?”
说实话,真要比安全,闭源软件的坑比开源多得多。
之前的SolarWinds供应链攻击事件,受害的都是全球顶级的企业和政府机构,出问题的就是他们花大价钱买的闭源商业运维软件。黑客把后门藏在闭源的代码里,没人能看出来,等爆出来的时候,已经有几万个系统被入侵了。
开源软件的安全本质,是把“暗箱”拉到阳光下。
任何一个安全研究者,只要愿意,都能把代码翻一遍,发现漏洞了,全球的人都能帮忙修。当年Log4j漏洞爆出来的时候,不到72小时,全球的开发者就把所有相关的补丁都推完了。要是换成闭源的组件,等官方慢悠悠排期发补丁,可能黄花菜都凉了。
我见过太多公司,花几百万买的闭源ERP系统,出了问题找客服,客服说要等美国总部的技术团队排期,排了俩月还没动静,最后自己找了个开源的替代系统,一周就搞定了。
不过话说回来,开源也不是万能的。
我见过太多小公司,上来就拿最热门的开源项目当核心业务系统,连个备份都不做,项目哪天被作者删库了,直接公司倒闭。也见过很多人,把开源项目的代码改都不改,就套个皮卖钱,连个出处都不标,挺恶心的。
有次我跟一个做企业服务的老板聊天,他说开源软件就是“免费的劳动力”,我当时就怼回去了:你用人家的代码,出了问题自己修不了,找外包改一次代码的钱,够你买十年商业服务了。
对吧?
天下没有免费的午餐。
开源只是把收费的方式变了而已。你可以用免费的版本,但是要想要稳定的技术支持,要想要专人帮你修bug,还是得掏钱,或者自己贡献代码。

上周我又翻到那个三年没更新的图片压缩库,作者终于出来更新了。
他说自己之前得了抑郁症,在家躺了三年,现在回来了。
下面有个评论说,我这三年靠你这个库赚了几十万,要不要给你捐点?
作者说不用。
你要是遇到bug,帮着改两行就行。
作者|科技
排版|科技
审核|安然