《开源之迷》有哪些迷?怎么解?

前两天(2022年2月28日),收到我的朋友、开源布道师适兕写的新书《开源之迷》,当天就迫不及待通读了一遍。

2a0bbef60ad24f0547b9bc2cdab397e2.png

适兕在这本书里,向读者展示了一幅精彩斑斓的“开源世界地图”,他本人作为“向导”,带领读者遍览了开源世界的角角落落,领略了开源的奇伟瑰丽,并留下了一些难解之迷。

我注意到了这些“迷”,并试图用我多年来对开源的理解,破解这些迷。

注意,适兕本人会在他的后两本书《开源之道》、《开源之思》里面对这些迷做阐释。

本文仅仅是我的个人观点。

一、开源是不是免费的?

我曾经见过人们很激烈的争辩这个问题,一派说“开源软件就是免费的。”一派说“开源绝不是免费的。”

其实他们在说不同的东西。

  • 说“开源软件是免费的”,是指开源软件的获取是免费的,你从互联网上下载源码或者安装包,然后安装上去,跑起来,然后就可以享受软件的功能了。这难道不是免费的吗?我顶多花了一些电费和上网费,而这又是微不足道的。

  • 说“开源绝不是免费的”,意思大概有这些:1、开源软件开发出来是花费了开发者大量心血的,背后是难以计量的各种成本。2、虽然代码和安装包你可以不花钱拿到,但是你未必装得上,未必用得起来,未必能达到你想要的效果,未必能免费解决里面的bug,未必能让它一直运转得很好,到头来,你可能还是要花钱买人或买服务。3、虽然你可以免费拿到,但最好你也能回报一些什么。

其实两种观点并不矛盾,他们是兼容的。有的人,甚至是公司,可能就是一分钱不花,就是能用得好好的;有的人,尤其是有的公司,为了用好一个开源软件,自己又投入大量的人力、资金和成本,才把这个开源软件给用明白、用好,甚至还能在其上做改进,做创新,甚至还能回馈上游(上游就是原项目)

那你说他是免费的,还是不免费的?

这个问题并不是很难缠。

稍微涉及道德感的一点是:怎么看待搭便车者?

人性中有一点是很自然的,那就是“投之以桃报之以李”,个人用户,企业,都可能免费使用开源软件,要不要回报点什么?怎么回报?捐款?买商业版?买服务?贡献上游?买会员?雇佣开发者?

我个人觉得不需要道德绑架,他想回报就回报,他不回报也是他的自由,你可以号召他回报,但不宜指责他不回报。

再看看开源者的想法:

个人搞开源,心态可能比较轻松:“我就玩玩,能有回报,那就更好了。” (当然也有心态不轻松的,后面会看到。)

公司搞开源,搞的时候他就算计好了,没有大致的把握,没有可图的好处,他是不会开源的,如果要靠别人的道德感才能让公司存活,那还是别干了。

你还用纠结自己是不是“搭便车”吗?

二、开源开发者是不是“乌合之众”?

一般而言,如果不是一个公司在搞“开源产品”,而是一帮面都没有见过、仅仅通过互联网、业余或全职致力于一个开源项目的“乌合之众”,总会给人带来疑惑,这帮人行吗?他们图啥,他们能干好吗?

而且,往往这个项目看上去也并不能商品化,并不能真的带来收益。

注意,这里面有三个问题:1、他们图啥。2、在没有管理的情况,他们能干好吗?3、他们有能力吗?

我的解答是:

1、他们图的是一个乐趣,一份兴趣,一个解决自己问题甚至是更多人问题的欲望满足。更进一步,图一个自我挑战的快感,图一个成就感,图一个以后吹牛的资本,图一个建立名声的兴奋感,图一个小圈子的认可,图一个认为自己在造福人类的崇高感。

2、确实没有强有力的管理,但这帮人很有主动性和自驱力,他们主要靠自己的兴趣、兴奋、热情、激情、责任感、荣誉感(或理解为“面子”)在做事,所以,他们表现出了勤奋、敬业、专业等特质,而根本不需要管理,要知道,管理,主要是管那些积极性不高的人。

为了避免混乱,他们用了很多工具,做版本管理、问题管理、需求管理、沟通管理、进度管理、变更管理,他们用工具替代了所谓的项目管理人员。

然而并非没有问题,他们的热情一旦散退,就不再会光顾这个项目了,而其他人也没有什么真正有用的手段,能把他们拉回来。

这是一帮全靠主动性在干事的人。

3、开源项目并非自己在家里的小打小闹,毕竟是要拿出来见人的,所以,一般而言,他们尽可能让自己的东西拿得出手。

只不过,人的能力显然是参差不齐的,也没有任何规定说本领不高强的人不能参加开源项目,所以,在浩若烟海的开源项目中,总有一些质量是不怎么样的,也总有一些是超凡绝伦的。

三、Linux的成功可以复制吗?

适兕在第十一章第3节提出这个问题。

的确,正如书中所言:“Linux是如此的成功,以至于后来的项目几乎难以望其项背”。但为什么是Linux Kernel(以下简称Linux)成功了,其他的“难以望其项背”呢?

我的理解是:

1、通用操作系统不同于其他软件,它是最基础、最迷人、最有用、最受关注,也是难度最大的软件,与其说其他软件没有Linux成功,不如说其他软件没有操作系统这么重要和吸引人,事实上,后面也有很多重量级的软件(比如当红的“世界计算机”以太坊),也获得了巨大的成功,只是在体量上和难度上,还是不如Linux。

2、在各种天时地利人和的因素共同作用下,Linux崭露头角,而BSD那时对386的支持还不够好(深受和AT&T的版权纠纷影响)。IBM,DELL,HP、SUN等服务器厂商,则对Windows在PC市场独霸天下感到忧心仲仲1,看见Linux,这些巨头大喜过望,于是在人力和资金(数10亿美金)上大力支持,再加上Redhat助力进入商业市场,Linux简直顺得不能再顺了。

  • 比如,“IBM曾聘请数十位程序设计师,着手让Linux支持Power处理器平台,而这项计划也自IBM软件事业部调派人手支持。”2

  • 再如:“尽管Netflix、Apple和Juniper Networks等公司都在支持FreeBSD,但它们并没有像Canonical和RedHat等公司那样投资它,共荣共生的传奇只发生在了Linux上。”3

3、虽然有很多发行版,但Linux kernel并没有出现什么成功的分支,我想,通常情况下,在资金上,人员上,大公司支持上,没有哪个分支能和Linux分庭抗礼,更不用说Linux还有Linus还这么厉害的人物做领导。

4、最近有一篇叫《FreeBSD大败局》的文章,说是许可证原因导致BSD失败,而Linux成功的一个主要原因是采用了GPL。我觉得这个不是关键因素,诚然,在GPL的要求下,任何对Linux的改进都需要公开出来,这不利于一个新分支的成功,但是,最关键的不是许可证,最关键的是:Linux实力雄厚,不论在人力、资金、公司支持上,还是在领导者才能上,无人可以匹及。

四、文化对开源的作用?

适兕在书中问道,很多成功的开源项目是从美国发展起来的,“这样的现象不得不让我们思考一个问题,技术和工程的发展,与文华和制度究竟有多大的相关性?”

我的观点是,技术和工程的发展,需要创新的精神,而究其根源,则来自于人们对名和利的追求。一个人拿出很炫的东西,彰显自己能力,获得他人赞叹,这是对名(或曰尊重、地位)的追求;一个公司,拿出很炫的产品,吸引他人购买,这是对利的追求。

从文化和制度上讲,如果一个文化和制度鼓励创新,鼓励特立独行,鼓励不拘一格,鼓励个性张扬,鼓励脑洞大开,鼓励独立自主,鼓励创业精神,鼓励出奇制胜,鼓励商业竞争,鼓励技术之上,鼓励契约精神,鼓励合法致富,这个文化和制度就更容易获得技术和工程上的进步。

五、开源靠什么赚钱?

“说实话,我一开始做这个开源项目的时候,并没有想着赚钱”,这话不是谁说的,但我觉得是大多数情况。

“后来,我想赚钱的时候,发现,开源真的很难赚钱。”这话,应该也是实情。

这不,前一段时间,faker.js的作者大发一通脾气,把项目弄得面目全非,然后彻底不玩了。

我为此还专门写了篇文章:《开源程序员绝望毁库跑路的背后》

公司搞开源,无外乎就是靠开源争取更多的用户和潜在用户,打开市场,然后卖商业版或者卖服务;或者用开源建立生态(比如andriod);或者仅仅是博取声名和好感(比如vscode),进而得到其他好处。

个人搞开源,赚钱就难得多,我在上面那篇文章总结过,这里再复述一下,无外乎:

作者被雇佣(比如Linus、尤雨溪都曾被雇佣)

项目被基金会或大公司资助(比如Linux、Spark被资助4

创业后卖商业版(比如Nginx,TDengine、Confluent、MiniGUI、VirtualApp等)

创业后被收购(比如MySQL、Docker、Nginx等)

创业后做服务(提供收费的云服务,或者提供维保服务等)

你看,要赚钱,比较靠谱的还是创业,而一般小打小闹的开源软件,作者是不会考虑创业的。

“我就玩玩,创什么业呀!”

不过,在Web3时代,也许会有改观,程序员不会让程序员吃亏的。

他们肯定有办法。

文|卫剑钒


  1. IBM为何投资10亿鼓励用户使用Linux操作系统(https://www.zhihu.com/question/21661438) 

  2. 建立Linux生态系统(http://tech.sina.com.cn/it/2006-02-16/1344843106.shtml) 

  3. FreeBSD大败局(https://mp.weixin.qq.com/s/GabbEHz8VBkrgB8JL7JU_w

  4. 助人就是助己:IBM宣布大规模资助开源大数据项目Spark(https://dude6.com/article/258541.html) 

猜你喜欢

转载自blog.csdn.net/vigor2323/article/details/123244133