PART ONE

「开源」遇见「第一性原理」

第一性原理,First principle,维基百科的定义为:从基本的定律出发,不外加假设与经验拟合的推导与计算。「第一性原理」自 2017 年特斯拉创始人马斯克在采访中提及后,在互联网和投资圈流行,也常被引申为「回溯事物本质,通过演绎法推导,最终得出结论」。

开源,Open Source,一种将源代码公开的软件发布模式。1998 年,自由软件运动小组成员克里斯汀·彼得森首次提出「Open Source」这一词。今天,开源操作系统已成为互联网世界的重要基石,「开源吞噬软件」也逐渐成为共识。

当开源已经成为开发者习以为常的存在,并逐渐延伸到技术之外的各个领域。拿起「第一性原理」的放大镜,来重新观察「开源」,或许我们会有新的收获。

PART TWO

开源的起源与本质

1. 开源的起源

如今公认的开源奇点——UNIX,诞生于 1969 年美国 AT&T 公司的贝尔实验室。为促进 UNIX 的发展,AT&T 以低廉甚至免费的许可将 UNIX 源码授权给学术机构,许多机构在此源码基础上加以扩充和改进,形成了各种的 UNIX 衍生版。

时间来到 1991 年,Linus Torvalds 基于一个迷你版本的类 UNIX 操作系统,发布了 Linux 内核的源代码,彻底打开了开源世界的大门。从 UNIX 诞生到 Linux 崛起的这 20 多年里,一个关键因素就是互联网的发展,使得世界各地的人都能以平等的身份,参与到项目的建设中,最终打造出了开源这座宏伟的超级集市。

2. 开源的本质

在被称为「开源圣经」的《大教堂与集市》中,用了两个通俗的类比来解释「闭源」与「开源」的区别——「大教堂模式」和「集市模式」:

传统大型软件公司的开发模式就像是艰难而缓慢的大教堂建造工程,它有着严密的管理和封闭的集中式结构,但在创新上、生产力上和 Bug 控制上落后于集市模式。

集市模式是一种并行、对等的扁平化开发结构,其参与者大多来自于互联网上的志愿者,结构松散,来去自由,没有建筑大教堂那样的安静和虔诚,就像是一个乱糟糟的集市。但就是这样的组织形式,取得了像 Linux 这样令人惊叹的成功。

通过「大教堂与集市」这一模型,开源的本质水落石出:

  • 汇集更多人的智慧——集市能比大教堂包容更多的人;

  • 拥有更高的效率——在集市中交流更直接,协作更高效;

  • 快速纠错和修正——集市上的人越多,就越容易发现和解决 bug 。

PART THREE

用第一性原理推导出「开源三定理」

基于上述 3 点,我们使用「第一性原理」推导出开源的三条定理:

1、在开发者平均质量不降低的前提下,开发者数量越多,项目生命周期越长;

集市相比与大教堂建造成本更低,因此更容易获得商家青睐,买家也能用更低的价格在集市获取自己想要的商品。集市上已有的人越多,进入集市的人也就越多,人们在集市上停留的时间也就越长,集市也就能持续运营下去。

同样,当我们评价一个开源项目时,第一时间并不是看它的代码质量,而是看它有多少人使用,有多少人参与项目的建设。这也是很多老牌编程语言能保持长久生命力的原因,因为其覆盖的范围足够广,使用的开发者足够多,哪怕在很多地方不如新诞生的编程语言,依然有大量拥趸。

集市模式相比大教堂的缺点,在于进入集市的人鱼龙混杂,一旦集市中出现大批不讲诚信的商家或商品,大家下次就会选择去其它地方进行交易。因此,成熟的开源项目都会对提交的代码进行严格审查;开源基金会也会对加入的开源项目进行各个维度的评估,就是为了保证集市的健康运作。

2、当开发者数量增加所带来的效率提升,能抵消掉 Brooks 法则的影响,项目才能有效推进;

起初,人们在集市上交流便捷,买卖方便,但随着集市规模越来越大,店铺越来越多,想找到需要的商品越来越难,效率反而不如以前。于是人们开始对集市进行区域划分,制定了一系列准则,方便之后加入的人能更快参与到集市的建设中。

开源社区和技术开发同样如此。在《人月神话》中,Brooks 法则被用来描述一种事实——随着开发人员数目的增长,项目复杂度和沟通成本按照人数的平方增加,而工作成果只会呈线性增长。

因为 Brooks 法则的存在,通过无止境的增加人手来提高效率成为不可能,大公司内的开发团队在这一点上尤为明显。虽然开源协作中,人们能通过 WiKi 文档、降低开发耦合及各种协同工具削弱 Brooks 法则的影响,但依然需要各种组织管理和流程设计,来稳定推进项目进展。

3、当能发现、解决 bug 的开发者数占总使用人数的占比,维持在某个数量之上,项目的安全性才有所保障。

经过一段时间的发展,你的集市已经成为了远近闻名的交易中心。但大多数的人只是来集市交易,换取自己所需的物品,即使发现有安全隐患也无动于衷,甚至还经常带易燃品进来。终于有一天,集市上发生了一场火灾,集市上每个人都被这场大火烧掉了眉毛和头发,多年的辛苦毁于一旦。

这就是被称为过去十年最大的安全漏洞——Log4Shell 的故事。Log4Shell 漏洞早在 2013 年就已存在,直到 2021 年 11 月底才被发现和报告,国内外苹果、京东、AWS、IBM 等大公司都在使用开源的 Log4j,但并未对其源代码做出安全方面的贡献。

另一个正面例子,则来自诞生于 Linux 系统的 Android,作为开源操作系统的代表之一,得益于第三方手机厂商和 Android 应用开发者的积极参与,其整体安全性一直维持在稳定水平。

PART FOUR

第一性原理分析得出的几点启示

1、中国开源力量崛起的必然性

开源开发者的数量决定了开源生态的生命周期。根据 2021 GitHub 报告,中国开发者数量已达 755 万,但从人口基数和市场规模上看,未来中国开发者还有很大的增长空间。短期内国内的开源环境和美国还有差距,随着开发者数量和质量的提升,中国开源力量的崛起是必然的。

2、企业开源建设——注重效能提升

在数字化转型的大潮流下,企业对开源的接纳程度越来越高,也更多的参与到了开源的建设中。在这个过程中,企业既要满足效率提升,也要保证质量稳定。只有用更高效的技术管理,降低 Brooks 法则的影响,才能避免让团队陷入重复和高负荷的工作中。

3、个人开发者——保持开放,拥抱开源

开放和协同是开源的两大优势,对于每个开发者来说,这两点也是提升自身代码实力,发挥代码价值的关键。诚然如 Linux 这般天才程序员,也是在社区的共建下得以让 Linux 系统发扬光大。保持开放视野,积极参与开源建设,与更多同侪交流学习,才能成为越老越「香」的程序员。

PART FIVE

开源,下一站

正如数学中的公理推导,当我们用「第一性原理」框架对「开源」进行分析,得出的都是一些很基础的常识:开源是技术演进的必然结果;开源生态需要多方共建;在开源中利他就是利己;安全是开源发展必须要解决的问题……

但正是这些常识,能帮助我们在复杂情景中做出正确的判断,在面临艰难选择时找到一把标尺。当这些常识成为了开源生态中每个人的共识,开源的脚步才能走得更远更踏实。■

腾源会是腾讯云成立的汇聚开源项目、开源爱好者、开源领导者的开放社区,致力于帮助开源项目健康成长、开源爱好者能交流协助、开源领导者能发挥领袖价值,让全球开源生态变得更加繁荣。

欢迎关注「腾源会」公众号,期待你的「在看」哦~

什么是开源的「第一性原理」?相关推荐

  1. 开源的「变」与「恒」:七大开源基金会负责人尖峰对谈

    在 7 月 9 日举办的首届全球开源技术峰会 GOTC 2021 上海站,来自全球各顶级基金会的负责人共聚圆桌,围绕开源软件的历史与未来展开了深刻的探讨. Linux 基金会执行董事 Jim Zeml ...

  2. win32应用程序_这个免费开源的「外挂」,让 Win32 老应用的字体更好看

    自 Windows 10 从 2014 年正式发行以来已经有快六年的时间了,然而六年后的今天,水深火热的 Windows 用户依旧要为 Windows 上一些使用着古老技术的客户端糟糕的字体渲染买单. ...

  3. 300美元复刻ChatGPT九成功力,GPT-4亲自监考,130亿参数开源模型「小羊驼」来了...

    视学算法报道 机器之心编辑部 OpenAI 的强大模型们,被开源社区复刻得差不多了. 过去几个月,OpenAI 的 ChatGPT 彻底改变了聊天机器人领域的格局,也成为其他研究赶超的对象. 以 Me ...

  4. 开源教程 「nlp-tutorial」!用百行代码搞定各类NLP模型

    ↑↑↑关注后"星标"Datawhale 每日干货 & 每月组队学习,不错过 Datawhale干货 参与:思源.贾伟   来源:机器之心 NLP 的研究,从词嵌入到 CNN ...

  5. php顶级框架,10个顶级PHP开源项目「2019」

    1.Laravel Laravel是一个为Web开发者打造的PHP开发框架. GitHub Stars: 43.5k+ 网址:https://github.com/laravel/laravel 2. ...

  6. 智源大会人工智能的认知神经基础论坛精华观点 | 从「第一性原理」到大脑仿真...

    一个猫头鹰饿了,那么接下来会做什么,很显然会去寻找食物. 这一生物本能属于主动推断的范畴,而主动推断是知觉行为的第一性原理. 当前,AI与脑科学的碰撞和交融还有无限的空间,脑科学里面有哪些核心的&qu ...

  7. 如何使用开源工具「DataEase」制作一个高质量的仪表板

    在 Github 上发现了一款号称 "人人可用的开源数据可视化分析工具" -- DataEase. 通过实际操作发现,相较于目前市场上常见的 BI软件,DataEase 具有操作便 ...

  8. 重磅:华为方舟编译器开源代码「正式发布」

    loonggg 读完需要 2 分钟 速读仅需1分钟 就在今天,8 月份的最后一天,华为方舟编译器开源官网正式上线了. 本次方舟编译器开源的是编译器框架部分源码,包括编译器中间表示(IR,Interme ...

  9. 对标GPT核心技术RLHF!港科大开源RAFT「木筏」,适用GPT扩散模型

    梦晨 发自 凹非寺  量子位 | QbitAI 开源大模型火爆,已有大小羊驼LLaMA.Vicuna等很多可选. 但这些羊驼们玩起来经常没有ChatGPT效果好,比如总说自己只是一个语言模型.没有感情 ...

最新文章

  1. Caffe源码中blob文件分析
  2. 三、Bean的初始化
  3. 55:Mysql用户管理|常用sql语句|mysql数据库备份恢复
  4. 数据结构之权值(在吊挂中的实际应用)
  5. [云炬创业基础笔记]第九章企业的法律形态测试3
  6. boost::geometry::centroid用法的测试程序
  7. python requests session刷新_Python Requests Session set-cookie不生效的坑
  8. qt项目中的某一个类的输出中文信息乱码,其它类中文输出正常
  9. 【源码分享】WPF漂亮界面框架实现原理分析及源码分享
  10. 【Java】java测试--词频统计 ----IO流操作
  11. 折半查找的实现(1010)swust-oj
  12. Unity下载安装详细教程
  13. Excel 2010高级应用-面积图(三)
  14. springboot图片验证码
  15. 【Python百日进阶-Web开发-Feffery】Day437 - fac实例:使用fac中上传组件时实现自主控制uploadId
  16. 自习室风口!使用网上预约系统助力自习室预约
  17. C#将文件复制到另一个目录下
  18. 八字伏吟、反吟在年时、月日上的理论与实例
  19. wps使用vba合并多个表格
  20. 【python实例6.5】一篇文章让你弄懂政府工作报告词云~总结笔记

热门文章

  1. encoding与decode的含义
  2. vue使用高德地图制作小车轨迹回放动画简单案例
  3. 深度系统linux15.3 32位下载,深度linux下载-深度linux系统v15.3 正式版下载-955游戏网...
  4. python怎么做表格_怎么用python画表格?
  5. SercureCRT突然字母变不正常了
  6. Jscript 01 实现比较两个数的大小
  7. 【面经】海康威视【2022届超新星】应用软件开发工程师-C\C++实习生校招面经-已gg
  8. php eval一句话木马干啥的,?php eval($_POST[cmd]);?一句话木马解读
  9. python字典中的键是什么_python字典中的键是什么
  10. SwiftUI 官方教程 (一)