开源开发中的隐性危机:行动号召

关于开源软件,他们没有告诉你的事情

在数字时代,创新的引擎常常哼着开源的调子。这种协作式的软件开发模式不仅塑造了我们的技术景观,也培育了一群有着共同理念的创作者社区:为了所有人的利益构建软件,摆脱资本化的限制。这个领域的先驱者们为我们带来了像 Linux、Git、Python 和 MySQL 这样的革命性技术,展示了开源的巨大潜力。然而,这片充满活力的景象正在失去色彩,曾经嘹亮的引擎声现在只是微不足道的耳语。曾经推动全球创新的热情正在消退,取而代之的是一种新的动态,其中开源贡献经常被视为职业发展的垫脚石或企业人才招聘平台。

这种转变微妙而深刻。如今,自由和开源软件(FOSS)的贡献经常被视为有抱负的开发者的简历建设者或寻找人才的公司的猎场。曾经是全球创新的堡垒的开源现在正处于成为一种小众爱好的边缘。尽管其在技术行业中扮演着至关重要的角色,但面对日益增长的企业使用和不断上升的安全问题,开源项目维护者的处境变得越来越难以忍受。

这个问题在如今的世界尤其明显,因为由AI编写的代码量正在快速增长。专有的语言模型利用大量的开源代码进行训练,但如今的代码撰写模型(如 Github Copilot 或 Repl.it 的 Ghostwriter)并没有为任何原始软件创建者署名、给予补偿,甚至没有被承认。如果我们不直接重视我们软件世界所依赖的开源创作者,这个问题只会越来越严重。

然而,重新点燃开源精神还不晚。通过理解推动这种转变的压力以及未付费开源维护者所面临的挑战,我们可以开始制定一条通向开源更可持续的未来的道路。本文将探讨造成这种趋势的各种因素,提供来自开源社区的关键人物的见解,并探讨保证开源软件开发的长期和活力的潜在解决方案。

那么,我们是如何到达这里的呢?这种转变对开源的未来以及技术的未来有什么影响?更重要的是,我们该如何应对这些复杂性,恢复平衡并再次激发开源运动?坐稳了,我们将踏上一段从开源软件的起源到当今时代的挑战以及更远的旅程。路可能会颠簸,但这次旅程保证会让人茅塞顿开。

Hop in, take a trip on this journey through the world of open source. Image by author, generated with Stable Diffusion and Photoshop.

“免费”开源的悖论:通向疲惫的磨损之路?

当我们在开源软件的上下文中表达“免费”时,我们的参照物超越了仅仅成本。我们强调的是自由:运行、学习、重新分发和修改软件的自由。这种自由赋予用户对他们的计算的控制——这是开源运动的核心原则。然而,这种自由带来了一个无意的后果:许多开源软件项目无意中采用了所谓的“免费商业模式”。

在这种模式下,软件是免费可用的,任何人都可以贡献代码来增强它。贡献者可能会从为项目增加价值中获得满足感,但他们通常得不到具体的回报。这种不平衡产生了几个波及到贡献者、用户和更广泛的技术生态系统的挑战。

自由和开源软件是数字革命的生命线,是技术创新的支柱,但它正越来越接近其极限。它在一个理论上深具平等的商业模式下运作,通常在实践中证明是不可持续的。这种模式的理念很简单——协作创建、分享和维护软件,没有直接的经济利益。潜在的回报是全球技术生态系统的集体进步。然而,在这个看似乌托邦的理想背后,存在着一个充满疲惫、缺乏激励和日益加剧的质量问题的严酷现实。

创作者和维护者经常会发现他们为了集体利益而创造和维护软件的崇高事业正在变成一项艰巨的任务。这些专注的个人追求他们的激情,经常在长时间、复杂的问题解决和无情的压力中穿梭。这种情况可以,并且经常会导致疲劳。考虑到大量的贡献者没有得到报酬,这种情况会变得更加糟糕,根据Tidelift的一项调查,这一数字在2023年仍然是惊人的46%,与2021年的水平相同。

缺乏直接的财务激励常常会导致维护和改进软件的动力不足。这可能会导致大量的质量问题,软件通常存在未解决的错误或停滞不前,缺乏新的功能和改进。

从我个人的经验来看,作为一个在开源GitHub仓库上拥有超过7500个星星的开发者,这个问题对我来说特别贴近。尽管我的软件足够有用,让数千名开发者在数年内不断使用它,但所有项目生命周期内的累积赞助费用相当于我曾经担任的任何软件职位的单个月薪水以下。

我最受欢迎的开源仓库的使用统计。

这种困境并不是因为缺乏寻求支持的努力。GitCoin、Github赞助商、Patreon和直接赞助等平台已经做出了努力,但这些渠道获得的财务支持随着时间的推移已经被证明是不足够的。因此,尽管这些软件包继续被使用,我发现自己无法为它们的维护和进一步开发投入必要的时间。

这些挑战的涟漪效应延伸到消费者——个人和企业。虽然免费的、社区驱动的软件的初始吸引力可能看起来很诱人,但实际生活中常常充满挫折。用户可能会与有错误或不友好的软件作斗争。支持可能不一致,维护者经常因资源或时间限制而无法跟上查询和错误报告的涌入。

这种情况也为安全问题培育了一个滋生地,这是很难忽视的开源软件的一个方面。2021年12月出现的Log4j Java库中的Log4shell漏洞突显了这一点,因为受影响的库的开发人员发现自己不断地应对问题,而没有得到他们自由使用的工作的补偿或实质性的认可。

“搭便车者问题”是一个著名的经济难题,在开源软件中也是如此。这个概念指的是个人或实体在不承担提供成本的情况下受益于资源或服务的情况。在开源软件领域,当显着有利可图的公司将开源项目纳入其产品中而没有为这些项目的维护者提供足够的补偿或支持时,搭便车者问题就会出现。这种挫败引发了像Marak Squires故意干扰他在1月初的受欢迎的npm包那样的事件,抗议Fortune 500公司利用他的未付款工作。

艺术家对开源软件中搭便车问题的描述。作者提供,使用Stable Diffusion和Photoshop生成。

尽管存在这些障碍,开源软件社区表现出了惊人的韧性。这个生态系统因其贡献者的集体力量而继续发展,他们出于责任感、激情或对协作创新的力量的信仰而坚持不懈。但一个悬而未决的问题仍然存在:这种情况能持续多久?

从长远来看,这是不可持续的。重新评估开源软件中“免费”商业模式的必要性不仅是及时的,而且对于保护这种宝贵的资源至关重要。

软件巨头的日益强化角色

当我们提到软件巨头时,我们指的是那些影响力渗透到我们日常生活中的组织:谷歌、亚马逊、苹果、Facebook和微软。这些公司已经开发了我们所依赖的平台和技术,从我们智能手机上的操作系统到我们浏览购物和社交媒体平台以连接亲友的网站。但是这些巨头在开源生态系统中扮演什么角色呢?

为了更好地理解这个问题,让我们向后退一步,审视整个局势。在开源社区中我们所面临的难题就像是一个跷跷板。随着贡献和使用之间的不平衡持续未得到解决,我们越来越接近一种无可回头的境地。贡献者越少、用户越多,跷跷板的倾斜度越大,形成一个更大的不平衡,只有具有大量资金、私有代码库的软件巨头才能竞争。我们当前正在看到一个恶性循环,如果不加以解决,将威胁到失控。

然而,这些软件巨头虽然有很大的影响力,常常有着保持其软件的重要部分作为闭源的利益。这主要源于他们开发的技术的专有性质,对他们的商业策略至关重要。闭源软件为这些公司提供了竞争优势,使其能够保护其知识产权,并为其产品的开发、质量和安全提供更多的控制。

然而,这些同样的软件巨头也是开源软件的最大消费者之一。他们经常将开源库集成到他们的产品中——没有任何补偿——甚至将他们的一些代码作为开源发布。通过这样做,他们利用开源开发的协作本质,促进开发者社区的友好关系。但这种共生关系并不是没有复杂性和争议的。著名的科幻作家威廉·吉布森曾经说过:

“未来已经到来——只是分布不均。”

这一引言对我们的开源生态系统来说是正确的,其中软件巨头享受着丰富多彩的好处,而负担并不如此均衡。对于软件巨头来说,从开源世界中获取所需、为自身需要进行建设,同时保持其最有价值的代码的私密性,不断增加其对小型开发者的竞争优势,这一点非常简单。

例如,考虑谷歌。虽然它通过项目如 Android 和 Chromium 在开源社区做出了显著贡献,但它对某些开源项目的处理却引起了批评。谷歌决定在 Chrome 中阻止第三方 cookie,表面上是为了保护隐私,但在开源社区中,一些人认为这是企图巩固其在在线广告市场上的主导地位。

亚马逊在其 AWS 云服务中使用 MongoDB 数据库软件也是另一个有争议的案例。MongoDB 是一个开源数据库系统,为了回应亚马逊未给予社区贡献而利用其软件,它改变了其许可证。这一事件引发了一场关于从开源软件中受益的公司对社区做出贡献的责任的辩论。

这些软件巨头招聘开源开发者也加剧了争议。一方面,这些开发者经常获得资源和支持,全职工作于他们的开源项目上,促进了重大进展。另一方面,这种招聘趋势可能会导致开源社区的人才流失,使得其他项目的开发者变得更少。

此外,这些软件巨头以其“围墙花园”而闻名——封闭的生态系统,公司控制着用户体验的所有方面。虽然这可以为用户提供一致、简化的体验,但它也可能扼杀竞争和创新。较小的开发者可能会发现自己处于不利地位,无法进入这些生态系统或被迫遵守严格的规则。此外,这些围墙花园通常有意导致不同生态系统之间的互操作性缺失,给用户带来不便。

结果是更多的供应商锁定、更高价值软件的集中和建设者的更差的开发者体验。这显然是不可持续的。

为了说明这些围墙花园对软件生态系统的影响,人们可以考虑苹果的 App Store 政策,这已经成为了持续争议的重要来源。批评者认为它限制了竞争,并给予苹果对其设备上软件生态系统的过度控制。

苹果的 App Store 运营模式采用了这种围墙花园模式,具体意味着苹果对其平台上可以提供的内容进行控制,并设置了一些规则和准则,开发者必须遵守。其中一个规则是所有应用内购买必须通过苹果自己的支付系统进行,而苹果将收取高达 30% 的佣金。这引起了一些应用程序开发者的不满,因为它可能会显著降低他们的利润率。最引人注目的争议涉及到史诗游戏公司(Fortnite)的开发者。在 2020 年 8 月,史诗游戏公司试图通过在游戏中实施自己的付款方式来绕过苹果的支付系统,结果导致 Fortnite 被从 App Store 中删除。

这引发了史诗和苹果之间的一场法律斗争,吸引了人们的广泛关注。这个案例可能对未来 App Store、类似平台和围墙花园的运营产生重大而深远的影响。即使在一名联邦法官裁定苹果必须启用第三方支付选项并降低某些合作伙伴的佣金后,史诗游戏公司的 CEO 蒂姆·斯威尼对结果并不满意,他表示:

“问题在于典型的垄断关系。首先,他们从硬件入手。苹果生产智能手机,他们从智能手机中获利,这是他们应得的。但接着他们强制所有购买他们智能手机的用户必须独家使用他们的应用商店来获取数字内容。他们阻止其他所有应用商店在十亿终端用户拥有的硬件上与他们竞争。这是第一个垄断关系,完全阻碍了能够塑造更好的应用商店和更好的交易的所有竞争和市场力量。”

总之,虽然软件巨头在开源软件的开发和推广方面发挥了至关重要的作用,但他们与开源社区的关系在最好的情况下是错综复杂的。随着开源软件的使用量不断增长,有必要以一种既增强开源生态系统的可持续性,又鼓励软件巨头和开源社区之间更健康的权力平衡的方式来应对这些复杂性。

资金不足的环境和资源短缺

是时候扭转开源软件资源短缺的局面了。图片由作者生成,使用了Stable Diffusion和Photoshop。

在一个依赖软件作为运营生命线的亿万美元企业的世界中,这些软件的基础往往被忽视,如果不是明目张胆地被忽视。在开源开发领域,资源稀缺,在许多情况下几乎不存在,这种困境尤为突出。

开源开发的资金不足问题并不是什么秘密。然而,它仍然存在,不仅对开发人员,而且对更广泛的技术行业和依赖于他们维护的产品的广泛用户群产生不利影响。以OpenSSL为例。这个对几乎所有现代网络设备都至关重要的开源项目过去一年只收到了2000美元的捐款。由Heartbleed漏洞带来的关注使捐款增加到了仍然微薄的9000美元。OpenSSL背后的团队表示,他们需要六名全职成员来开展该项目的工作,而不是只有一个人努力平衡合同工作来支付成本。

这种资源匮乏不可避免地影响软件质量、维护和新功能的开发。当开源项目的维护者超负荷工作时,该项目的质量可能会恶化。有限的资源意味着用于全面测试、修复错误和安全补丁的时间和精力较少。

同样,在资源紧张的情况下,新功能的开发往往被放在次要位置。毕竟,当争夺是为了项目的生存和安全时,很少有带宽来考虑扩展或创新。这种限制阻碍了开源项目的增长,阻碍了严重依赖它们的技术生态系统的发展。

寻求开源项目资金的挑战是一个古老的问题,就像开源本身的概念一样。一些开发人员通过GitHub赞助和GitCoin等平台,或与公司签订维护合同,找到了适度的成功。其他人则在公司中获得了维护他们的库的报酬。然而,这些情况是例外而不是常态,并且很少足以完全支持开源项目的维护和开发。

“一刀切”的解决方案的缺失更加恶化了这个问题。每个开源项目都是独特的,拥有自己的需求、挑战和愿望。因此,尚不存在适用于开源软件的通用资金模型。在行业为这种“免费”劳动构建更有效的支持机制之前,我们应该为开源开发人员采取激烈措施来突出他们的贡献做好准备。

最终,这一切都归结为可持续性。随着开源软件仍然是今天几乎所有软件和连接设备的重要组成部分,这变得非常明显:依靠少数超负荷和低薪开发人员并不是一种可持续的策略。这是一个需要解决的困境,迫切需要解决,为开发人员和依赖于他们工作的数百万用户的利益着想。

开源的分水岭:生存还是死亡?

面对这些挑战,自然会思考开源的未来。最初是一项崇高的事业,向世界免费提供代码,赋予任何人在此基础上建设的能力,现在已经转变为由少数人肩负维护和开发负担的一项越来越不受赞赏的任务。为全球利益而不是利润构建软件的活跃精神似乎正在消退。但是,开源真的濒临灭绝吗?

一个男人在思考开源软件的灭绝以及对他自身的深刻影响。图片由作者制作,使用Stable Diffusion和Photoshop生成。

当前的开源状态无疑充满了财务限制、疲劳和差异。尽管开源项目得到了广泛的使用和依赖,但这些资源的创造者和维护者往往没有得到补偿。正如我们已经指出的,像Daniel Steinberg这样的开发者已经维护cURL近三十年,但仍然主要依靠自己的时间和专业知识而没有得到财务报酬。OpenSSL团队也反映了这一现实,尽管其项目在现代网络中发挥着关键作用,但他们不得不寻找额外的工作来支付项目维护成本。

尽管如此,必须承认方程式的另一面。尽管面临巨大的挑战,开源的核心——其社区——仍然坚定不移。开发人员继续为开源项目作出贡献,这源于他们的热情和对开放协作理念的承诺。正如Marak Squires和“left-pad”开发者所示,开源贡献者中有一种强烈的所有权和代理感。他们的抗议行为不仅仅是对挫败感的表达,更是对他们所提供的关键价值的强有力提醒。

此外,还有积极变革的希望之光。认识到开源的重要性和独特挑战,类似GitCoin的倡议已经出现,旨在为开源开发人员提供更直接的财务支持途径。现在的问题是这些措施是否足以在长期内维持开源生态系统。

然而,不能对残酷的现实视而不见。无休止的压力、资源匮乏和不断增加的期望正在产生影响。风险是有形的:如果这些条件持续存在,我们可能会目睹开源的衰落甚至消亡,进一步将开发完善软件的中心化掌握在现有的软件巨头手中。开源超越了代码——它涵盖了背后的人。如果我们忽视支持他们,我们就会失去这个充满活力的协作社区的精髓。

在这种情况下,开源的潜在消亡并不意味着免费可用的代码的终结,而是社区驱动的方法的崩溃,任何人都可以免费贡献、创新和分享。这样的损失将超越技术产业——它将抑制推动我们数字时代大部分协作创新的精神。

在我们迈向未来的过程中,科技产业——甚至整个社会——重新评估我们如何看待和支持开源至关重要。开源的未来在很大程度上取决于我们集体行动和保护这一宝贵资源的承诺。正如古老的格言所提醒我们的,“你不知道你失去了什么,直到它消失了。”我们不要等到为时已晚才行动。

考虑到我们已经审查的严峻现实,很明显我们正站在一个重要的十字路口上。开源是我们日常依赖的数字基础设施的关键。然而,随着当前模式逐渐接近不可持续性,制定有意义的未来方式的紧迫性正在上升。在我们开始这段旅程时,我们必须重新点燃推动开源成为我们世界不可或缺的指导原则:协作、社区和共同致力于推进技术,造福所有人。

一个有希望的解决方案是敦促公司——开源的主要受益者——承认并补偿代码背后的人才。认为个人应该无私地为开源做出贡献,而不收费,已经是一个过时的遗物。在开源支撑万亿美元产业的时代,新的范例是不可或缺的。公司必须投资于开源项目和使这些项目成为可能的才华横溢的个人。可以通过以下方式实现:

  • 直接资助:组织可以为他们经常使用的项目建立资助。
  • 雇用维护者:开源开发者可以被招募为兼职或全职员工。
  • 分配员工时间:可以鼓励员工在工作时间内为开源项目做出贡献。

政府机构也可以做出重要的贡献。白宫最近承认开源的重要性,这是一个积极的步骤,但要产生真正的影响,这种承认必须得到有意义的行动。政府可以为关键的开源项目提供财务支持,特别是那些具有重要安全影响的项目,或者鼓励企业这样做。他们还可以制定法规来保护开源贡献者的权利,并建立公平补偿的框架。

然而,前进的道路不仅仅关乎金钱方面,也关乎尊重。开源贡献者应该得到他们的劳动成果的认可,不仅仅是在 README 文件中提到,而是真正地认可他们所增加的价值。这种认可可以以各种形式呈现,从在行业活动中展示贡献者到为他们在项目维护方面提供决策权。通过这种方式,贡献者可以从志愿者转变为未来数字基础设施中的关键利益相关者。

个人贡献者也具有重要的角色。他们可以放大自己的声音,为自己的权利而战,并确保他们的劳动得到应有的价值。他们还可以选择支持遵守伦理实践并优先考虑维护者福利的项目。然而,最实用的解决方案可能是让开源开发者自己开创成功之路。我想起了开拓性发明家尼古拉·特斯拉的一句适合的名言:

“现在是他们的,而我真正工作的未来是属于我的。”

如果您维护一份有价值的开源软件包,却缺乏财务支持,为什么会这样呢?也许责任在于开源创建者制定简单的付款解决方案,并要求他们的努力得到报酬,就像现有的软件巨头每天所做的那样。

走向一个更可持续的开源生态系统的道路可能并不简单,但这是我们必须共同承担的旅程。正如开源精神所提醒我们的那样,我们的力量在于团结。作为维护者、贡献者、用户、企业和政府,我们每个人都有自己的角色,以确保开源继续为所有人的利益而繁荣。让我们致力于实现这一愿景,并培育一个开源不仅仅是可持续的,而且真正受到重视的未来。

作者通过 Stable Diffusion 和 Photoshop 生成的一张描绘由资金充足的开源开发者组成的团队办公室的可持续未来愿景的图片。

最后的想法:为开源开创一个可持续的未来

回顾本文的标题,开源开发中的危机是一个需要我们立即关注的问题。这不是要挽救一个失败的系统,而是要动员一个集体的努力,涵盖团结、合作和追求共同目标为公共利益的精神。开源社区,在其最广泛的意义上,代表着这种团结。但是,为了实现这个愿景,我们需要解决社区目前面临的严峻现实。

就像任何危机一样,开源景观也是复杂和多样化的。由全球开发者贡献的软件包和库的丰富马赛克推动着我们数字生活的重要部分。然而,它也面临着一个威胁,这个威胁威胁着不断工作的少数忠实维护者的不可持续模式。这种困境深刻而存在。如果不加注意,它可能对软件开发的未来构成重大风险。

随着人工智能和机器学习模型编写越来越多我们世界的代码,现在解决这个问题变得至关重要。如果不加控制,我们可能会看到只有最有资金的组织才能访问高质量的代码的世界。这将是我们所知的自由开源软件的终结。

虽然这可能看起来像一种令人沮丧的前景,但它并不是末日的预兆。相反,它是一个明显的警告,如果我们不加检查地让这种不可持续的状态继续下去,我们将面临潜在的后果。如果维护者达到极限或决定放弃他们的项目,未来的软件景观可能会充满安全问题、操作减速和重要工具的丧失。

在这场危机中,软件社区的每个成员都有自己的角色要发挥。作为用户,我们可以回馈给我们从中获益的项目,无论是通过开发、文档编写还是提供财务支持。企业也可以回报他们使用的项目,提供资金或雇用开源开发人员永久维护和增强他们的开源项目。政府可以认可开源在公共基础设施中的价值,并提供拨款和其他形式的支持来帮助维持这些项目的可持续性。

支持开源的责任是集体的。我们早该停止把开源当做理所当然的事情,并开始认识和奖励维护者所执行的不可或缺的工作。通过这样做,我们可以确保这个我们所有人都依赖的非凡全球资源的持续健康和活力。

这是对开源社区的每个利益相关者发起行动的呼吁:开发者、组织和用户。最终,解决这些问题的成功取决于它的社区成员 – 我们。如果您有兴趣为全行业的这些问题做出贡献,我鼓励您联系并发起对话。我们可以一起确保开源软件未来的可持续性和活力。

参考资料:

  1. 谁从开源维护者的工作中获利? https://www.techtarget.com/searchitoperations/feature/Who-profits-from-open-source-maintainers-work
  2. 免费工作的开源开发人员正在发现他们有权力 https://techcrunch.com/2022/01/18/open-source-developers-who-work-for-free-are-discovering-they-have-power/?guccounter=1
  3. 苹果与 Epic Games 诉讼案对 iPhone 用户意味着什么 https://www.npr.org/2021/09/10/1036043886/apple-fortnite-epic-games-ruling-explained
  4. Epic Games CEO Tim Sweeney 称苹果的应用商店是对开发人员的“不公” https://www.macrumors.com/2022/05/26/epic-games-ceo-app-store-a-disservice/