院士谈软件开源:开放代码背后的两个本质逻辑
关注老石谈芯,一起探究芯片本质
微信的推送规则进行了调整
如果文章对你有用,请在文末点击“在看”,“分享”和“赞”
这样就不会错过老石的每一篇推送了
目前,开源已经成为技术发展的主流趋势。通过开源,可以让一个团队快速完成绝大部分基础代码的搭建,然后专注于创造和自己业务相关的关键代码。只不过,很多人对开源仍然心存疑虑,比如开源之后如何挣钱、开源如何提升开发效率、中国的开源环境现状如何、未来发展怎样、普通人应该如何参与开源项目……
最近,今日头条科学频道联合中国计算机学会(CCF)推出“这很科学”之《科学真言》系列视频,我有幸受邀参与,并且带着这些问题和中科院院士、中国计算机学会开源发展委员会主任王怀民教授做了一次深入交流。
对于开源,王老师有着深入而独到的见解,并且善于用幽默通俗的语言阐述深刻的科学问题,我深受启发。我把我们的对话进行了整理和采编,以飨读者。本文是第一篇,主要是王老师对开源的产生、发展、本质逻辑的阐述和思考。文章比较长,但肯定会对你有所帮助。
注:以下的“我”,指的都是王怀民院士。
一、开源,其实是个「祭品」
现在大家觉得开源是个很自然的事情,但回过头来看开源的历程,其实并没有想象中的那么简单。
我把开源产生的原因总结为两点。第一个原因,就是学术传统使然。
其实在我们学术界,成果要公开的发表和交流、得到同行的评价,这已经是国际共识了,也是学术成果的一个基本的社会形态。过去我们以自然语言表达的学术论文、专利,都在一定意义上是公开的。比如学术论文在学术学术版权、或者叫著作权保护的前提下进行公开,专利在专利保护意义上进行公开。所以学术界有这样一句话,不公开发表就等于死亡、或者就等于不存在。而软件源代码,实际上是信息时代学术成果的又一种表达形式。
如果我们把它再扩大一点,从更大的历史尺度和人类文明发展意义上讲,一个文明留存称为之所以称为文明,一定是以某种形态进行计数和保留的。早期是岩画、后来有了语言文字,如果不被技术不被传播,这个文明实际上是没有意义、没有价值、没有影响力的。
比如说当年的孔子和亚里士多德,如果没有那些学生把他的东西记述下来、一代代保存和传播下来,他们恐怕就不会有对于今天人类文明的影响力。
那我们再宽一点,我觉得发表和交流是人的天性。人性就是要表达、要表演、要得到关注和反馈。
再回到我们今天的这个信息时代的环境下,先不说程序员,你说我们这个博客为什么会火、抖音为什么会火、网络小说为什么会火?本质上,就是有一种思想得到表达和反馈。这时大家觉得哎,这件事情是个有意义的事儿。
所以我想,软件被公开发表出来,实际上是自然的、是天经地义的。我把它归述为近一点的话,在我们学术界和产业界讲它是一个学术传统,而我觉得更是一个文明现象,更是一个人类天性的一个自然表现,或者是人的社会性的一种自然展现。
当然,软件在今天的这个时代有它的特殊性:它还是一种商品。所以产生开源的第二个原因,就是因为它和商业创新的文明是紧密联系在一起的。
这个这之所以成为问题,是因为开源在软件商业文明的创新中,曾经经历过了一次所谓的「冰火两重天」。在软件产业独立出来之前,程序员之间交流软件在很小的范围内。但是后来,随着IP的发展,软件逐步有了商品的属性。我觉得最典型的一件事,就是当年贝尔实验室把Unix开放给学术界;但后来发现这个事情有商业价值的时候,特别是在硅谷Sun公司、HP公司、微软公司利用这些技术进行产品创新的时候,他突然发现这个技术是有商业价值的,于是就开始收回了开源许可,改成了定向地通过知识产权授权的方式提供给相应的公司。
也就是说,软件有了商品属性,所以开源不开源才成为了问题。
其实,在人类过去其他的作品里,比如小说或者学术论文等,也有他的商业价值,后来是通过了诸如出版业这种业态,使得这件事情得到了很好的解决。
第二个典型的事件就是微软,他们突然发现软件有两种表达形式。一种是高级语言、然后再加上相应的注解,这是帮助程序员阅读和交流的。另外一种形态是机器代码的形态,用户买了就是去执行的。于是微软就把代码保护起来,这样就可以更好的保护他的商业利益。这种控制软件源代码的传播、且只出售可执行代码的商业模式,对于软件产业早期的发展产生了重要作用。
把代码保护起来,是软件业态发展到特定时态的一种特殊形态。只是我们这一代人进入这个行业的时候、或者软件以更广泛的形态进入到社会大众的时候,是以闭源的形态时代进入的,因此大家认为不开源是常态。
就像我刚才前面讲的,无论是学术传统还是开源的早期,开源实际上才是常态,而闭源只是一个特殊的浪花。
所以我想说的为什么要开源的第二个原因,开源是一种商业模式的再创新。特别是在互联网时代,大家突然看到拥不拥有源代码不是本质,能不能为用户提供高效的服务才是本质,而开源成为了一种新的商业创新模式和竞争手段。
开源的成功,是因为在互联网的这样一种不确定的环境下,没人知道什么样的软件是用户喜欢的。因此用开源的方式来寻找所谓的创客、来寻找自己软件的粉丝,用开源的这样一种所谓的叫祭品,反而能形成一种构造一种吸引力机制。也在软件的进一步完善创作、以及开拓市场和客户方面形成了独特优势,比闭源来要强很多。
通过开源,人们找到了这不通过保护源代码获得商业利益的新办法,而又降低了这个获得这个创客和粉丝的这样一种低成本的可能性。
所以为什么开源:开源是学术传统、开源是商业创新,它本来也是人类文明的常态,也是人的天性。
二、代码公开后,如何挣钱?
这个是一个很好的问题。以Linux为例,他的兴起的时间和Windows商业版兴起的时间类似,几乎都是90年代初。但是在90年代,至少在个人计算机操纵系统上面,开源软件是一点机会都没有的。
我想这里边有个生态演化的视角。个人计算机的时代,是IT发展的一个比较确定性的时代。通过80年代的孕育,IT的主流和市场增长量主要来自于个人计算机。因此个人计算机在IT的发展在90年代就成为了主导形态。
而个人计算机的操作系统,又是个人计算机发展的具有主导性的基础软件,而这个基础软件又被几乎是统治性的微软所垄断。也就是说,在一个确定性的时代,用微软那种商业模型是最能够保证商业利益的。
比尔盖茨说,你用买两本书的价格就可以买一个办公软件回家。你看他的这个商业锚点长得非常之好:两本书的价格,你就可以在我这个软件上去阅读其他的更丰富的文件文档、去创作更复杂的作品。大家觉得这件事太合算了。因此,他以这种以闭源软件的方式及其提供的服务价值锁定了用户。
问题就出在互联网时代到来以后,出现了一个不确定性的时代。虽然互联网商业化在90年代就开始说了,但是在互联网上怎么挣钱这件事情在90年代是有巨大争议的。
我们都知道很多互联网创业公司都不成功。并不是说他们的技术没价值,而是在市场上不成功、没挣到钱。直到新世纪,在过去的20年人们取得的成功不是靠封闭代码成功,而是靠开放代码形成的。这就是我刚才说的吸引力漩涡。
经常有人说我写了个好软件、我开源了,我的商业价值就丢了。其实你要先想想这个软件有没有商业价值。只有开源出来,才知道有没有商业价值。比如有很多人下载、有很多用户愿意去体验,就说明有商业价值了。因此,开源实际上是形成和试探一个软件有没有商业价值的一个祭品。你是要把祭品摆出来的、是要在这个祭品周围做法事的,然后有一批麻瓜围着你看,然后你就会认为这个祭品有戏。那为什么有麻瓜来围观呢,肯定是因为解决了麻瓜的问题了。
解决问题的时候大家突然发现,源代码不是重要的。就像是说不是买本书回去,你就拥有了书中的知识,而是需要有教师这个服务告诉你。因此,这个基于知识的服务才是最重要的。这件事情在互联网时代逐渐的被用户接受和理解,所以这样把更多的专业服务融到一个专业公司、为相关的人员提供专业化的服务,就逐渐成为主流。
你看他这个互联网公司的这个成本,就是羊毛是是长在狗身上的。大量的创客承担了大量的成本,最后是怎么挣钱的?是卖给了一个用这个软件服务的一个客户,叫猪买单。就羊毛长在狗身上猪买单,至少一定数量的羊毛长在了狗身上,然后猪买了,这样这个服务模式就形成了。
在创新和市场开拓上,通过开源形成的吸引力机制,就大大的降低了开发的风险成本和市场开拓的前期成本。所以,这个事情一说起来在商业上成功肯定是有道理的,卖的是服务、降低的是服务形成的成本。他由这种垂直的这个产业垄断,变成了通过开放技术这个横向的分工。
我特别强调,就是个人计算机时代和互联网时代的变化,就是个人时代的确定性和互联网时代的不确定性,形成了这种造就一个大象的模式和造就一个生态的模式的这个差别。此外,开源从来都不是放弃知识产权,开源只是知识产权追溯的成本带来了更大的挑战。
三、开源模式的本质:群智激发与群智创新
我认为,开源是表象,而本质上他是群体智能的一种重要的形成方式。开源之所以有巨大吸引力和商业优势,就是因为它形成了一种更大规模的群智创新。
过去你一个人做,现在你形成了横向分割和标准化以后,更多人可以参与进来做,因此才有了工业时代的所谓的生产力水平的极大提高。开源也是我们今天在IT和信息时代形成分工的一种有效的创建模式和媒介,形成了一种群智创新。
你开源出来,让更多的人能够参与到这个作品的创作过程中,这个我们叫做群智激发。在这一点上,开源比过去的这个企业模式效率要高太多。过去的企业方式主要是群智汇聚:总设计师设计好的产品,招来的员工都是把这个产品实现出来。这也是群智,但是他的形态是汇聚,并不激发更多人创作,更没有条件去激发更多人参与创作。这个这个成本就很高了:做这个产品的人是不是你今天能够招到的,这事情是不好说的。在软件领域,难者不会、会者不难更加突出,一个顶十个在特定的问题上那绝对是真的。因此,这种群智汇聚在对人才和资源的筛选和匹配效果与竞争力有限。
相比之下,开源开放这个作品只是表象,激发起更广泛的群智创新才是他的根本之所在。
当然,实际上后来产生的问题就是对贡献者价值的认可,以及对开源许可证和机制的设计。这个是在开源界走到今天,我个人认为还没有很好解决的问题。开源知识产权管理,也是中国应该在这方面有所作为的一个重要的着力点。
一个例子是,我贡献给你这个项目,我能不能共享这里边的利益。我们学术界都有共同属名权,而现在这个开源主流的方式里,贡献就贡献了,顶多我留一笔给你个致谢。但共同署名权和被致谢的差别太大了,因此机制设计上还有很大的空间。
UC Berkeley里当年做BSD许可证的时候,它的基本出发点就是学术界学者的出发点:你可以用、怎么用都行,你只要引用我一声就行了。这和学术论文的传播一样,你怎么读我的论文都没关系,但是你基于我的论文做了工作,就要引文一下。
当然这个有一个认知过程,早期大家都没在意这件事情是知识产权,也对开源知识产权的理解上有差距。
小结
在下篇文章中,我会继续分享王怀民院士对中国开源现状的深刻思考和理解,包括中国科技未来的发展机遇、硬件开源的机会、以及普通人如何参与开源,敬请期待。
(注:本文不代表老石任职单位的观点。)
老石谈芯社群组建中!扫码添加小助手进群~
微信扫码关注该文公众号作者