你手机里的每一个APP,都藏着几行没人收费的开源软件代码

上周四凌晨两点,我被发小的电话炸起来。

他说自己刚上线的创业小项目崩了,后台全是乱码,用户已经在评论区骂了半小时。我远程登上去,翻了二十分钟日志,发现问题出在他为了省成本,直接抄来用的那个文件上传组件上——那玩意儿是个开源软件,原作者半年前就停止维护了,连个补丁都没更过。

他当时还沾沾自喜,说找了个不用花钱的工具,省了三千块开发费。

结果呢?

赔了用户两百多块优惠券,还花了一下午改代码。我当时困得眼皮打架,盯着屏幕上满屏的报错,差点把咖啡泼在键盘上。

你以为的“免费”,从来不是真的免费

很多人对开源软件的第一印象,就是“不要钱、随便拿、随便改”。甚至有人把开源仓库里的代码当成了无主的野果,摘下来擦吧擦吧就敢往自己的产品里塞。

我之前碰到过个做小电商的老板,直接把开源的支付接口拉下来改都没改,就接在了自己的店铺后台。去年漏洞爆出来的时候,被人薅走了十几万的优惠券,找原作者找不到,找服务商更找不到——那项目原作者早就因为工作太忙,把仓库设成只读状态了。

说穿了,开源的本质,是把写代码的“使用权”和“修改权”公开,不是把“兜底责任”也一起公开。你拿了代码用,就相当于自己接了摊子,后续要打补丁、要修bug、要适配新的系统,全是你自己的事。原作者没拿你一分钱,凭什么给你兜底?

Github开源软件代码提交记录界面
Github开源软件代码提交记录界面

我之前还碰到过个刚毕业的小朋友,热血上头,说要做个完全不接受商业赞助的开源办公软件,纯靠兴趣做,绝对不被资本绑架。

三个月就撑不下去了。

每天要回几百个用户的bug反馈,要写几十页的使用文档,要兼容Windows、Mac、Linux三端的不同版本,他一个刚毕业的小孩,白天还要上班,哪有那么多精力扛?最后只能在仓库首页发了个公告,说项目暂时停止更新,把所有issue都关了。

别把开源软件当一群理想主义者用爱发电的慈善项目。现在绝大多数能跑在生产环境里的开源项目,背后全是有正经团队在维护的——可能是大公司的工程师抽业余时间提交代码,可能是专门做开源服务的公司在撑着,本质上都是要算成本账的。

那些藏在你手机里的“隐形代码”

说出来你可能不信,你现在手里攥着的手机,从底层系统到你每天打开的每一个APP,都藏着大量开源软件的代码。

你刷短视频用的APP,底层的视频编解码库,有一半是基于开源的FFmpeg改的;你点外卖用的软件,跑在云服务器上的操作系统,大概率是开源的Linux;甚至你手机上用的输入法,核心的词库匹配逻辑,也是基于开源的分词组件二次开发的。

之前有个做互联网产品的朋友跟我吹,说他们公司的APP全是自研,一行开源代码都没用到。

我当时没好意思拆穿他。

他总不能把TCP/IP协议栈自己重新写一遍吧?那玩意儿从大学教材到现在的互联网底层,全是开源了几十年的东西,你总不能说自己把整个网络协议都重写了?真要是全自研,他那APP的开发成本,够把公司卖十次的。

手机APP开源组件依赖关系流程图
手机APP开源组件依赖关系流程图

我去年帮一家做工业传感器的传统企业做系统选型,他们一开始想选闭源的ERP系统,供应商报的价是八十万,还不包含后续的系统升级费,甚至连数据导出都要额外收钱。

后来我们找了个基于开源ERP代码改的定制版本,算上三年的上门技术支持费,才花了不到二十万。

关键是啥?

所有的生产数据全存在他们自己的本地服务器上,不会被供应商绑死,后续要加新的功能,也不用看供应商的脸色。老板当时乐的,当天就请我们全组吃了顿龙虾。

现在大家对开源的误会,真的有点大

现在大家对开源的误会,真的有点大
现在大家对开源的误会,真的有点大

我见过最多的误会,就是觉得开源软件的质量肯定不如闭源的商业软件。

说真的,刚好反过来。

那些跑在全球互联网核心节点上的基础设施,从域名系统到数据库,大部分都是开源的。毕竟闭源的东西你根本看不到里面的代码,谁知道里面藏了什么后门,出了问题连问题出在哪都找不到。反而是开源的代码,全世界的工程师都能看到,有bug很快就有人提交补丁,安全性反而更高。

还有人说,开源软件没人管,出了问题只能自己扛。这也是老黄历了。现在但凡有点规模的开源项目,都有专门的技术支持团队,企业用户要是有复杂的需求,是可以付费买专属服务的。价格比你自己从零开发一套系统,便宜太多了。

不过话说回来,开源也不是什么万能灵药。

你要是个连代码都看不懂的小老板,随便从网上下个开源软件就往生产环境上扔,连个基础的安全扫描都不做,那出问题是早晚的事。

前几天刷到个新闻,有个开连锁奶茶店的老板,直接从网上下了个开源的库存管理系统,连个备份功能都没开,结果系统崩了之后,所有门店的库存数据全丢了,连哪个仓库剩了多少珍珠、多少奶茶粉都查不出来。

你说这能怪开源软件不好吗?

真不能。

上周帮那个发小把项目改完的时候,天已经快亮了。我跟他说,下次再找开源组件,先看看最近三个月有没有人提交代码,有没有公开的问题反馈渠道,别随便拿个没人管的东西就往生产环境塞。

他猛点头。

其实哪是组件的问题啊。

是很多人从一开始,就对开源软件有个天大的误会——觉得不用花钱的东西,就可以随便用,出了问题还没人怪。

哪有这么好的事。

作者|科技

排版|科技

审核|小准

免责声明:市场有风险,选择需谨慎!此文仅供参考,不作买卖依据。如有侵权请联系删除。
文章名称:你手机里的每一个APP,都藏着几行没人收费的开源软件代码
文章链接:https://m.lfdjt.com/p/keji/a/11994.html