上周帮朋友修他那个开了五年的旧网站,之前他花两万找外包做的后台直接崩了,翻了三小时日志才找到问题——核心的权限校验模块,是用了个2014年就没人维护的开源组件,那个组件的作者是个当时在武汉读大三的学生,写它的原因特别简单:自己做课程设计的时候嫌市面上的权限模块太复杂,干脆抽了两个晚上写了扔到GitHub上,连个捐赠二维码都没放。
朋友看到这个的时候愣了半天,说他之前一直以为自己花两万买的东西,全是外包公司从零写的专属代码,没想到核心的骨头,是个素不相识的学生免费送的。
你根本没意识到自己每天在“蹭”开源软件的便宜
真的。
很多人对开源软件的认知还停留在“程序员圈子里玩的小众东西”,但实际上你从早上醒来到晚上睡觉,摸的每一样电子设备,背后都有开源软件的影子。早上刷的短视频APP,底层的视频编解码用的是FFmpeg,这个项目从2000年到现在,攒了全球几千个开发者的提交;你打网约车的时候,地图SDK里的坐标转换算法,有一半是开源社区的人凑在一起磨了好几年的成果;甚至你公司电脑上装的那个收费杀毒软件,核心的病毒库自动更新机制,最早的代码逻辑也是从开源的安全项目里来的。

之前跟一个做商业SaaS的朋友吃饭,他拍着胸脯说自己公司的技术栈全是自研的,光每年的技术研发投入就大几千万,结果酒过三巡他自己漏了底——核心的数据库连接池模块,还是用的免费开源的,连个定制化的修改都没做。我当时笑他,说你这相当于开着宾利出门,轮胎是路边修车铺老师傅手工攒的,他立马反驳,说哪能啊,这轮胎比他那整台宾利还靠谱。毕竟全球几百万开发者帮你盯着有没有坑,你花大价钱买的商业轮胎,也就三五个坐办公室的工程师在维护,真遇到雨天打滑的情况,谁能第一时间蹲在路边帮你换胎?
太讽刺了。
很多人总觉得“免费的东西肯定没好货”,但实际上你花几万块采购的商业软件,说不定底层抄的开源代码,连原作者的署名都没留。
别把开源软件想成“慈善家的免费游乐场”
说出来有点气人。
我之前认识个做小型开源数据库的开发者,他说最糟心的一次经历,是个年营收几十亿的上市公司,把他写的开源数据库原封不动拿去给客户做核心交易系统,遇到系统崩了丢了交易数据,反过来在社区发帖子骂他的代码有安全漏洞,连个五块钱的咖啡打赏都没给过。

很多人对开源的误解就从这来——觉得开源就是“没有版权的公共素材”,想拿就拿,想改就改,出了问题还要找作者负责。但实际上呢?开源从来不是无边界的免费施舍,它是作者把自己的劳动成果,按明确的授权规则分享给所有人的作品。不管是允许随便商用的MIT协议,还是要求衍生作品必须同样开源的GPL协议,本质上都是写代码的人给自己的作品定的规矩:你可以用,但是得守规则,该署名的署名,该公开的公开,不是让你薅完了还转头骂街。

2022年那个闹得整个互联网圈抖三抖的left-pad事件,到现在我还记得清清楚楚——一个开发者写了总共才十几行的字符串处理组件,被无数商业项目依赖着,结果因为跟某个商业公司的版权纠纷,他一怒之下把整个项目从npm仓库撤了,当天全世界有接近一半的前端项目构建直接崩了。那时候大家才反应过来,原来你每天用的那些看起来光鲜的产品,地基就是某个普通人写的、没人在意的几行代码。
不过话说回来,也真不能全怪普通用户对开源有误解。毕竟很多公司自己都没把开源的规则当回事,转头就对着消费者说“开源就是免费随便用”,合着规则是给作者定的,便宜是给占的。
那些跑了十几年的开源老项目,其实比你想的能打
这两年大家追新追得太厉害了,新出的AI框架要追,新出的低代码平台要追,好像只要是跑了五年以上的老项目,就全是过时的、该被淘汰的东西。我去年帮一个做工业自动化的客户调试系统,他们厂里的核心PLC数据采集模块,用的是个2008年就开始更新的开源项目,维护团队拢共就三个人,带头的是个德国的退休工程师。就这么个看起来“老掉牙”的项目,稳定性比他们之前花了几十万买的商业采集系统高多了。
那个商业系统我见过,每次季度更新都要改一版接口,改完就得让厂里的师傅重新做一周的适配,稍微没跟上版本,就给你弹个付费续费的弹窗,不续费就把功能给你锁了。反倒是这个开源的老项目,2008年写的接口,现在拉下来直接就能跑,连个报错都没有。
你说气人不气人?
我之前给这个项目提过个bug,说采集数据的时候遇到特殊的工业编码会丢字段,本来以为要等个十天半个月才能有回复,结果第三天早上打开邮箱,收到那个德国工程师的回信,说他前一天帮以前厂里的老同事调试设备的时候刚好遇到同样的问题,已经把补丁打上去了,还附了张手写的测试说明,字歪歪扭扭的,像高中老师写的板书。他说自己现在维护这个项目没有KPI,没有老板盯着要他每个季度出个新功能来忽悠客户续费,他写这个、维护这个的唯一原因,就是知道有很多像他以前一样在厂里干活的师傅,需要一个不随便改接口、不随便锁功能的工具,能让他们少爬两次十几米高的设备架,少加两次没必要的班。
没有KPI的项目,才是真的在解决具体的问题。
我见过太多商业软件,刚出来的时候吹得天花乱坠,说要颠覆行业,结果用了半年就开始变着法子收你钱,加一堆没人用的花哨功能,把原来好用的功能藏在付费墙后面。反倒是这些没人给发工资的开源老项目,安安静静在服务器上待着,你需要的时候拉下来,改两行就能用,用完了觉得好用,就给作者发个十块八块的红包,或者自己遇到bug了顺手修一下提交上去,就这么攒了十几年,反而成了整个数字世界最稳的那块地基。
最近这两年总有人说,开源要走商业化的路,要靠开源赚钱,这话当然没错。但是要是把开源当成引流的广告位,把最核心的功能藏在付费版后面,扔出来的开源版本全是一堆跑不起来的demo,那本质上跟在电线杆上贴小广告的没区别。我心里最好的开源项目,从来不是那些融了几个亿、喊着要改变世界的大项目。是那种几个人凑在一起,解决了一个特别小的问题——比如怎么把家里的旧打印机连上智能家居,怎么给老年人大字体笔记软件做个自动备份,怎么把电动车的充电数据导出来算自己家的电费。这些项目没有铺天盖地的宣传,没有明星开发者站台,但是它们就安安静静在那待着,等你需要的时候,伸手就能拿到。
就像那个武汉大三学生写的权限组件,他当时写的时候根本没想过,几年之后会有个在外地开小公司的人,拿着他写的代码,撑着自己那个赚不了多少钱的小网站。
作者|科技
排版|科技
审核|见微