开源是一个理念,是一个运动

一、没有开源,就没有今天的互联网

下图中列举了开源发展史上的重要里程碑以及具有重大意义的开源系统。我觉得,开源的星星之火之所以能够燎原,离不开它们的蓬勃发展。
在这里插入图片描述
90年代我去美国读书时,“开源”在彼时还不叫“开源”,而是“自由软件”。

1983年公布的GNU项目是我最开始接触到的开源系统;
1991年Linux诞生;
1998年“Open Source”一词被提出,OSI(开源组织,Open Source Initiative)随后成立;
2006年Hadoop诞生;
2008年,安卓1.0发布,移动互联时代拉开序幕;
2014年Kubernetes和2015年TensorFlow的发布则分别为云原生和AI时代的到来添加了助力。

毫不夸张地说,没有开源就没有今天的互联网,也没有如今的科技生态。没有开源,就没有今天的云计算,大数据,人工智能,移动OS,智能新时代……

在之前小米的发布会上,雷总提到了小米的六大科技:手机、穿戴设备、智能家居、智能制造、智能电动汽车、仿生机器人。仔细想一下,其实这些都离不开开源。

智能时代的开源无处不在,开源运动如火如荼,尤其是这两年,中国的开源运动在政府的推动下越来越迅猛,从政府到企业到学术界都在深入地拥抱开源。20多年前,没有人会想到开源一词可以写入政府的“十四五”规划。

来自于中国的开源项目、开源系统也在崭露头角,比如:首个国人主导的Apache顶级项目Kylin、百度的飞桨、分布式关系型数据库TiDB、小米自研移动端深度学习框架MACE、物联网大数据平台TDengine、旷视深度学习开源框架天元、一流科技OneFlow,还有OceanBase等等。

令人兴奋地是,自2018年开始中国连续多年成为GitHub贡献排名第二的国家,充分展示了中国技术人的勤奋、创新和创造力。

二、被误解的开源:在发展中出现的乱象

不过,虽然大家都在深度地拥抱开源,但对开源的理解存在方方面面的不同。

较为可惜的是,如果对开源理解不深或者比较片面的话,就可能做不好开源、也享受不到开源带来的长期好处,甚至因为某方面的好处而舍本逐末。比较典型的几种观点有:

“开源本质上就是一个软件分发的手段”。至于其他部分,创新或协作模式都不重要;
“开源主要是一种用户增长的渠道”。利用开源诱惑大家使用其软件,达成用户增长的目标;
“开源是一种提升公司估值的噱头”。过度看重用开源提高公司估值;
“开源是一种快速盈利的商业模式”。因此会更纠结于如何逐利,忽视开源的本质;
“开源是一种提升技术品牌的方法”。固然企业拥抱开源的确有助于打造技术品牌,但有的企业并没有想清楚怎么打造开源社区,不明白开源对于开发者的意义,只是在愿景驱使下为了开源而开源。

这些观点多少都有失偏颇,因此也造成了一些令人惋惜的现象。

举几个例子:

第一,在GitHub数目的运营上,有些企业会蓄意骗star的数量。但事实上,一个开源软件系统的成与败,不是靠一个有水分的star数目来决定的。

第二,“我开源,你来用”。开源强调更多的是共建,而不是居高临下,要求你来用我开源的东西或你加入我的生态。这实质反映了一种对于开源项目和开源生态的控制欲。

第三,缺乏合作共建,很多企业看到另外一家企业开源了某系统,就会升起攀比心,想着我也要做一个,甚至是我能比它做得更好,因此频频另起炉灶,重复造轮子。

第四,开源利益的冲突。MongoDB与AWS之间的矛盾冲突就是典型的例子。

在各方拥抱开源的大背景下,我们可以看到,不仅各大企业之间缺乏协同,学术界和企业之间也缺乏协作。如果看不到开源真正的本质的话,开源运动就不可能真正在中国的国土上兴盛起来。值得反思的是,尽管我们在GitHub上的贡献连续多年位列全球第二,但是来自于中国的真正具有强大国际影响力的的开源项目有多少呢?是什么造成了这种落差呢?

我认为,这主要归咎于很多人对开源的理解不足,无论是从理念、文化还是到具体的打法上,都有一些欠缺。

“拿来主义”。我们今天拿来主义还是存在的,没有贡献,没有回馈社区,拿来即用。这就是不理解开源之道,也不懂得开源打法。

“缺乏共享”。有的是不知道共享或者不愿意共享;有的是有意愿共享,但往往因为工作压力、缺乏时间等理由懒得共享;还有的是愿意共享也主动去共享,但长时间停留在不被社区接受的阶段。

“不够开放”。为开源而开源,不能长期投入,还有过强的“控制欲”,都会造成开源系统做不大、做不久。

在开源之法上,如果坚持开放共享,与社区共同成长,长期享受开源红利,则是相对健康的开源发展模式。反之,如果是选择封闭开发,也许会在短期受益,但最终会被社区抛弃,这种短视的发展模式比较致命。

还有一些现象也会限制开源运动的发展:过度地“趋利”和“趋名”,对开源来说是欲速则不达;开源巨头形成的“技术寡头垄断”同样会在某种程度上扼制开源生态的茁壮成长;代码开源但项目管理是“闭源”的,也不利于开源运动的快速发展。

三、挑战重重:重新回归开源的本质

开源运动在今天面临各种各样的挑战,可能会走很多弯路。早在几年前,我就提到是时候重新思考开源的本质了,思考当年GNU时代的快速兴起。当时我比较了自由软件和开源软件,我觉得自由软件更加贴近开源的本质,开源让企业和商业公司拥抱它,但商业慢慢地在扭曲自由软件带来的开源的本质。
在这里插入图片描述
  回顾一下GNU快速兴起的时代,当时我特别喜欢GDB、GCC,喜欢Emacs。当时的自由软件是如此的纯粹,以致于可以尽情领略早期通过开源模式来打造共享创新平台的魅力。在GNU土壤上长出的Linux就是一个典例,Linus当时根本没有想过要做商业公司盈利,只是出于爱好要做一个自己可控可玩的UNIX系统,因此Linux平台才能一步步从最初发展到如今庞大的生态。

2019年,我们把Kaldi 之父 Daniel Povey引入小米,靠的主要就是小米对开源的深度拥抱。到中国之后,Povey强调最多的是,他想为中小微企业打造一个免费的、功能强大的、性能卓越的语音识别工具集 Kaldi。他不追求名利,他追求的是比较极致的开源。我们当时就达成了共识:做开源,我们要让Kaldi这个系统、小米、所有创业企业,以及所有用这个社区的人达成多方共赢。

今天我们要回归开源,我认为开源的本质在于:开放、共享、平等、协同、创新。

开源作为一个很好的创新平台,应该强调更多的是利他主义和长期主义。相较于为己争利,要更多地去考虑能不能和大家一起共建,更注重利他;相较于短视地追求利益,放弃急功近利的思想,更注重时间的沉淀和积累。

最近在读《论语》,其中有两句话让我深有感触。一是“德不孤,必有邻”,做开源如果一开始就秉承开源之道,不用担心没有志同道合的人,很多人会跟你一起共建;二是“道不同,不相为谋”,如果太注重私利,那么久而久之,没有人愿意跟你一起共建,这个开源项目可能就很难做大。

四、开源与技术创新

简单聊一下开源与技术创新。从GNU到Linux,到安卓,再到移动互联网,这代表开源带来的创新,没有这些,就没有今天手机上的很多的东西。

开源和创新有什么关系呢?美国著名的社会学家、科学社会学的奠基人罗伯特·金·默顿在他所写的《站在巨人的肩膀上》一书中,总结了现代科学的精神特质(科学道德观/范式):普遍主义、公有主义、无私利性和有组织的怀疑主义。这种理念与开源的本质是非常吻合的,时至今日也不过时。

过去我们做研究、写论文、发表文章,没有互联网,就要到图书馆查文献,翻阅纸质的书。但今天我们有arXiv,还有Papers With Code。随着AI的发展,基于开源的创新形成了一种平衡,一篇文章是文档的code,还是带代码的paper?区别不大。

如果大家相信软件定义一切,也同意AI赋能万物的话,想必也会赞成我的这一观点:在互联网、大数据和人工智能时代,开源是人类技术进步的最佳平台和模式。开源不仅仅是一个软件分发的工具,也不只是一个商业模式,它是真正可以帮助我们创新,帮助我们协作,让所有技术进步的非常重要的平台和模式。

猜你喜欢

转载自blog.csdn.net/java_cjkl/article/details/129764247