上周四凌晨两点,我被发小的电话炸起来。
他说自己刚上线的创业小项目崩了,后台全是乱码,用户已经在评论区骂了半小时。我远程登上去,翻了二十分钟日志,发现问题出在他为了省成本,直接抄来用的那个文件上传组件上——那玩意儿是个开源软件,原作者半年前就停止维护了,连个补丁都没更过。
他当时还沾沾自喜,说找了个不用花钱的工具,省了三千块开发费。
结果呢?
赔了用户两百多块优惠券,还花了一下午改代码。我当时困得眼皮打架,盯着屏幕上满屏的报错,差点把咖啡泼在键盘上。
你以为的“免费”,从来不是真的免费
很多人对开源软件的第一印象,就是“不要钱、随便拿、随便改”。甚至有人把开源仓库里的代码当成了无主的野果,摘下来擦吧擦吧就敢往自己的产品里塞。
我之前碰到过个做小电商的老板,直接把开源的支付接口拉下来改都没改,就接在了自己的店铺后台。去年漏洞爆出来的时候,被人薅走了十几万的优惠券,找原作者找不到,找服务商更找不到——那项目原作者早就因为工作太忙,把仓库设成只读状态了。
说穿了,开源的本质,是把写代码的“使用权”和“修改权”公开,不是把“兜底责任”也一起公开。你拿了代码用,就相当于自己接了摊子,后续要打补丁、要修bug、要适配新的系统,全是你自己的事。原作者没拿你一分钱,凭什么给你兜底?

我之前还碰到过个刚毕业的小朋友,热血上头,说要做个完全不接受商业赞助的开源办公软件,纯靠兴趣做,绝对不被资本绑架。
三个月就撑不下去了。
每天要回几百个用户的bug反馈,要写几十页的使用文档,要兼容Windows、Mac、Linux三端的不同版本,他一个刚毕业的小孩,白天还要上班,哪有那么多精力扛?最后只能在仓库首页发了个公告,说项目暂时停止更新,把所有issue都关了。
别把开源软件当一群理想主义者用爱发电的慈善项目。现在绝大多数能跑在生产环境里的开源项目,背后全是有正经团队在维护的——可能是大公司的工程师抽业余时间提交代码,可能是专门做开源服务的公司在撑着,本质上都是要算成本账的。
那些藏在你手机里的“隐形代码”
说出来你可能不信,你现在手里攥着的手机,从底层系统到你每天打开的每一个APP,都藏着大量开源软件的代码。
你刷短视频用的APP,底层的视频编解码库,有一半是基于开源的FFmpeg改的;你点外卖用的软件,跑在云服务器上的操作系统,大概率是开源的Linux;甚至你手机上用的输入法,核心的词库匹配逻辑,也是基于开源的分词组件二次开发的。
之前有个做互联网产品的朋友跟我吹,说他们公司的APP全是自研,一行开源代码都没用到。
我当时没好意思拆穿他。
他总不能把TCP/IP协议栈自己重新写一遍吧?那玩意儿从大学教材到现在的互联网底层,全是开源了几十年的东西,你总不能说自己把整个网络协议都重写了?真要是全自研,他那APP的开发成本,够把公司卖十次的。

我去年帮一家做工业传感器的传统企业做系统选型,他们一开始想选闭源的ERP系统,供应商报的价是八十万,还不包含后续的系统升级费,甚至连数据导出都要额外收钱。
后来我们找了个基于开源ERP代码改的定制版本,算上三年的上门技术支持费,才花了不到二十万。
关键是啥?
所有的生产数据全存在他们自己的本地服务器上,不会被供应商绑死,后续要加新的功能,也不用看供应商的脸色。老板当时乐的,当天就请我们全组吃了顿龙虾。
现在大家对开源的误会,真的有点大

我见过最多的误会,就是觉得开源软件的质量肯定不如闭源的商业软件。
说真的,刚好反过来。
那些跑在全球互联网核心节点上的基础设施,从域名系统到数据库,大部分都是开源的。毕竟闭源的东西你根本看不到里面的代码,谁知道里面藏了什么后门,出了问题连问题出在哪都找不到。反而是开源的代码,全世界的工程师都能看到,有bug很快就有人提交补丁,安全性反而更高。
还有人说,开源软件没人管,出了问题只能自己扛。这也是老黄历了。现在但凡有点规模的开源项目,都有专门的技术支持团队,企业用户要是有复杂的需求,是可以付费买专属服务的。价格比你自己从零开发一套系统,便宜太多了。
不过话说回来,开源也不是什么万能灵药。
你要是个连代码都看不懂的小老板,随便从网上下个开源软件就往生产环境上扔,连个基础的安全扫描都不做,那出问题是早晚的事。
前几天刷到个新闻,有个开连锁奶茶店的老板,直接从网上下了个开源的库存管理系统,连个备份功能都没开,结果系统崩了之后,所有门店的库存数据全丢了,连哪个仓库剩了多少珍珠、多少奶茶粉都查不出来。
你说这能怪开源软件不好吗?
真不能。
上周帮那个发小把项目改完的时候,天已经快亮了。我跟他说,下次再找开源组件,先看看最近三个月有没有人提交代码,有没有公开的问题反馈渠道,别随便拿个没人管的东西就往生产环境塞。
他猛点头。
其实哪是组件的问题啊。
是很多人从一开始,就对开源软件有个天大的误会——觉得不用花钱的东西,就可以随便用,出了问题还没人怪。
哪有这么好的事。
作者|科技
排版|科技
审核|小准