开源之道 -- COSCon18 主题分享

开源二十年,内核和外延正在变得愈发的丰富,随着个人和企业的积极参与,不仅仅是代码、社区,已经由内而外的包括诸如创新、经济、商业、文化等等诸多内容,需要细细的梳理相关的知识,本文只是一个纲目式的笼统概括。

Sat Oct 20, 2018 | 3400 Words | 大约需要阅读 7 分钟 | |

引子

我相信对世界进行更多的探索是值得的,哪怕它只会让我们明白我们懂得太少。对我们有益的一点事要时刻牢记:虽然我们由于各自所知的不同而参差多态,但总的来说我们的无知并无差别。 ———— 卡尔. 波普尔

如果是这样看似没有逻辑似的穷举,是不是会有让人疲惫的感觉?那是因为我没有去找一根线索来串起来,而这根线索往往才是一篇文章的灵魂。

演讲内容实录

接下来由我给大家分享一些有关开源的个人心得与体会,我一般称自己为开源信徒,或开源布道师,目前是一位自由职业者,除了日常的学习之外,就是参与贡献开源的事情,比如我本身也是开源社 – 草根社区的执委会成员。

今天的演讲分享灵感来自于前不久远在大西洋彼岸的开源会议——OSCON 2018, 由O’Reilly的创始人Tim O’reilly 的主题演讲其中的一张slide所吸引,这是我不止一次看到开源界的“歪果仁”使用《道德经》的话来讲事情。感谢O’reilly 对我的影响。

在往远说一点,我怎么对开源本身产生了兴趣,我做工程师很多年,从Linux到虚拟化再到IaaS,然后失败了几次,在2015年底的时候,组织了一次社区关于文化的活动,作了一次演讲,也写了一篇文章。那就是这篇:《为什么基于成功的开源项目商业产品会失败?》,从那之后,渐渐的兴趣开始有了转变,开始研究具体的技术之外的东西,开始布道、撰文、阅读各种学术论文。关于具体的怎么做开源等详细的细节,大家可以订阅我的博客《开源之道》,也就是 The way of open source。这个是公众号,是博客的内容镜像。注意这样一个蛮奇特的现象。等一下我会提到。

接下来,我们来聊聊开源,以下纯粹是个人的认知与体会。那就是在我这三年的布道经历中,当我和人们讨论开源的时候,我们究竟在讨论什么?

首先是各种具体的实现细节,诸如数据表示、算法、通信、信息论、控制论等等,这样的人很少,几乎难以见到。

然后是具体的各种各样的开源项目:gcc、Linux、Apache、Hadoop、TensorFlow以及很多很多是我在这里念几天都念不完的。谈这个是最多的,因为浅显,所以念下名字,大体是做什么的,属于什么范畴,这个几乎占据了所有的讨论。

开源是软件工程,同样是OSI的提出者,天才般的Eric.s.Raymand,撰写了Linux为什么会成功,基于社区的协作模式是可靠的,比如著名的Linus定律:“如果有足够多的眼球,Bug就无处藏身!”。随着社区的协作模式日渐发展,康威定律也渐渐的被证实,分布式、模块化、共识等等,开源的软件工程是可以的。尽管这个所谓的工程是和日常见到的有着完全不同的概念。比如开源的项目,是不会有初期投入多少人,预计什么时间完成,一切都是未知的方式进行的。然而,它真的可以成功。

开源是公共物品吗?这更多是一个思考,是我们可以随时享用,不需要任何付出和维护的吗?政府在这里的作用是什么? 作为基础设施的开源软件,正如我在开源书籍推荐 ————《路与桥——现代世界数字基础设施那些隐藏的劳动》一文所描述,开源的项目是隐藏着巨大的危机的。openssl事件可能众所周知,但是想这样的项目还有很多,比如NTP。

还有大家比较关心的一点,在经济学家眼里开源意味着什么?开源是(开放、共享、回馈)经济学,毕竟这里代表着先进的生产力。在这里给大家举个例子,来自哈佛商学院的Nagles最新研究成果:参与到上游对于竞争是弊大于利的。而且所列举的例子也是能够在现实中找到实例的。他最新的论文叫做:“Learning by Contributing: Gaining Competitive Advantage Through Contribution to Crowdsourced Public Goods.” 推荐有相关兴趣的同学阅读一下。

开源是自我奉献,这里有很多值得大家注意的地方,乌托邦从来都只是活在人们的幻想中的,你真的想要自由,要准备好付出很大的代价。请大家一定要注意,开源不是什么情怀,开源从诞生的那天起就是妥协的结果,是自由与商业妥协的结果,或者叫做换一种方式实现自由。特别是年轻人,如果有人在利用开源和你谈情怀,你一定要小心了。最好是阅读一下相关的背景,搞清楚其中的利害关系。

开源是知识产权,这也是我们非常值得关注的地方,由于特殊的文化背景原因,我们生活的这篇土地上,对于知识产权是个大难题,我的一贯主张是没有知识产权,你就不可能有开源,知识产权是开源的充分条件。你读书人窃书不叫偷,随意copy不留名,这种事情只会带来伤害。

现实一点都不重要,认知决定一切。 – Graham Moore 《The Last days of Night》

开源是空手套白狼,这个是错误的认知,但是非常的常见,也是一些公司主管商务的人最大的认知误区,尤其是非常看重短期利益的人,开源就是他们能够快速的圈钱工具。尽管他们最终付出了很大的代价,但事后往往也不会考虑是因为这方面的原因。

开源是社区,准确的说是技术社区,社区的文化由来以久,商业公司建立社区也有不短的历史:IT公司构建技术社区也是非常的成功,比如微软的MSDN、Oracle 的java社区等等,但是本土是很少有围绕开源技术成立真正意义上的社区的,最大的一个弊病就是不是以人为单位,而是某些公司的市场营销活动。社区很关键,社区是开源技术成功的必要条件。

现在我们讨论的时候,经常会讨论到开源软件基金会:FSF、Apache、Linux、Python、Gnome、OpenStack、CNCF 等等,讲这个我可以简单谈论下最近的单一厂商发起的开源项目更改许可证的事件,Redis、MongoDB,类似这样单独厂商发起的项目,很难获得其它商业公司的参与,这是一个伦理问题,正如 Nathen Harvey 在 Information Week 中的文章中指出了三个问题:

“项目应该由商业的赞助商驱动还是外围的贡献者驱动?商业利益是否应该凌驾于社区的意愿之上?该如何以及在哪里为商业实体和开源社区之间划上一个明确的界线?”

开源是一种商业模式,商业是可以具有72变化,以各种各样的形式渗透到你的世界。开源也可以被扯上关系,比如Open Core、服务和支持等等,现在越发的被认可,不然最近的Cloudera和hortonwork是合并、ElasticSearch 上市等,哦对了,最近还有一位技术人员转型做投资人的是:JJ创立了OSS.capital,他的口号是开源正在吞噬一切。

开源是开放标准,这个尤其是传统电信的转型,如Linux基金会下的电信组织,世界各大电信厂商都在积极的投入NFV领域、IoT领域。

从来都有人认为开源只是创新的”跟屁虫“罢了,但是世界变了。开源是开放式创新的最佳注解,这是一个结论式的论断,详细的介绍我也曾专门论述过,而且有相关的理论支撑。最近发生在开源界的项目如Docker、TensorFlow、Hyperledger等等均是这方面的侧面例证。

开源是 Social Phenomenon,这里我显然是没有翻译过来。这个词的内涵是蛮丰富,可以历史追溯的,我这里只讲一点,那就是人都是喜欢获得被别人认可的,尤其是自己倾注了大量时间和精力做创造出来的东西,GitHub 的成功就是最好的例证。其实公司也一样。

开源是一种市场营销,或者说开源需要市场营销,无论是公司和个人,在项目丰裕而不是稀缺的年代,想要获得别人的注意和认可,就得先设法告诉别人。开源社区往往是被商家或Marketing人员盯着的,毕竟收现成的比培养要节省资源多得多。

开源是企业生态战略,由于软件的特殊性,软件的主要劳动力是知识型人才,一般培养需要花费多年的时间,那么人才是最为关键的因素,而且人掌握了相应的技能,更能缩短市场占有的机会。于是各个大厂都在开源界铆足了劲,毕竟开发者关系才是王道。目前为止,有多个企业的开源项目成功的案例,如著名的Android、WebKit、Kubernetes、Mozilla等。

哦,终于要讲完了,这里是最后一个,我个人认为也是最为重要的一点,比如崇尚权威,不过那不是我今天要讲的,我今天只想说一个文化现象,大家有没有想过,也是美国著名汉学家,费正清教授的论断:”在中国人们不是造出更好的捕鼠器,而是谁有资格造捕鼠器。” 开源是有文化差异的,这一点一定要切记。

最后,送给大家一句话: ”开源是一种选择,无论你是谁,目的为何,只要方法得当,开源能够让你得偿所望。因为这个世界不是零和游戏的世界。”

开源才刚刚20岁,翩翩少年,冉冉升起。内涵和外延正在成长得愈发的丰富、充实!你要做的就是参与到这一历史的车轮。谢谢大家!