文章图片
一、「开源」遇见「第一性原理」
第一性原理,First principle,维基百科的定义为:从基本的定律出发,不外加假设与经验拟合的推导与计算。「第一性原理」自 2017 年特斯拉创始人马斯克在采访中提及后,在互联网和投资圈流行,也常被引申为「回溯事物本质,通过演绎法推导,最终得出结论」。
开源,Open Source,一种将源代码公开的软件发布模式。1998 年,自由软件运动小组成员克里斯汀·彼得森首次提出「Open Source」这一词。今天,开源操作系统已成为互联网世界的重要基石,「开源吞噬软件」也逐渐成为共识。当开源已经成为开发者习以为常的存在,并逐渐延伸到技术之外的各个领域。
拿起「第一性原理」的放大镜,来重新观察「开源」,或许我们会有新的收获。
二、开源的起源与本质
1. 开源的起源
如今公认的开源奇点——UNIX,诞生于 1969 年美国 AT&T 公司的贝尔实验室。为促进 UNIX 的发展,AT&T 以低廉甚至免费的许可将 UNIX 源码授权给学术机构,许多机构在此源码基础上加以扩充和改进,形成了各种的 UNIX 衍生版。
时间来到 1991 年,Linus Torvalds 基于一个迷你版本的类 UNIX 操作系统,发布了 Linux 内核的源代码,彻底打开了开源世界的大门。从 UNIX 诞生到 Linux 崛起的这 20 多年里,一个关键因素就是互联网的发展,使得世界各地的人都能以平等的身份,参与到项目的建设中,最终打造出了开源这座宏伟的超级集市。
2. 开源的本质
在被称为「开源圣经」的《大教堂与集市》中,用了两个通俗的类比来解释「闭源」与「开源」的区别——「大教堂模式」和「集市模式」:
传统大型软件公司的开发模式就像是艰难而缓慢的大教堂建造工程,它有着严密的管理和封闭的集中式结构,但在创新上、生产力上和 Bug 控制上落后于集市模式。通过「大教堂与集市」这一模型,开源的本质水落石出:
集市模式是一种并行、对等的扁平化开发结构,其参与者大多来自于互联网上的志愿者,结构松散,来去自由,没有建筑大教堂那样的安静和虔诚,就像是一个乱糟糟的集市。但就是这样的组织形式,取得了像 Linux 这样令人惊叹的成功。
- 汇集更多人的智慧——集市能比大教堂包容更多的人;
- 拥有更高的效率——在集市中交流更直接,协作更高效;
- 快速纠错和修正——集市上的人越多,就越容易发现和解决 bug 。
1、在开发者平均质量不降低的前提下,开发者数量越多,项目生命周期越长;
集市相比与大教堂建造成本更低,因此更容易获得商家青睐,买家也能用更低的价格在集市获取自己想要的商品。集市上已有的人越多,进入集市的人也就越多,人们在集市上停留的时间也就越长,集市也就能持续运营下去。
同样,当我们评价一个开源项目时,第一时间并不是看它的代码质量,而是看它有多少人使用,有多少人参与项目的建设。这也是很多老牌编程语言能保持长久生命力的原因,因为其覆盖的范围足够广,使用的开发者足够多,哪怕在很多地方不如新诞生的编程语言,依然有大量拥趸。
集市模式相比大教堂的缺点,在于进入集市的人鱼龙混杂,一旦集市中出现大批不讲诚信的商家或商品,大家下次就会选择去其它地方进行交易。因此,成熟的开源项目都会对提交的代码进行严格审查;开源基金会也会对加入的开源项目进行各个维度的评估,就是为了保证集市的健康运作。
2、当开发者数量增加所带来的效率提升,能抵消掉 Brooks 法则的影响,项目才能有效推进;
起初,人们在集市上交流便捷,买卖方便,但随着集市规模越来越大,店铺越来越多,想找到需要的商品越来越难,效率反而不如以前。于是人们开始对集市进行区域划分,制定了一系列准则,方便之后加入的人能更快参与到集市的建设中。
开源社区和技术开发同样如此。在《人月神话》中,Brooks 法则被用来描述一种事实——随着开发人员数目的增长,项目复杂度和沟通成本按照人数的平方增加,而工作成果只会呈线性增长。
因为 Brooks 法则的存在,通过无止境的增加人手来提高效率成为不可能,大公司内的开发团队在这一点上尤为明显。虽然开源协作中,人们能通过 WiKi 文档、降低开发耦合及各种协同工具削弱 Brooks 法则的影响,但依然需要各种组织管理和流程设计,来稳定推进项目进展。
3、当能发现、解决 bug 的开发者数占总使用人数的占比,维持在某个数量之上,项目的安全性才有所保障。
经过一段时间的发展,你的集市已经成为了远近闻名的交易中心。但大多数的人只是来集市交易,换取自己所需的物品,即使发现有安全隐患也无动于衷,甚至还经常带易燃品进来。终于有一天,集市上发生了一场火灾,集市上每个人都被这场大火烧掉了眉毛和头发,多年的辛苦毁于一旦。
这就是被称为过去十年最大的安全漏洞——Log4Shell 的故事。Log4Shell 漏洞早在 2013 年就已存在,直到 2021 年 11 月底才被发现和报告,国内外苹果、京东、AWS、IBM 等大公司都在使用开源的 Log4j,但并未对其源代码做出安全方面的贡献。
另一个正面例子,则来自诞生于 Linux 系统的 Android,作为开源操作系统的代表之一,得益于第三方手机厂商和 Android 应用开发者的积极参与,其整体安全性一直维持在稳定水平。
四、第一性原理分析得出的几点启示 1、中国开源力量崛起的必然性
开源开发者的数量决定了开源生态的生命周期。根据 2021 GitHub 报告,中国开发者数量已达 755 万,但从人口基数和市场规模上看,未来中国开发者还有很大的增长空间。短期内国内的开源环境和美国还有差距,随着开发者数量和质量的提升,中国开源力量的崛起是必然的。
2、企业开源建设——注重效能提升
在数字化转型的大潮流下,企业对开源的接纳程度越来越高,也更多的参与到了开源的建设中。在这个过程中,企业既要满足效率提升,也要保证质量稳定。只有用更高效的技术管理,降低 Brooks 法则的影响,才能避免让团队陷入重复和高负荷的工作中。
3、个人开发者——保持开放,拥抱开源
开放和协同是开源的两大优势,对于每个开发者来说,这两点也是提升自身代码实力,发挥代码价值的关键。诚然如 Linux 这般天才程序员,也是在社区的共建下得以让 Linux 系统发扬光大。保持开放视野,积极参与开源建设,与更多同侪交流学习,才能成为越老越「香」的程序员。
五、开源,下一站 正如数学中的公理推导,当我们用「第一性原理」框架对「开源」进行分析,得出的都是一些很基础的常识:开源是技术演进的必然结果;开源生态需要多方共建;在开源中利他就是利己;安全是开源发展必须要解决的问题……
但正是这些常识,能帮助我们在复杂情景中做出正确的判断,在面临艰难选择时找到一把标尺。当这些常识成为了开源生态中每个人的共识,开源的脚步才能走得更远更踏实。■
【什么是开源的「第一性原理」()】更多精彩开源内容,欢迎关注「腾源会」公众号
推荐阅读
- 助力中国开源码力榜,社区邀请正式开启!
- Android开发——SQLite数据库框架Sugar的使用
- 简谈开源OS发行版
- 官宣!2021中国开源年报震撼首发!一篇报告带你读懂中国开源的2021~
- 解读开源的2021(从“开发者亚文化”,变成主流软件开发模式)
- Log4j 爆发“核弹级”漏洞、工信部力推开源软件发展、“龙腾计划”启动|开源月报 Vol. 02
- 龙蜥的朋友圈又大了!知名数据库产品服务商南大通用加入社区
- 开源|开源切片工具--TileStache
- 沐曦加入龙蜥社区,聚焦技术创新,繁荣开源生态