50万奖金+官方证书,深圳国际金融科技大赛正式启动,点击报名 了解详情
写点什么

从 160 行代码到 200 亿安装量:Curl 的传奇故事

  • 2024-03-21
    北京
  • 本文字数:3881 字

    阅读完需:约 13 分钟

大小:1.83M时长:10:38
从 160 行代码到 200 亿安装量:Curl 的传奇故事

导读:本文介绍了 curl 的创始人 Daniel Stenberg 在 FOSDEM 2024 大会上的演讲内容。Stenberg 分享了他从事开源项目的经历和见解,强调了成功的开源项目背后并没有天才或魔法,只是长期的努力和对创意的持续追求。他还提到了 curl 项目的起源和发展历程,以及在开发过程中所遇到的挑战和教训。尽管 curl 已经成为一项广泛应用的数据传输工具,但 Stenberg 强调了团队合作的重要性,并分享了他对开源社区的感悟和建议。如果你对开源项目、软件开发以及 Daniel Stenberg 的个人故事感兴趣,那么本文将为你提供深入了解和启发。

 

FOSDEM 2024 的大会上,一位低调而充满智慧的人物引起了广泛关注。他就是 Daniel Stenberg,那位创造了广受欢迎的 curl 数据传输实用工具的开发者与维护者。他向在场的观众分享了自己的成功秘诀:“成功的开源项目并非源于天才或魔法技巧。”

 

curl,这个看似简单的命令工具,已经深入到全球约 200 亿台设备中,成为了互联网下载文件的必备利器。然而,对于 Stenberg 来说,curl 的诞生却始于 1996 年的那 160 行代码 ——“仅仅是几屏幕的内容”。

 

“你开始试着使用它…… 你开始摆弄它…… 从小事做起。做你想做的任何事情。给予足够的时间,享受其中的乐趣。”Stenberg 的话语中透露出一种从容与坚定,仿佛在告诉我们:成功并非遥不可及,而是源于对梦想的执着追求和对过程的享受。

 

“对吧?这就是开始一个开源项目的方式。你有一种渴望,于是你开始行动。只要趣味在,何乐而不为呢?” 这句话仿佛是一盏明灯,照亮了许多对开源项目充满热情却犹豫不决的人的道路。

 


在 curl 的 28 年发展历程中,Stenberg 究竟学到了哪些宝贵的经验?在最近的一次演讲中,他分享了自己的洞察与收获,为开源力量在维持开发项目中的重要作用提供了有力的见证。

 

Stenberg 也表达了对早期启发他的所有人的感激之情。他承认,没有这些人的支持与帮助,curl 不可能取得如今的成就。此外,他还特别提到了 curl 庞大的用户群体和那些至今仍在支持 curl 的专注贡献者团队。正是这些用户的反馈和贡献者的努力,使得 curl 能够不断完善和进步。

 

开源的魅力

 

在 curl 项目的头两年开发中,Daniel Stenberg 见证了一个令人瞩目的里程碑 —— 惊人的 300 次下载。回忆起这段经历,他幽默地预测,“按照这个速度,再过 20 年,我们可能会有 3000 次下载!”

 

一本免费在线电子书中,Stenberg 坦诚地承认,curl 最初只是一个 “玩具项目”。然而,正是开源社区的灵感和力量,让这个 “玩具” 逐渐蜕变为一个全球知名的工具。他钦佩开源作者的才华,并渴望成为其中的一员。因此,即使在 “开源” 这个术语被正式采用之前,Stenberg 就已经开始将他的代码开源。

 

在 FOSDEM 的演讲中,Stenberg 向听众们分享了他的见解:“如今,开源已经变得容易得多。回到 1998 年或 1996 年,几乎没有人了解开源,它只是少数怪人的小圈子。” 他回忆起,1998 年互联网的总人口约为 4 千万人,“这基本上就是今天开源开发者的数量。”

 


此外,正如 Stenberg 在他的书中所说,“如今的基础设施、工具、资金等资源比以往任何时候都更加完善、更加免费,这为开源项目的发展提供了前所未有的机遇。” 向听众们分享了他的这一观点:“我认为未来会更容易、更美好,因为所有这一切都将得到改善。” 他强调,今天的开源开发者们拥有更多的资源和支持,这使得他们能够更轻松地参与到开源项目中来。

 

Stenberg 也给听众提到了这一点:吸引和留住贡献者是开源项目成功的关键之一。他分享了一个有趣的统计数据:curl 项目拥有 1240 名贡献者,但其中超过 65% 的人只贡献过一次,之后就没有再参与。然而,当一个新的、有经验的贡献者带着令人惊叹的补丁出现时,他们所带来的影响是巨大的。

 

面对这种情况,Stenberg 给出了他的建议:“让别人帮助你变得容易。” 他鼓励开源项目的维护者们要减少贡献者的阻力,让他们能够更轻松地参与到项目中来。同时,他也强调了开源项目要保持乐趣和活力的重要性,因为这也是吸引和留住贡献者的重要因素之一。

 

在 Stenberg 的眼中,开源项目是一个充满惊喜和乐趣的世界。他相信,只要我们有足够的资源和支持,就能够迎接各种方向的惊喜,创造出更加美好的未来。

 

200 亿台设备上的 Bug

 

随着 curl 被安装在约 200 亿台设备上,其影响力和重要性不言而喻。然而,正如 Stenberg 所指出的,这也存在一个缺点:“如果你的代码在很多地方运行,你真的能确定,当你发布一个版本时,它不会导致半个互联网崩溃吗?”

 

“承认自己的错误。学习、适应、增加更多测试。” 这是 Stenberg 给出的答案。

 

他向听众说,每个人都会犯错,但关键在于如何处理这些错误。他认为,真正重要的是对待错误的态度和方法,而不是错误的数量或严重程度。

 

他进一步解释道:“在我们的案例中,在几乎所有人的案例中 —— 我们只能做我们所能做的。” 他强调了通过易读的代码、文档、测试、代码分析器、模糊测试和漏洞赏金等方式来提高代码质量和安全性。这些都是他们为应对挑战而采取的措施。

 

Stenberg 也讲到,面对挑战可能会让人心力交瘁。但他坚信,从错误中学习并持续改进是通往成功的关键。他鼓励大家要从中吸取教训,并不断努力提高自己。

 

最后,他强调了乐趣在开源工作中的重要性:“而且要继续享受乐趣,因为如果不是有趣的,你不会花那么多时间在上面。其他人也不会这么做。” 他相信,只有保持对开源工作的热爱和乐趣,才能持续激发创造力和创新精神。

 

人比代码更难对付

 

Stenberg 坦言了也许是最棘手的问题:“人比代码更难对付。”

 

Stenberg 凭借多年的经验,揭示了开发者每天所面临的问题。他指出,与来自不同领域、文化和语言背景的人进行有效沟通是一项艰巨的任务。更令人惊讶的是,他警告说,只有 “极小部分” 的反馈是积极的。开发者经常听到关于 bug 和缺陷的反馈,其中既有真实的,也有因为误解而产生的。当系统正常工作时,人们往往保持沉默,但一旦出现问题,负面声音便会此起彼伏。

 

在演讲中,Stenberg 进一步指出,当一个看似简单的 bug 长时间未得到修复时,人们会感到惊讶。

 

当被问及现在与一个更大的代码库有什么不同时,Stenberg 坦率地表示:“实际上没有什么不同。” 他解释说,无论是在大型还是小型代码库中,开发者都会面临类似的沟通挑战和问题。今天的开源世界仍然充满了 bug、抱怨和困惑,但这也为开发者提供了不断学习和进步的机会。

 

开源之光

 

Stenberg 的书中,我们得以窥见一个开源开发者鲜为人知的日常生活。他不仅仅是一个代码编写者,更是成千上万绝望用户的最后希望。这些用户因为各种原因无法从原始供应商那里得到帮助,只能转而向 Stenberg 求助。

 

这些求助邮件的背后,是用户们的痛苦、困惑和绝望。他们 “尝试了一切,翻遍了每一块石头”,但问题仍未得到解决。

 

正是这些邮件让 Stenberg 有了深入了解人们生活的机会。他收到了关于汽车、GPS 系统、视频游戏等各种问题的求助邮件。有时候,他甚至需要 Google 来理解问题的具体内容。这些邮件让他看到了开源软件在人们生活中的实际应用,以及它如何影响他们的日常生活。

 

其中也不乏一些令人啼笑皆非的情况。有用户因为自己的游戏账户被封禁而向他求助,还有用户警告他可能是某个黑客组织的一部分。但更多的,是那些充满绝望和期待的邮件,让 Stenberg 深感责任重大。

 

面对这些邮件,Stenberg 也曾经感到困扰和无奈。他承认,有时候他会选择停止回复,因为这似乎只会让用户更加生气。但他也意识到,这种做法并不正确。尽管他不能解决所有问题,但他仍然尽力提供帮助和建议。

 

尽管有时会收到一些充满敌意和误解的邮件,但 Stenberg 从不轻易放弃。他深知,在这些邮件背后,是用户们的真实需求和痛苦。因此,即使面对敏感和复杂的情况,他仍会花时间撰写回复,尤其是当用户似乎是诈骗的受害者或处于真正脆弱的情况下。

 


这种坚持和付出并没有白费。几个月后,一位曾经向 Stenberg 求助的用户再次给他发来邮件道歉。这封邮件不仅代表了用户对 Stenberg 工作的认可,更是对他无私奉献和坚持精神的肯定。

 

集体智慧与个人奉献

 

上个月,Stenberg 宣布自己为 curl 项目贡献了高达 18001 次的提交,其中最后的 1000 次提交仅用了 422 天时间。

 

在二月初的一篇博客文章中,Stenberg 明确指出,curl 的成功并非他个人的单打独斗。事实上,该项目已经汇聚了超过 1200 名提交作者,他们来自不同的背景,拥有不同的专长,但都为 curl 的成长和发展做出了巨大的贡献。更令人惊讶的是,每个月平均有 25 位新的提交作者加入这个大家庭,而每个月大约有 10 位新的提交者开始为项目贡献代码。在这样一个庞大的团队中,Stenberg 的所有提交所占的比例在过去多年里持续缩小,但他对此并不介怀。

 

在他的最后一张幻灯片中,Stenberg 更是用简洁明了的方式传达了这个信息:curl 和所有伟大的开源项目都始于简单的东西。

 


他向听众表示,他并不特别,也没有做出什么天才之举。他只是长时间地致力于这个项目,因为有一个想法让他觉得很有趣,于是他就去做了。

 

Stenberg 说,成功并没有捷径,只有不断打磨和付出。他相信,只要你花足够的时间在某件事情上,它最终会变得相当不错。

 

“就是这么简单。我认为你也能做到。”

 

作者简介

David Cassel,居住在旧金山湾区的科技新闻人。拥有超过二十年的科技新闻报道经验,他的文字曾在 CNN、MSNBC、华尔街日报互动版、Salon、Wired News、Suck.com 等知名媒体上亮相。

 

原文链接

 

https://thenewstack.io/you-too-could-have-made-curl-daniel-stenberg-at-fosdem/

 

声明:本文为 InfoQ 翻译整理,未经许可禁止转载。

2024-03-21 18:488058

评论

发布
暂无评论
发现更多内容

实时渲染与离线渲染优势浅析-3D可视化技术

3DCAT实时渲染

云渲染 实时渲染

C 语言中的 switch 语句和 while 循环详解

小万哥

程序人生 编程语言 软件工程 C/C++ 后端开发

按图搜索淘宝商品接口(拍立淘)(Taobao.item_search_img)

tbapi

按图搜索淘宝商品接口 图片搜索商品接口 图片搜索API接口 拍立淘API接口 淘宝图片搜索接口

Solana 生态铭文跨链桥 Sobit 是何神圣?其场外白名单已达到1200U

股市老人

0.1+0.2≠0.3,揭秘Python自带的Bug

程序员晚枫

Python

普及旗舰音质,打造一加用户首选!一加 Buds 3定档1月4日发布

编程猫

高效打通,释放人力——聚道云软件连接器助力生产制造行业人力资源信息交互

聚道云软件连接器

云原生时代的安全变化趋势

穿过生命散发芬芳

构建高效数据流转的 ETL 系统:数据库 + Serverless 函数计算的最佳实践

阿里巴巴云原生

阿里云 Serverless 云原生

场外白名单达到1200U?Solana 生态铭文跨链桥 Sobit 是何神圣?

石头财经

轻松搭建基于服务网格的 AI 应用,然后开始玩

阿里巴巴云原生

阿里云 云原生 asm

如何快速获取抖音新用户/用户信息

谷云科技RestCloud

抖音 数据同步 ETL

聚道云受邀参加【中国算谷·智慧庆阳】算力行动推进大会

聚道云软件连接器

七功能遥控编解码芯片

芯动大师

看孙玲TEDX演讲有感

五月的风

Kubernetes调试终极武器: K8sGPT

俞凡

人工智能 Kubernetes SRE ChatGPT

TiDB 7.1 多租户在中泰证券中的应用

PingCAP

数据库 TiDB

TiDB 助力保险业首个全栈自主的核心保单系统成功投产

PingCAP

数据库 TiDB 保险业

多语言应用监控最优选,ARMS 应用监控 eBPF 版正式发布

阿里巴巴云原生

阿里云 云原生

为什么市场称SoBit 是铭文跨链赛道真正的龙头?

股市老人

TiDB 7.5 LTS 发版丨提升规模化场景下关键应用的稳定性和成本的灵活性

PingCAP

数据库 TiDB pingCAP

2023 年中国金融级分布式数据库市场报告:TiDB 位列领导者梯队,创新能力与增长指数表现突出

PingCAP

数据库 TiDB

Solana 生态铭文跨链桥 Sobit 是何神圣?其场外白名单已达到1200U

BlockChain先知

内嵌AI智能会议、AI临时分身、AI降噪等创新技术,ThinkPad X1 Carbon AI发布

科技范儿

Kubernetes常见的三种网络插件Flannel、Calico、Weave Net的比较:

虚实的星空

边缘计算:将未来的计算力带到你的指尖

啊川..

聚道云实现浙商银行与易快报完美互通,助力企业财务完成数字化转型

聚道云软件连接器

云原生场景下月省 10 万元资源成本,这家企业做对了什么

阿里巴巴云原生

阿里云 容器 云原生

从 160 行代码到 200 亿安装量:Curl 的传奇故事_开源_David Cassel_InfoQ精选文章