前几天在知乎上连着回答了几个开源的回答,最近也一直在做几个开源软件,感觉挺有收获,于是整理出了这篇文章。 我想试着讨论一下:
- 为什么开发者要开源自己的软件
- 开源软件的困境
- 开源软件的商业模式
当然我的经验也不多,也没有做出来过非常出名的开源软件。但时间一段时间以后,决定以后会经常开源,利用好开源软件的商业模式。
为什么开源?
相信大部分人开源,就是基于原始的分享欲。很多年前我们老提的互联网精神,“开放、平等、协作、快速、共享“ ,开源项目就是典型代表。
但抛开精神层面的东西,如果只考虑利益的话,站在商业角度,的确也有几个直接的好处:
-
流量:开源仓库,会带来很多免费的访客,比如我的这个项目Github:gcui-art/suno-api,不到1K的star,每天平均下来居然有200个UV。要知道每天200 UV如果在google上买关键词广告,也是不小的一笔开支了。如果我想在这个项目引流给其他产品,很爽的免费的流量。
-
塑造品牌:软件创业公司,想获得品牌知名度,很难的。但是一个高 star 的开源项目,可以让你的品牌名得到很大的并且是免费的曝光。具体来说就是会有很多人会提及你的项目,一些媒体作者会自发的帮你报道,搜索引擎里也会获得一个很高的排名。用户想起这个领域的产品,有可能第一时间就想到你。实打实的好处。这也是很多公司做开源的最初意图吧。
-
需求输入:创业早期很难的一件事,是挖掘准确的用户需求。开源就是一个好办法,用户使用后会通过issue不断的给你提出要求和反馈,在不断的解决issue的过程中,产品可能就逐渐完成了进化。然后你再通过提供商用方案等去完成变现。
-
无偿的共建者:优秀的开源项目,会有很多Contributors,一些顶级的项目甚至有几百上千人,无偿的完善你的项目。他们不求回报,是真正践行互联网精神的人。
-
个人能力背书:如果你准备找工作,一个热门的开源项目将是个加分项。甚至有一些公司会直接从Contributors中寻找员工,甚至在淘宝上我们发现有人在销售求职者刷星服务。
开源软件的困境
绝大部分开源软件最后的结局都是无疾而终。
开源软件的作者大部分没有收入,缺少市场的正向反馈。激情总归是有限的,总有一天会消耗完了。开发者也是人,也需要养家糊口,为了生存,只能将爱好放在次要位置。
这很现实。好在开发者数量庞大,总有一些解决了生存问题的人无私奉献,或者依靠社区延长了一个开源软件的生命。
相反,商业软件本身首先是个商品,企业出售商品获得利润,用利润继续投入完善商品,不需要太多激情,也没有生存压力,一个非常完美的正向循环。所以大多数的时候,商业软件各方面都要好于开源软件。
更糟糕的是,在云计算成为主流的这十几年,开源软件作者们无私的贡献自己的代码,云计算厂商通过开源协议,免费的获得了这些软件,集成到自己的云里面作为商品出售,获得了不菲的收入。而开源软件的作者只能从里面分一点点,导致不断的出现开源软件作者和组织的抱怨,停止维护或者修改自己的开源协议,进一步的打击了开源软件作者的积极性,影响了开源软件的发展。
开源软件商业模式
好在现在有很多开软件社区,成功的实现了自身的商业化,典型的比如 nextjs,借助开源软件nextjs,成功创建了海外非常流行的 vercel,自己做云。类似的案例还有很多比如国内去年才开始开发的 dify,接着开源在海外攻城掠地。
感觉这可能是一个更加良性的开源软件模式,对技术人员来说也是一个非常舒适的创业路径。如果这种模式继续发展,相信未来,开源软件的流行程度、质量、生命力,会远超商业软件。