找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

683

积分

0

好友

89

主题
发表于 昨天 20:06 | 查看: 0| 回复: 0

2022年7月,瑞典程序员丹尼尔·斯坦伯格收到了一封姗姗来迟的邮件,邮件来自微软。邮件通知他,其维护了28年之久的开源项目 cURL 获得了微软自由和开源软件(FOSS)基金会的大奖。

程序员丹尼尔·斯坦伯格在办公室工作

这个FOSS基金每个月会选取一个项目进行资助,奖金是一万美元,分十个月支付,而cURL是当年1月份的赢家。

一万美元的奖金对于一个开源项目来说似乎不少,但如果你了解cURL在当今数字世界中的地位,就会明白这与其贡献相比,实在微不足道。

cURL 工具图标

cURL提供了一个库(libcurl)和一个命令行工具,让开发者可以轻松地在不同协议间传输数据。它几乎支持所有你能想到的传输协议,除了最常用的HTTP/HTTPS,还包括FTP、FTPS、Gopher、IMAP、Kerberos、LDAP、MQTT、POP3、RTSP、SCP、SMTP、SMB等等。可以说,在数据传输领域,它几乎无所不能。

正是由于其无与伦比的兼容性和稳定性,cURL被广泛集成在无数的设备和软件中:

  • 主流操作系统:包括 Linux、Windows、iOS、Android、macOS 等。
    主流操作系统图标集合
  • 游戏主机:如 Nintendo Switch、Xbox Series X 和索尼的 PlayStation 5。
    Xbox, Switch, PS5游戏主机
  • 流媒体设备:例如 Roku、Apple TV 等。
    Roku与Apple TV流媒体设备
  • 物联网设备:涵盖智能家居、医疗设备、打印机、智能手表乃至智能汽车。
    物联网设备互联示意图

根据官方统计,cURL支持的操作系统多达110种
cURL支持的110种操作系统列表

丹尼尔自己估计,cURL以及libcurl已经被安装在全球超过100亿台设备中。这是一个天文数字,如果每台设备能带来哪怕0.01美元的收入,其创造者早已是亿万富翁。

28年的坚持与打磨

故事要从1996年说起。当时,丹尼尔只是想从一个网站上自动下载汇率数据。和大多数程序员一样,他首先在网上寻找现成的工具,并找到了一个叫 httpget 的开源项目。

但与众不同的是,他后来成为了 httpget 的维护者,并开始为其扩展功能,增加了对Gopher和FTP协议的支持。1998年3月,他正式发布了包含2200行代码的cURL。然而,最初的发布反响寥寥,两年时间里只有大约300次下载

早期cURL项目图标

丹尼尔并未因此气馁。他利用业余时间持续打磨cURL,目标始终是打造一个高效、可靠、功能全面的数据传输工具。这一打磨,就是整整28年。据统计,截至2021年,丹尼尔已经在cURL上投入了超过15,000小时,平均每天约1.78小时。

在这28年间,cURL发布了近200个版本,支持26种传输协议,修复了超过6700个Bug。代码量从最初的2200行增长到17万行,并吸引了全球超过2300位贡献者参与其中。

理想与现实的落差

在商业世界的图景中,丹尼尔和他的cURL就像下图中的那台挖掘机:承担着至关重要的工作,是庞大系统运转的基石,但其创造者所获得的直接回报,却与创造的价值极不相称。

讽刺漫画:价值300亿的业务与开源维护者

他的巨大付出和对数字世界的卓越贡献,并未获得与之匹配的经济回报。

大约在2004年,丹尼尔曾从瑞典互联网基金会申请到一笔资金,用以获得“一些专注于cURL的开发时间”。后来,他又从Adobe获得了一些资金,用于支持SFTP协议功能的开发。

除此之外,项目的主要收入来源于个人和企业的捐赠。在opencollective网站上,cURL的赞助计划分为几个等级:

cURL项目的五个赞助等级计划

  • Backer:每月5美元
  • Supporter:每月25美元
  • Silver Sponsor:每月100美元
  • Gold Sponsor:每月500美元
  • Platinum Sponsor:每月1000美元

根据某时间点的赞助人数粗略计算,cURL每月的捐赠收入大约在9055美元左右。对于绝大多数开源项目而言,这已是一笔可观的收入。但这是cURL——一个装机量超百亿的基础设施级项目。相比其用户基数,这点收入几乎是九牛一毛。

更何况,维护这样一个全球性项目本身也需要不菲的支出,包括服务器与基础设施费用、安全漏洞悬赏计划、年度开发者会议(curl-up)以及项目开发相关的硬件报销等。

cURL项目的部分财务支出列表

上面的支出列表中有一项是“购买笔记本电脑”,原因是丹尼尔自用的那台电脑已经服役8年,性能严重不足,不得不更换。

丹尼尔博客文章“赞助我的笔记本电脑!”截图

当然,丹尼尔能28年如一日地维护cURL,其动力绝不仅仅来自于金钱。他在Stack Overflow上回答关于持续维护的动力时曾说:“……当然,二十多年每天都在做这件事,我有时候也会感到厌倦,有时会有障碍,有些事情很难,有些人也很丑陋和烦人……但是最大的奖赏是,我知道我的代码有助于推动无处不在的互联网革命。

开源项目的不同路径与思考

在向丹尼尔这样纯粹的开源先驱致以崇高敬意的同时,我们也不禁思考:连cURL这样极其成功和重要的项目都难以获得相匹配的商业回报,其他开源项目的生存状况又如何呢?

粗略总结,开源软件的发展大抵有以下几种路径:

  1. 个人作品与简历亮点:很多程序员创建了小而精的开源项目,获得了不错的Star数,成为简历上漂亮的一笔。能做到这一步的开发者已经很多。

  2. 基础设施的隐形支柱:这类项目解决了一个至关重要的、非常细分领域的问题,通常以库的形式存在。典型代表就是cURLlog4jOpenSSL。它们支撑着全球互联网的运转,但知名度远低于其重要性,相应的直接收入也很微薄,而一旦出现问题,维护者却要承担巨大压力。
    讽刺现代软件基础设施复杂性的梗图
    驱动这类项目维护者坚持下去的,往往是纯粹的热爱与“我的代码在支撑世界运转”的巨大成就感。

  3. 开源为核心,商业来变现:项目恰好满足了一个巨大的市场需求,存在显著的商业机会。于是成立公司,采用“开源社区版引流,商业版/企业版盈利”的模式,同时提供付费技术支持。未来可能被收购,甚至上市。这似乎是当前主流的开源商业化路径,典型如Nginx、MySQL、Elasticsearch、MongoDB等。不过,这个模式也面临挑战,例如一些云服务商会将开源软件包装成云服务出售,迫使一些项目不得不修改开源协议以应对。

  4. 巨头扶持的基金会模式:项目的影响力达到极致,以至于没有任何一家商业公司能够单独掌控,各大科技巨头不得不共同成立基金会来支持其发展。最典型的代表就是Linux

cURL的故事,是开源世界理想主义的一面旗帜,也尖锐地揭示了“价值”与“价格”在数字时代的复杂关系。它引发了许多关于开源可持续性、基础设施维护者权益的讨论。如果你对这类开发者生态与开源经济的话题感兴趣,不妨到技术社区分享你的见解。毕竟,无数像丹尼尔这样的开发者,用他们卓越的C/C++技术栈能力构建了我们数字生活的基石,他们的故事值得被更多人知晓和思考。




上一篇:HTTP 与 RPC 深度对比:为何微服务内部通信首选 RPC?
下一篇:MySQL发展现状分析:从巅峰坠落,PostgreSQL崛起背后的原因
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-1-25 20:37 , Processed in 0.323512 second(s), 42 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2026 云栈社区.

快速回复 返回顶部 返回列表