← 最新论文
💻 computer science

Open Source Is Not One Thing: A Typology of Open-Source Software Sub-Genres

本文认为开源软件并非同质实体,而是由十四个在驱动力、治理和资金来源方面各不相同的细分类型组成,并提出了一个分类法和研究议程,以解决跨越这些多样化类别时实证研究结果普遍适用性有限的问题。

原作者: Mohamed Ouf, Rowan Hussein

发布于 2026-07-03
📖 1 分钟阅读☕ 轻松阅读

原作者: Mohamed Ouf, Rowan Hussein

原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明

想象一下,你走进一座巨大的图书馆,有人告诉你:“这里的书都只是‘书’而已。它们运作的方式都一样。”你可能会点头,但如果你真的仔细观察,你会发现巨大的差异:漫画书、医学教科书、日记和法律合同之间截然不同。它们有不同的作者,有不同的存在理由,也有不同的使用规则。

这篇论文认为,开源软件 (OSS) 正好就是那座图书馆。研究人员经常将所有开源代码视为一个庞大且统一的整体,但作者们说:“不,它不是一回事。”它实际上是一个由 14 种不同的“子类型” 组成的集合,每种类型都有自己的个性、规则和生存方式。

以下是利用日常类比对他们研究结果进行的简单拆解:

1. 核心问题:“一刀切”的错误

想象一位医生在研究人们如何从骨折中康复。他研究了一名职业运动员、一名幼儿和一位老人。如果他把这些结果取个平均值,并说:“这就是所有人康复的方式,”那他就错了。运动员需要的方案与幼儿完全不同。

论文指出,研究人员在处理软件时也犯了同样的错误。他们研究一个热门项目(如 Linux 操作系统),然后假设他们的发现适用于所有软件。但一个由单一公司为了利润而运营的项目,与一个由志愿者运营、旨在帮助发展中国家村庄的项目是完全不同的。如果你试图用“公司”的规则去应用在“志愿者”项目上,它可能会失败。

2. 解决方案:一个“14 种软件类型”的菜单

作者创建了一个“菜单”(一种分类法),根据谁在驱动它谁在掌管它以及谁来买单,将软件分为 14 个不同的类别。

你可以把这些类别想象成不同类型的餐厅:

  • 连锁餐厅(公司支持型): 由一家大公司运营(如 Red Hat 或 GitLab)。他们想要赚钱,因此控制着菜单和发展方向。
  • 美食车联盟(基金会管理型): 一群相互竞争的公司(如 Google 和 IBM)加入一个中立的非营利组织(如 Linux 基金会),共同建设一个共享厨房。他们约定好规则,以免在争夺炉灶时发生冲突。
  • 社区花园(社区驱动型): 没有老板。志愿者因为热爱园艺而种植蔬菜。下一季种什么由最优秀的园丁决定,而不是由土地的所有者决定。
  • 慈善厨房(用于社会公益的 OSS): 专门为喂饱饥饿人口或在灾难期间提供帮助而建立。目标不是利润,而是拯救生命。这里的工作人员之所以留得更久,是因为他们对使命充满热情。
  • 学校食堂(教育型): 学生通过烹饪食物来学习如何经营厨房。他们是为了成绩而不是为了职业而来的。
  • 个人爱好者(爱好者/个人型): 一个人在车库里为了乐趣构建一个酷炫的小玩意。如果这个人病了,项目就会停止(这被称为“低容错率/单点故障”)。
  • 抗议标语(抗议软件/Protestware): 开发者秘密修改代码以传递政治信息或破坏系统。其目的不是修复漏洞,而是表达立场。
  • 隐形管道(关键数字基础设施): 这些是整个互联网赖以生存的微小且枯燥的代码片段(如 curlOpenSSL)。它们通常由一两个疲惫不堪的志愿者维护。如果它们损坏,整个互联网都会“漏水”。

3. 为什么这很重要(“研究议程”)

作者不仅仅是在列举这些类型;他们是在告诉研究人员不要把它们混为一谈。

  • “迁移”问题: 如果你弄清楚了如何在“社区花园”项目中让志愿者保持快乐,那么这条建议可能并不适用于“连锁餐厅”项目。论文提出了疑问:适用于一种类型软件的规则,是否也适用于其他类型? 答案很可能是“不”。
  • 盲点: 有些类型的软件研究得很多(如大型社区项目),但另一些则被忽视了。论文指出,我们对“抗议软件”(用于政治破坏的软件)或“开源适宜技术”(用于解决贫困地区基本需求的工具)了解甚少。这些是图书馆中需要更多光照的“阴暗角落”。

4. 总结

论文的结论是,开源是多元的,而非单一的。它不仅仅是“代码”;它是商业、慈善、学校、爱好者和政治活动家的混合体。

通过识别这 14 种不同的“子类型”,我们可以:

  1. 更好地理解: 停止对软件运作方式进行错误的泛化。
  2. 更好地帮助: 如果你想支持一个项目,你需要知道它属于哪种“类型”,以便给予正确形式的帮助。
  3. 更好地研究: 研究人员需要标注他们正在研究哪种“类型”的软件,这样他们的研究结果才会有意义。

简而言之:并非所有的开源都是平等的,如果将其视为同类,就会掩盖真实的故事。

您所在领域的论文太多了?

获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。

试用 Digest →