为什么开源?curl 作者:让世界变得更美好

笔者今日在浏览 Stack Overflow 的时候,看到有开发者发表了一个这样的问题 —— “What is the incentive for curl to release the library for free?”,大意是想知道 curl 作者为什么会选择将其开源并且免费提供。

cURL 是一个利用 URL 语法在命令行下工作的数据传输工具,于1998年***发布,支持 DICT、FILE、FTP、FTPS、Gopher、HTTP、HTTPS、IMAP、IMAPS、LDAP、LDAPS、POP3、POP3S、RTMP、RTSP、SCP、SFTP、SMB、SMBS、SMTP、SMTPS、Telnet 和 TFTP。cURL 的原作者是 Daniel Stenberg (目前是 cURL 的核心开发者),同时也是 IETF HTTPbis 工作组的资深成员。

这名开发者表示最近开始在自己的 VC++ 项目中使用 libcurl,并且了解到 curl 和 libcurl 不但开源,而且完全免费。他好奇作者这样做纯粹是为了帮助开发者吗?

没想到 curl 作者本尊 Daniel Stenberg 亲自现身回答,他详细解答了这位开发者的疑问。以下内容编译自 Daniel 在问题下的回答。

Daniel 在 1998 年创建了 curl 项目,他编写了最初的 curl 版本,并创建了 libcurl 库。到目前为止,代码仓库包括的 24000 次 commit 有超过一半是 Daniel 本人提交的,他依然是项目的核心开发者。Daniel 表示已将 curl 视为自己的孩子。

Daniel 在完成 curl 的***版开发后就将其开源了,和许多开源作者一样,Daniel 表示之所以选择开源 curl,是因为他使用过很多开源软件,并从中获益甚多,而回馈开源世界的***方式当然就是「开源」,而且他也想跟其他开源作者一样 cool。

因为开源,来自全球各地的成千上万开发者参与进来一起帮助改进 curl,包括项目本身、文档、网站以及其他的周边细节。Daniel 认为,如果当初没有选择开源,curl 和 libcurl 绝对不会有今天的成就。现在的贡献者名单已超过 1900 个名字,并且每年保持新增几百个名字的速度。

正因为开源和不受限制的使用许可,curl 和 libcurl 推出后就被许多产品采用,并被迅速集成到无处不在的操作系统和 Linux 发行版上,最终覆盖的范围超乎想象。

***也正因为 curl 的这种“无处不在”,它被全球各地的所有人使用 —— 从而成为了一个事实上的标准「传输库」

据统计,curl 在全球拥有大约 60 亿的安装量,它运行在数十亿部移动电话、Windows 10 设备、游戏机和电视机上,毫无疑问 curl 是世界上使用最广泛的网络传输库。而这离不开最初创建它的人选择将它开源。

Daniel 表示不会为 curl 选择一个“合适”的许可证进而向用户收取费用,过去不会,未来也不会这样的计划。

为什么现在仍参与到 curl 的开发中?

Daniel 解释了自己仍继续参与开发 curl 并免费提供给大家使用的原因(Daniel 表示他不能代表其他的 curl 开发成员,每个人都有自己参与到其中的原因,所以下面只是他的个人观点):

我认为这仍然是一件值得去做的事。我为自己所取得的成就感到骄傲,我也真心想让世界变得更美好,但我觉得 curl 在这方面做得很少。 还要修复 bug 和增加新功能! 虽然 curl 是免费的工具,但我的时间不是,我有一份收入不错的工作来保证生活。curl 获得的捐赠足以维持它的发展,并保证它足够自由和中立而不被任何人和机构所控制。 curl 作为我的业余时间项目已有二十年,而投身到 curl 让我认识到了更多的朋友、改变了我的生活,还把我带到了我曾以为不会去的地方。 如果能重来,我还是会这样做

虽然 curl 已有瞩目的成就,但 Daniel 依旧在不断改进它,修复错误、增加功能等,希望能为开发者提供***秀的文件传输解决方案。

二十年来,一如既往地坚持一个项目会累吗?Daniel 表示这是当然的,偶尔会感到疲倦,毕竟这不是一项轻松的工作,而且有时候问题会很困难,而外界的声音有时也不是那么友好。但 curl 作为他生命的一部分,经历了困难时刻后,大部分的时光都是很美好的 —— 可以和优秀的人共事,而奖励也不一般:自己编写的这些代码参与到了推动互联网革命发展的进程中。

会有结束的那一天吗?Daniel 表示 curl 永远不会结束,他认为,到目前为止,开发 curl 是他能想象到的最有趣的工作。即使这项工作已经持续了二十年,他仍然这样认为,并计划坚持下去。