去年底,一国外程序员写的《中国的开源项目正在破坏 GitHub 的排行榜》博客引起国内开发者热议,他在博客对中国项目占领 GitHub 趋势榜进行了无奈的吐槽。这样火爆的场面是我国开源事业蓬勃发展的一个侧影。如今越来越多中国年轻程序员投身到开源社区,目前在 GitHub 全球 4000 万注册用户中,中国开发者从数量和贡献度上均位列第二,越来越多的国内企业在国际合作的开源项目中扮演着重要角色。我国的活跃开源项目贡献者,有40%以上是在2019年里加入的,他们大多是 90 后,是年轻程序员的代表。纵观开源在我国发展的二十多年历程里,开源软件从无到有,从小到大,目前已成为IT软件的基石:我们使用的安卓手机中运行着开源的操作系统,日常访问的网站中由众多开源软件来支撑。中国开源事业始于互联网,发力于互联网,崛起于移动互联网,并在即将到来的万物互联时代迎来爆发。那么什么是开源软件,中国开源软件的历史上又有哪些故事和传奇?为了讲清楚开源的那些事,笔者找到了中国开源史上的五位代表性人物,他们是LVS创始人章文嵩、MiniGui创始人魏永明、RT-Thread创始人熊谱翔、TDengine创始人陶建辉、TiDB创始人黄东旭,共同畅谈中国开源史,回顾中国开源激荡20年的人和事。 开源初识:西方人的集市、中国人的侠义 开源软件即公开源代码的软件,从这个角度来讲,开源软件是信息产业发展到一定阶段以后的产物,因为在IT产业刚创立时,软件是以源代码的形式提供的,当时的软件均是开源。上世纪70年代,以微软为代表的企业仅提供编译后的二进制可执行程序,不再提供源代码了,这就形成了闭源的概念,此后相对于“闭源”,真正意义上的开源产业形成了。开源概念的形成有挑战传统、不畏强权的侠义精神在其中。这要从由Richard Stallman创立的GNU开始说起。GNU的官方定义是“GNU is Not Unix”,这是十分叛逆的递归型定义,因为人们可能只能从其中看到反Unix闭源的理念,却没想到GNU的目标是创建一套完全自由、开放的操作系统。从某种程度讲,Linux就是GNU理念不断推广所形成的产物。后来Richard Stallman创立了自由软件基金会(Free Software Foundation ,FSF),其主要工作是执行GNU计划。为了保证GNU软件可以自由的“使用、复制、修改、发布”,禁止部分人在GNU软件的基础上自己修改并发布的软件中添加任何限制他人自由使用的条款,在这情况下就诞生了GNU的许可条款,再后来又产生了其他的(非GNU)许可条款,这些统称为开源许可协议。这些开源协议将开源项目分成了不同的门派,各派之间有不同的玩法,所以从这个角度上讲,开源是中国侠义精神的体现。开源与集市的类比要从IT界传奇人物 Eric Raymond 的开源著作《大教堂和集市》说起。他表示,世界上的建筑可以分两种:一种是集市,天天开放在那里,从无到有,从小到大;还有一种是大教堂,几代人呕心沥血,几十年才能建成,投入使用。当你新建一座建筑时,你可以采用集市的模式,也可以采用大教堂的模式。一般来说,集市的特点是开放式建设、成本低、周期短、品质平庸;大教堂的特点是封闭式建设、成本高、周期长、品质优异。将开源软件类比于集市模式的原因是集市可以让更多的用户参与到软件的开发过程中,提高软件质量,来更好地支持自己的服务。这也是微软等企业开源 VS Code 等工具,因为微软不需要通过售卖 VS Code 获得利益,反而让更多的人免费使用 VS Code ,报告Bug,从而扩展其功能,这有利于微软操作系统推广。VS Code 生成的软件大多在 Windows 上运行,如此一来,微软可继续推广Windows Azure 等服务。这种说法是克里斯·安德森在《免费:商业的未来》与谷歌长尾理论的另一种诠释,其逻辑内核是基于极低边际成本来快速积累用户的模式。这从另一个侧面说明了开源是典型的互联网产业。