开源之道与开源之术

道与术,道是禁忌,术易伪装和变化。该如何取舍?开源,从亚文化上升到主流,撑起世界科技发展的鼎力支柱,背后究竟是何道理?是否正如著名人文学者福山所表达的,开源是否将是软件历史的终结,软件开发的最后的方式?

Sat Jan 7, 2017 | 2600 Words | 大约需要阅读 6 分钟 | |

引子: 何谓术?何又谓道?

哲学上讲究名与实,最令人类头痛的问题之一就是沟通,不然也就没有巴比塔这么传神的故事了。历史上光是正名的人就不计其数。这也是苏格拉底当年极力排斥文字的记录,然后,柏拉图还是背叛了他。

当下的信息社会,充斥着太多的知识与无用的信息。沟通的障碍也越来越重。是否有必要解释题目了呢?其实,我的每一篇我个人以为蛮重要的文章都会去解释题目。这次也不例外。

这里的道,指的是孟子的“道可道,非常道”中的道之意,抽象的试图诠释人类最自然状态的思想。可以作人性、自由、民主等多种释义。尤其是黑格尔所说的人之所以为人的与动物的最为根本的区别,也是尼采所描述的“红脸颊野兽”。

所谓的术,是指方法论,笛卡尔、培根所发展出来的科学的方法论,也是胡适所谈到的“少谈些主义,多研究些问题”、“大胆的假设,小心的求证”等较抽象的,也可以具体到Eric S.Remond的《大教堂与集市》、《Unix编程艺术》等方法和现象,当然,也可以说成是《社区的艺术》等具体的办法。

开源,本来是指软件的一种生产方式、传播渠道、发行的办法,就是所有的生产流程、原始代码、方法等都是公开、透明,让所有人都可以平等的获取到的形式。从上世纪80年代,一直发展到现在,渐渐成为了信息时代的中流砥柱,尤其是近来崛起的以云计算、大数据、物联网、机器学习等信息技术为契机,开源迅速占领整个世界,由亚文化华丽转身,走进人们的视野,并影响到其它产业,如教育、政府、法律、生产制造等。

开源之道

“Open source is a development methodology; free software is a social movement.”1

                                       ---Richard Stallman

就现在可以搜集到的信息而言,论开源的历史,先回溯到Linux的发展,然后会谈到GNU,继而谈到Stallman——最后的hacker,然后是麻省理工的“火车俱乐部”,大型机时代的hacker英雄们。

发展的根本,就是对绝对自由的追求,妄图在现实的叛逆之中寻求独特的出路,摇滚乐、公路、毒品的嬉皮士文化难掩对抗权威的星星之火。发展的源头乃是对于自由的追求,道德上至高无上的哲学。以FSF的成立,GNU许可证的发布,Free as a Freedom为口号的代表。

别忘了,世界的道,从来不是一个维度,另外一个重要的维度就是经济。以资本主义的成功,物质的不断丰富为象征。道德的力量难以撼动。这时出现的以 Linus 、Eric.S.Raymond 为代表的妥协派,只要我的技术对大家有用,认可我的能力,随便用,哪怕是被资本家嗅到了浓浓的铜臭味,也毫不在乎。

作为开源技术发展的相辅相成的重要支柱————社区,在互联网的大潮下,成就了以个人英雄主义赢得世界名声的机会。以Apache基金会、Linux 基金会为代表的商业氛围更加浓厚的社区文化,渐渐走近人们的视野。打破IT巨头的垄断,以Google、FaceBook、Netflix借开源崛起的互联网公司为代表。开源成就了今天的燎原之势。无处不在!

归根结底,开源之道就是,追逐自由、质疑威权、叛逆和打破常规、以及人性被平等待遇、承认等一系列的现象可解释。

但是,这里的道是禁忌。笔者无能也无力去谈道,唯一的路就是谈术。

开源之术

既然是方法论,就是一些技巧,放弃考察一个人的思想、背景、信仰等因素,而教之以方法、技巧。类似“授人以鱼,不如授人以渔”中的钓鱼方法,而不是说这个人具备反思意识,会质问为何我只有鱼这么一个范围?我为什么不能跑到深山?抑或是森林?生存!

开源已经有大约30多年的历史了,其中不乏成功的项目、社区、产品、商业模式,那么就会有有心人出来总结、观摩、探索。这方面的鼻祖莫过于 Eric.S.Raymond 所写的文章《大教堂与集市》(后来总结为图书),Raymond 观察了Linux的成功,并根据自己的实践——邮件客户端程序为例,来亲自验证这一猜测,最后进行了总结。那是1999年的事情了,作者还参与了当年轰动一时的 Mozilla 开源过程。后来开源的历史越发不可收拾,“非开源,不软件”成为很多软件从业者的口号,也受益匪浅。

术,是可以学习的,前人实践,后人总结,不断积累,也是科学的道理。笔者斗胆整理了几个类别。暂时没有固定的框架来约束,可能之间还会有所渗透。如下:

  • 开源文化现象,比如激励
  • 开源商业模式,
  • 开源社区治理
  • InnerSource 企业内部采用开源
  • 科学的参与社区
  • 如何防止破坏开源

也就是希望通过方法论来影响到项目的成功,以系统思维来思考,一件事物的出现一定有其特定的意义。软件项目经过实际验证,是非常困难的巨大工程,失败的风险很大,软件史上也不乏失败的案例,其中协作、沟通等非技术因素亦是非常关键的,相应的制度约束、晋升机制、知识传播等等需要认识和总结。另外就是,开源是如此的重要,以至于多数企业已经采用了大量的开源软件,那么内部如何和上游沟通?如何平衡自己的人力投入?如何面对恶性挖人与员工署名问题?招聘的人才究竟喜欢什么样的氛围?工程师、开发者又该如何判断一家公司是否对开源有诚意?

上述这些问题就是“术”,也是本系列文章所要一一解答的内容,笔者准备花一年的时间来将这些事情给捋清楚了。举个例子,商业模式可能是很多人所关心的,那么软件源码开放是否还有利可图?

商业模式举例

这是现代很多人都在思考的问题,如何利用开源项目来赚钱?红帽开创的订阅模式,一举将自己推到第一家开源盈利的企业级公司,WordPress背后的故事,依靠托管、SaaS的模式也占取了一片天地、Cloudera 似乎也赶上了大数据的头班列车,从Hadoop的生态系统中脱颖而出、Firefox依靠互联网巨头们的赞助勉强前行着、围绕OpenStack 形形色色的创业公司、Intel大力支持开源为自己的芯片拓展更多的道路……

人类的创意无穷无尽,有太多的可能性。在资本横行的时代,只要有钱赚的地方,就会有无数的人去挖掘。

人,毕竟是要吃饭的,富足、更加的物质,也是这个世界发展的主要动力之一。哪怕是再恶劣的社会、政治环境,只要有一条路是鼓励发展经济的,那么就会有很多的奇迹发生,然后也会反过来在推动需要更强的经济的文化、社会环境。

开源的商业模式,是非常具有魅力的一个挑战!正如现在的人们进入快速阅读、电子阅读时代,独立书店的经营模式也在作出相应的变化,虽然相比过去要艰难很多,但是总能找到属于自己的利基市场。