上个月23号在南京老门东边上的创客空间蹭空调,碰到几个学工业设计的学生修3D打印机。热升华头的固定架断了,没人找品牌售后,几个人围在电脑前翻了十分钟,在Github上找到原版设计图,存成STL,下楼找街边做广告雕刻的店,二十分钟就铣了个新的。五块钱搞定。换闭源的机器,你得找代理商走流程,等一周配件,花大几百换架。这就是我摸到的开源,不是杂志上写的高大上概念,就是拿出来大家一起用的工具。
开源的核心从来不是免费
很多人刚接触开源,第一反应就是“白嫖好爽”。网上也一堆文章吹开源就是免费,不用白不用。真要掰扯清楚,免费只是开源附赠的选项,从来不是本质。开源的本质,是把软件的源代码公开出来,给你看,给你改,给你再分发,前提是你遵守作者定下的授权协议。协议有很多种,有的允许你随便用,哪怕商用改了不开源也没问题,有的要求你改了之后必须把改后的代码也公开。说白了,就是作者定的游戏规则。

说实话,我见过太多揣着明白装糊涂的人,拿了开源的代码改改就放到自己闭源的商用产品里,被作者找上门还倒打一耙,说你都开源了凭什么不让我用。脸呢。现在很多人觉得开源作者都得是为爱发电,不能赚钱,一收服务费就说人家变味了。其实哪有那么多活雷锋,真要一直不赚钱,谁能扛着房贷天天给你改bug?大厂的开源项目,大多是公司出钱让工程师做的,赚的是标准和生态的钱,独立开发者开源,大多是靠做定制服务、打赏、或者企业赞助活着,靠卖代码的其实很少,但也不犯法啊。对不对。
开源不是没有bug的乌托邦
网上另一个常见的误区,就是说开源比闭源安全,因为全世界的程序员都能帮你看代码,漏洞一出来就被修了。这话我只信一半。你想想,一个几十万行代码的项目,有多少无关的路人会逐行帮你审代码?绝大多数人都是拿来就用,碰到bug了才会停下看两眼,改完自己用的部分就完事了。那种藏得深的供应链隐形漏洞,比如前几年闹得很大的log4j事件,那个漏洞藏了快十年才被发现,不还是开源项目么。

还有更常见的问题,就是项目死了。作者本科毕业读研读博去了,或者找了个996的工作没空更了,或者就是不想玩了,说停更就停更。一堆用了这个项目的公司,只能自己硬着头皮接盘,接不住就只能重构,成本高到离谱。前两年我帮朋友处理过一个项目,就是依赖了一个没人维护的开源工具,出了安全问题没人修,最后花了三个月换了依赖,成本小几十万。不过话说回来,闭源就一定靠谱吗?去年某个大牌的企业闭源软件爆了个高危漏洞,厂商拖了七个月才发补丁,用户连知情权都没有,对比下来,开源至少你手里有代码啊。真出了问题,你自己找工程师改,总能解决。天塌不下来。
藏在代码里的共享基因

现在越来越多大厂往开源扔钱,把自己的核心项目往外放,很多人说开源已经变味了,变成大厂抢市场的工具了,以前那种程序员之间纯粹的分享没了。我倒觉得,这其实是时代变了。最开始开源出现,就是一帮程序员不满商业公司把代码藏得严严实实,收天价授权费,所以大家写了代码一起分享,本质就是共享工具,就像老小区巷口那个谁都能借的共享工具箱,你要钉个钉子拧个螺丝,不用自己买一把放家里占地方,用完了放回去,说不定你还能给磨个刀添个新工具。现在大厂进来,其实也是玩的同一个规则,只不过把工具箱做大了而已。
对普通人来说,开源把做产品的门槛拉到了极低。你想做个小工具小产品,不用什么都从零开始写,找合适的开源项目改一改,搭一搭,几千块就能起步,换三十年前,你想拿到一个像样的基础工具,得花几十万买授权,普通个人根本玩不起。我认识一个做手工皮具的女生,去年想要一个自动算排料的工具,找不到合适的,找了一个学编程的学弟,改了个开源的矢量计算库,加了个简单的界面,总共花了不到三千块,现在自己用着刚好,还卖给了几个同圈子的手作人,赚回成本还有剩。放在没有开源的年代,这种事想都不敢想。
当然问题也有,现在大项目几乎都被大厂攥在手里,独立开发者做的小项目,很难被人看到,更别说拿到赞助持续维护了。会不会有一天,所有的开源项目都是大厂放出来的,民间的分享就没了?说不好。但我总觉得,这种想要共享的基因不会消失。昨天翻Github,还刷到一个南京的大一学生,开源了一个自己做的流浪猫自动喂食器的控制代码,星标才一百多个,但是最近一周还有三个人提问题,作者都在二十四小时内回了。这不就是最原本的开源么。工具拿出来,你能用,你能改,改好了能分享给别人。就这么简单。挺好的。对吧。
作者|科技
排版|科技
审核|白杨