7
头图

大家好,我是卡颂。

最近看公众号后台用户数据,关注我的朋友一多半(58%)是26~35岁。

这个年纪,可能已经被社会捶过几年,对成功一词有了自己的理解。

虽然不知道什么样的人生才是成功的人生,但是有这样一个开源项目:

  • 开发至今,维护了25年
  • 全球总下载量大概为100亿次(全球网民平均每人下载2.5次)

相信你也会同意:这是个成功的开源项目,他就是大名鼎鼎的curl

接下来让我们看看,是什么样的品质才能让一个项目在历史的长河中沉淀下来?

结果很可能和你的直觉相反哦~

curl的故事

curl是一款请求数据的命令行工具,支持多种协议。它的名字是client + url的意思(客户端的url工具)。

作者是Daniel Stenberg

Daniel Stenberg

在90年代初期,正是IRC(一种聊天协议,可以理解为命令行版本的QQ)繁荣的时期。

IRC聊天室

Daniel和朋友开发了一款IRC聊天机器人。接下来,他决定为机器人增加汇率兑换功能

为此,需要通过http Get请求调用汇率接口。为了实现这个功能,Daniel使用了一款名为HTTPGet的工具。

单一的公共接口显然是不可靠的。不久后Daniel又发现了一台提供货币汇率接口的Gopher服务器,以及一台FTP服务器。为此,他必须在原有工具基础上支持这两种协议。

随着支持的协议越来越多,HTTPGet这个名字已经名不副实。于是,Daniel将其改名为curl

在随后的20多年里,Danielcurl的实现推广到全平台,围绕获取数据这一需求,不断迭代。

这就是curl的故事。

做时间的朋友

不久前Daniel在推上谈到:

每天在家人休息后,我会继续处理curl的工作1~2小时。日积月累,在curl上我大概花了1.5w小时

作家Malcolm Timothy Gladwell在《异类》中提出一万小时理论

人们眼中的天才之所以卓越非凡,并非天资超人一等,而是付出了持续不断的努力。1万小时的锤炼是任何人从平凡变成大师的必要条件

Daniel作为专家的专业性促成了curl的成功吗?显然他并不这么认为。

在谈到curl为何能长期获得社区认可时,Daniel总结了两点因素:

一致性

很多库作者将curl作为底层依赖。他们之所以这么做,是因为curl做出了一致性承诺,并在漫长的岁月中遵守了这个承诺。

  • curl会不会突然没人维护了?我承诺了不会,我遵守承诺
  • 这个API会不会突然废弃了?我承诺了不会,我遵守承诺

如果一个项目在25年间都遵守了承诺,那么大概率在未来他也是可靠的。

现在很多大厂造的轮子,理念很棒。可一旦需要投入生产时就会让人犯嘀咕:这会不会是个KPI项目?要是以后没人维护了怎么办?

高速迭代的互联网,一致性是稀缺的。

没有天才,只有坚持

很多项目维护者不喜欢新人就拼写错误这样的问题提PR,认为这是水PR行为。与他们相反,Daniel很鼓励这种行为。

在他看来,大部分人(包括他自己)都是普通人,没有谁能一上手就对项目了如指掌。从简单的PR开始是明智的选择。

可能这个PR纠正拼写错误,下个PR就是修改测试用例,再下一个就是修改项目bug了。

长远看,成功的项目没有天才,只有默默坚持的普通人。

强如正义联盟还有战力值只有5的蝙蝠侠呢【手动狗头】

慢下来,一步步来

互联网真是太快了,薪资长得快,头发掉得快,老人淘汰快。

这让人产生了一个感觉:当码农就是用命换一笔快钱。

对普通人来说,年薪百万不是常态,996也不是常态。这些都只是时代背景下,人生历程的一小站。

如果在互联网这么强调精英范的领域,最成功的产品反而是一群普通人、靠漫长的岁月积累起来的。

那我们为什么不试着和时间做朋友?放下焦虑,你超棒的。


卡颂
3.1k 声望16.7k 粉丝