本公众号部份分享的资料来自网路搜集和整理,所有文字和图片版权归属于原作者所有,且仅代表作者个人观点,与本公众号无关,文章仅供读者学习交流使用,并请自行查证相关内容,如文章内容涉及侵权,请联系后台管理员删掉。
来源:云技术
出品|OSC开源社区(ID:)
本文作者:王春生
作者自我介绍:我是春哥,禅道软件公司的创始人,二六年的IT老兵,14年的创业者。喜欢编码,喜欢做产品,所以我用了代码之歌做我的公众号的名子。我会持续地更新关于企业管理、产品管理、项目管理、团队建设、创业、学习型组织、企业文化、开源软件等方面话题的实践和思索,欢迎你们和我讨论交流。
开源软件早已像水和电一样融入到了我们日常的生活中,但我们对开源软件还有好多错误的认知。我尝试站在开源软件作者的角度来进行总结,总共有七大错误认知。
首先来看第一个错误认知:只要软件开源了,都会有人用。
好多刚开始从事开源软件开发的作者国家认可的赚钱软件,会有这样的看法。觉得我只要把软件开源下来,才会有人来使用。但事实上一个软件有没有人用,首先看它有没有价值,而不是先看它是不是开源软件。开源软件首先是一个软件,开源是其主语。所以从这个角度来讲,开源软件不会赶超软件本身的属性限制,要先有用。在这个基础上,再进行开源,可以为用户带来提高的附加属性。
这给我们的提示就是在做开源软件之前,要认真思索软件的定位:
第二个错误认知:我又没收你钱,软件有漏洞、问题跟我没关系。
开源软件许可合同一般会包含类似这样的条款,表明作者不对用户使用该软件所导致的任何问题负责。例如GPLV3的第15条款,就是这样的申明:
15.of.
THEREISNOFORTHE,TOTHEBYLAW.WHENINTHEAND/OROTHERTHE“ASIS”OFANYKIND,OR,,BUTNOTTO,THEOFANDFORA.THERISKASTOTHEANDOFTHEISWITHYOU.THEPROVE,YOUTHECOSTOFALL,OR.
英文版本:
本程序在适用法律范围内不提供品质担保。除非另作书面申明,版权持有人及其他程序提供者“概”不提供任何显式或隐式的品质担保,品质担保所指包括而除了限于有经济价值和适宜特定用途的保证。全部风险国家认可的赚钱软件,如程序的质量和性能问题,皆由你承当。若程序出现缺陷,你将承当所有必要的修补和更正服务的费用。
这份合同还特意用了全小写的形式来申明。并且自2017年《中华人民共和国网路安全法》正式施行以来,这样的申明就不再有效了。
《中华人民共和国网路安全法》第二十二条规定:
网路产品、服务应该符合相关国家标准的强制性要求。网路产品、服务的提供者不得设置恶意程序;发觉其网路产品、服务存在安全缺陷、漏洞等风险时,应该立刻采取补救举措,根据规定及时告知用户并向有关主管部门报告。
网路产品、服务的提供者应该为其产品、服务持续提供安全维护;在规定或则当事人约定的时限内,不得中止提供安全维护。
网路产品、服务具有搜集用户信息功能的,其提供者应该向用户明示并取得同意;涉及用户个人信息的,还应该遵循本法和有关法律、行政法规关于个人信息保护的规定。
第六十条规定:
违背本法第二十二条第一款、第二款和第四十八条第一款规定,有下述行为之一的,由有关主管部门勒令改正,给与警告;拒不改正或则造成害处网路安全等后果的,处五亿元以上五十亿元以下罚金,对直接负责的主管人员处一亿元以上十亿元以下罚金:
(一)设置恶意程序的;
(二)对其产品、服务存在的安全缺陷、漏洞等风险未立刻采取补救举措,或则未依照规定及时告知用户并向有关主管部门报告的;
(三)私自中止为其产品、服务提供安全维护的。
所以诸位开源软件的开发者们,一定要认真理解这个法律的条款。我们早已收到过五次公安部下发到上海市网监的漏洞整改通知。具体细节就不跟你们述说了。这给到开源软件作者们两点警示:第一个就是一定要及时处理自己产品的相关漏洞,另外一点就是认真思索开源商业化方面。
第三个错误认知:我应该选择最高领的开源软件合同。
许可合同是开源软件的法律基础,它规定了用户可以怎样使用、修改和分发软件。有些人错误地觉得,选择最高领的许可合同可以吸引更多的用户和贡献者。但是,许可合同的选择应当按照具体情况进行权衡,并考虑到软件作者的目标和需求。
比较修身的许可合同限制比较少,如MIT和BSD许可证。这种许可合同几乎没有限制,容许用户自由地使用、修改和分发软件。但是,这也意味着其他人可以将开源软件用于商业目的,甚至将其修改后的版本作为专有软件发布,而无需向原作者贡献任何代码或更改。对于一些开源软件作者来说,这可能不符合她们的意愿和目标。
相比之下,像GNU通用公共许可证(GPL)这样的许可合同对代码的再分发和更改设置了更严格的限制。它要求任何使用或更改GPL许可的软件的派生作品必须以相同的许可证开放源代码。这样可以保护开源软件的自由性和共享精神,避免将其私有化。
因而,在选择许可合同时,开源软件作者应当考虑到她们的目标、期望用户和社区的需求,并选择合适的许可合同来平衡开放性和保护性的要求。
第四个错误的认知:我应该努力地将软件捐赠给基金会。
近来这几年,有不少国产的开源项目相继从软件基金会结业,成为软件基金会旗下的项目。姜宁老师也两度连任软件基金会监事。还有一些项目是加入了CNCF云原生估算基金会。包括中国也创立了开放原子基金会,大厂也都有一些项目捐款给了开放原子基金会。这对中国的开源软件作者也是一个鼓舞,好多开源软件作者也都在思索自己的软件是否也可以加入这种基金会呢?我尝试来探讨下自己的观点:
首先这是好事情。说明了中国的开源软件生态越来越成熟,也涌现了一批高质量的开源项目,在国际上也就能形成我们的影响力,一定程度上也改变了中国只是开源软件消费大国、对开源社区回馈较少的难堪局面。
然而不是我们要努力地将项目捐款给基金会,以筹谋项目的健康发展呢?对此我会有完全不同的观点。
第一,基金会并不是你想加入才能加入。无论是软件基金会,还是CNCF云原生估算基金会,对项目的方向、成熟度、投入都有比较高的要求。所以目前才能加入这种基金会的项目大部份都是大厂背景的开发团队开发的。开放原子基金会目前的项目基本上都是会员单位捐献的,网站上似乎也没有公开加入开放原子基金会的具体章程。所以,对于我们这种个人或者小团队的开源软件开发者来讲,这条路就不要想了,门槛太高。
第二,假如你的项目真的很不错,都达到了加入基金会的标准,我也建议你认真思索一下加入基金会的诉求是哪些。对于大厂来讲,将项目捐款给那些基金会,可以提高自己的品牌,吸引优秀的开发者加入,构建行业标准,这种都是可以通过基金会来达成的。但若果你有明晰的开源商业化方面的诉求,我建议还是要谨慎,由于将项目捐款给基金会,须要将代码的所有权和商标都要捐款给基金会。换句话讲,这个项目就属于基金会了,你只是这个项目的主要贡献者。无论从什么方面来讲,你都制止不了其他团队可以借助早已不属于你的项目去做商业化的操作。
这一块我要展开来说一下。整个自由软件和开源软件运动的基础,还是。正是有了,才有了。开源软件这些游戏规则之所以还能运转上去,底层还是法律。只要是你创作的东西,你天然拥有对它的专著权(专著权不须要额外申请,都受法律保护。通过专著权登记、时间戳存证等手段可以更好地保护自己,后续再讲)。之前的软件售卖都是有源码的,后来比尔盖茨说我们只能给你二补码文件,因而开启了谷歌帝国时代,所以才有了黑客们对商业软件的还击。开源软件区别于商业软件,就是向软件的用户让渡了更多的权利:你可以对代码进行更改、进行二次分发。那开源软件作者为何可以如此授权呢?由于代码的版权是我的,所以我想怎样样就如何样。这是底层的游戏逻辑。其实开源软件还有一个基本游戏规则,就是我不对你使用软件导致的任何问题负责,由于开源软件和用户之间并没有产生商业协议上的契约关系。(然而随着《中华人民共和国网路安全法》的施行,前面的这个游戏规则不创立了,所以我们必需要对开源软件的玩法做更改,参考我的前一篇文章《关于开源软件的七大错误认知(上)》。)
所以从这个角度来讲,你将开源软件捐款给美国的基金会,这个代码的和商标从法律上就归人家基金会了。假如我们上升到国家的角度来看这个问题,我们把我们优秀的开源软件都捐赠给美国的基金会,这会不会对国家的知识产权和国家安全导致恐吓呢?2021年闹得沸沸扬扬的组件的安全漏洞,可窥一斑。阿里云的工程师在发觉了这个漏洞然后,第一反应不是向中国住建部通报相关信息,而是先向法国的软件基金会披露了该漏洞。住建部得悉这个漏洞然后,时间早已过去了15天。15天会发生哪些呢?尤其是在现今的这些国际政治背景下边。这个问题往小的方面讲,是国家安全意识不够,往大上面讲,是大腿坐得正不正的问题。
有童鞋恐怕会问,我们不是还有国外的基金会吗?上面也讲了,如今门槛太高,不是我们想加入就加入。另外开放原子基金会有特别强的政府背景,在运作上会有比较强的监管,在各类新政举措颁布上会比较谨慎(慢)。所以在国外的开源相关的基金会成熟之前,我们须要通过社区的形式来推动开源生态的发展,所以这是渠成开源社区组建的本意(突如其来的广告)。
第五个错误认知:开源以后会有好多人来帮我建立项目。
好多开源软件作者开源,是希望有更多的人参与到项目中,这样项目的问题才能得到及时地发觉和处理,项目也可以持续地发展。但实际的情况是哪些样的呢?InfoQ联合X-lab开放实验室发布的“2019数字中报”,通过对2019年上5.46亿条日志进行剖析,得出了世界范围内开源软件项目的一些汇总数据。这其中有这样的信息值得我们思索:
2019年总活跃项目数为512万,但活跃度超过1000的项目只有1399个,不到万分之三。
在这512万个项目中,只有333个项目有1000位开发者参与,而2019年上活跃的开发者数目是360万。
2019年活跃度排名前10的项目中,有60%来自大厂,其中有2个来自谷歌,分别是和azure-doc。3个来自,分别是、、。还有一个是来自红帽的。
2019年活跃度前列的项目中,大厂维护的项目如今依然十分活跃,而排行第10的,早已停止维护了。
2019年中国Top20的项目中,主要都是大厂维护的项目。
Vue项目2019年大部份的贡献是由一个帐号EvanYou,也就是尤雨溪尤大贡献的。
2022年1月份,cURL的作者发表了一篇文章,吐槽世界500强企业白嫖技术支持的乌龙风波。具体新闻可以看开源中国的网址:
。类似的事情太多了,就不一一列出了。
所以,推论是,开源项目的维护主要还是要靠自己。
第六个错误认知:我开源不是为了钱。
这个话题恐怕会有好多开源软件的作者会不赞成。如同Linus做Linux项目,justforfun。好多开源软件作者比较纯粹,把软件开源下来就是希望还能对用户有用,并没有商业化的目的。但我把这个话题换一种抒发形式,恐怕你们就会赞成。其实你们刚开始开源的时侯,确实没有想着挣钱。但随着事情的变化,你们还会考虑,我能不能通过开源项目挣钱呢?
刚开始开源的时侯,开源软件的作者更多的是激动,以及软件得到用户认可所带来的成就感。但随着用户的增多,来自用户的问题都会越来越多。有的是希望你帮我解决一些使用安装的问题,有的是希望你帮他做一些功能。随着这种问题的增多,你做开源这件事情的性质都会渐渐发生变化。从最开始的分享为主,渐渐弄成维护为主。开源项目给到你的乐趣会渐渐降低,责任和义务都会渐渐增多。自己的投入会越来越多,心中的不平衡感才会越来越强。这时侯你们都会考虑,我是不是可以通过开源项目来赚点钱呢?
所以这是水到渠成的看法,也是十分合情合理的看法。才能通过开源项目获得一定的利润,之后支持自己在开源项目做更多的投入,这是一件十分好的事情。
再来看最后一个错误认知:开源软件靠服务和资助可以挣钱。
网上有好多的资料,在谈到开源软件的商业模式时侯,都会晤到软件免费,服务收费。这个模式按道理是才能讲得通的。虽然软件我都给你了,你要是有问题,我通过服务来收点费用,不是很合理吗?但这儿面有一个悖论,我来给你们剖析一下。
先来划分下这个服务的范围。我所理解的软件免费,服务收费的服务,是指保证软件正常运行使用过程中所形成的支持类的服务。二次开发类的服务和咨询培训类的服务,超脱了这个服务的范围。
假如我们尝试通过支持服务来收费,这么哪些情况下用户须要支持服务呢?肯定是软件有问题用户才能须要服务,对吧。假如我们希望通过服务来赚比较多的钱,肯定是希望用户提出越多的问题越好。那假如一个软件问题比较多,那就说明软件复杂度或则质量有问题。那这样用户就比较少。用户少,那如何通过服务来收费呢?所以这儿面就存在了这样一个悖论。
哪些样的软件可以通过支持服务收费呢?这个软件对企业十分关键,她们须要一个商业主体来为这个软件的正常运行负责,这样的软件通过服务收费能够行得通。哪些样的软件符合这样的标准呢,基础软件。所以红帽卖自己的订阅制服务是行得通的。
我们禅道团队在开发项目管理软件之初,就舍弃了通过支持服务收费的看法。我们给禅道开源免费版的用户就会提供近乎于实时的技术支持。我们的目的很简单,吸引更多的用户使用禅道。一个社区的陌生男子伴,只有成为你软件的用户,才有可能成为你的顾客。为了吸引更多的社区男子伴成为禅道的用户,我们不遗余力的建立产品、提供各类技术支持。之后通过我们的收费的版本来实现商业化。
好多开源软件作者也都放出了自己的捐款帐号,但实际的情况怎样呢?我们在网上也看见过好多的新闻,好多著名的开源项目,一年收到的捐款少得可怜,可能连主要维护人员的正常生活都保证不了,这还是在欧美。例如Core-js项目每周下载量达数千万次,累积下载量早已超过90亿次,但作者Denis并没有从这个项目中获得更多的回报,甚至由于全职维护Core-js而贫苦落魄。他想了各类办法来筹措资金便于维护开源项目,结果每位月也只能获得几十欧元的赞助。恐怕会有男子伴会提Vue尤大的反例,但这个只能是个例,但是好多对Vue的捐款是有品牌推广的性质在上面,和我们一般说的打赏类的捐款还是不太一样。
我们最开始几年也有开放捐献的通道,也相继收到一些资助,不过相比较于我们的研制投入来讲,只能说是杯水车薪。由于我们跑通了商业化这条路,我们把我们所收到的捐款又全部捐了出去。后来我们就关掉了捐献的通道,是由于有的人由于捐款以后,希望我们能否给他做一些额外的事情,这早已超出了捐献这件事情本身的含意。
所以你们就不要幻想通过技术支持和资助来实现健康的收入了。须要认真考虑开源软件的商业化之路。这是关于开源软件的七大错误认知系列的最后一篇文章。欢迎你们来讨论。