热点资讯

  • 首页 开发了世界上最流行的软件,竟然被人追杀,开源太可怕了...

开发了世界上最流行的软件,竟然被人追杀,开源太可怕了...

2026-09-09

一个只占几百K内存的小工具,静静地运行在全球超过 200 亿台 设备上。 从你手中的 iPhone、Android 手机,到 Windows、Linux 、macOS系统; 从 Nintendo Switch、Xbox、PS5 等游戏机,到智能手表、汽车、打印机、智能厨房、医疗设备、机器人...... 只要需要网络数据传输,就有它的身影。 它甚至运行在两个星球上:地球和火星(2021年随着毅力号登录火星)。 这就是 cURL。 它的作者,瑞典程序员丹尼尔(Daniel Stenberg),用了 28 年的时间,把一个不起眼的小工具打磨成了世界上最流行的软件。 然而,开发了如此伟大的工具,丹尼尔不仅没有因此过上“人生赢家”的生活,甚至还收到过死亡威胁。 在FOSDEM 大会上,丹尼尔讲述了几十年来把 cURL 打造为全球基础设施的酸甜苦辣,投入与坚持,非常值得一看。 0 1 伟大的项目,都始于微小的需求 cURL 的诞生,最初只是为了满足一个再普通不过的小需求:写个自动脚本,从某个网站上下载汇率数据。 和大多数程序员一样,他一开始在网上找了个叫 httpget 的开源项目,用得不亦乐乎。 为了让它更好用,他陆续增加了对 Gopher 和 FTP 协议的支持。后来顺势接管了该项目,成为了维护者。 随着功能越来越多,继续叫 httpget 显得不够准确了。1998 年,丹尼尔正式将其改名为 cURL。 那一年,cURL 仅有 300 次下载。但丹尼尔觉得这已经“酷毙了”,因为300 个用户已经远远超过了他的朋友数量! 当时的丹尼尔完全没有“改变世界”的野心,他的数学甚至算得很可爱:“2年有了 300 个用户,那再过 20 年,岂不就能有 3000 个用户了?” 0 2 极致的坚持 很少有项目能一夜爆红。 开源世界里最不缺的就是创意和同类软件,当 cURL 取得巨大成功后,很多人问丹尼尔究竟凭什么? 丹尼尔的回答非常朴素:“我只是投入了更多的时间。” 每个人都有家庭和生活,要把时间留给开源,就必须牺牲其他娱乐。 比如,丹尼尔从来不玩电脑游戏,他把节省出来的所有闲暇时间都砸在了 cURL 上。 在 cURL 还不出名的时候,大部分时间只有丹尼尔一个人在默默开发。那种孤独,就像在黑夜中独自漫长地行走。 为了给项目“增加一点人气”,甚至发生过一件让人心酸又好笑的事:丹尼尔曾假装成其他用户,给自己的项目提交 Pull Request,热切期盼能有路人来评论互动。 但大多数时候依然无人问津,丹尼尔只能默默切回主账号,自己把请求合并,然后继续往前走。 (这不禁让人想起早期的腾讯QQ,马化腾假扮女生陪用户聊天) 0 3 沉重的责任 任何软件都有漏洞,但对于一个安装量超过 200 亿次的软件来说,任何一个哪怕极小的安全漏洞,都可能引发全球性的基础设施危机。 丹尼尔坦言,当严重漏洞出现时,他经常焦虑得夜晚难以入睡。 但这是属于他自己的软件,他必须扛起这份责任。 为了把风险降到最低,丹尼尔建立了一套极其严苛的品质保障体系: 编写极具可读性的代码 撰写极其完善的文档 进行浩瀚如海的单元测试 使用各种现代化工具进行静态分析 引入高强度的模糊测试(Fuzzing) 漏洞赏金计划:拿出真金白银,奖励那些发现漏洞的安全人员 (2026年,由于很多程序员用AI提交了大量无效漏洞,丹尼尔暂时关闭了这个计划) 0 4 复杂的人心 写代码很容易,写得不好可以随时重构、调试、换个算法重写。 但与人打交道,才是开源维护者面临的最大挑战。 随着项目规模越来越大,各种声音也随之而来: 有人指责他选错了编程语言(无论选哪种语言都会被骂); 有人抱怨技术太老、太笨、太烂; 还有人因为 cURL 无法解决他们特定的私人问题而大发雷霆(哪怕 cURL 根本就不是为了解决那种问题而设计的)。 只要有一点让人不满意,就会有人用极其咄咄逼人的语气提出质问。 为了维护一个友好的社区氛围,丹尼尔练就了一套情绪管理法则:回复时做深呼吸;如果依然觉得被冒犯或不安,就先放下,绝对不立刻回复。 开源就是这样:只要一切正常,绝不会有人夸你一句; 可一旦出现一个小漏洞,尤其是比较愚蠢的 Bug 时,马上就会有无数人疯狂抱怨。 至今,cURL 拥有 200 亿次安装,但仅有 1,240 名贡献者,而且大部分人只是提交了一个修复拼写错误的补丁就再也没出现过。 但偶尔也会有惊艳的开发者突然出现,带着一份对 cURL 架构理解极深的高质量 Patch,这足以让丹尼尔兴奋许久。 0 5 真实的死亡威胁 为了符合开源协议,丹尼尔把自己的个人邮箱写在了许可证的

about image