大家好,我是卡颂。
最近看公众号后台用户数据,关注我的朋友一多半(58%)是26~35岁。
这个年纪,可能已经被社会捶过几年,对成功一词有了自己的理解。
虽然不知道什么样的人生才是成功的人生,但是有这样一个开源项目:
- 开发至今,维护了25年
- 全球总下载量大概为100亿次(全球网民平均每人下载2.5次)
相信你也会同意:这是个成功的开源项目,他就是大名鼎鼎的curl
。
接下来让我们看看,是什么样的品质才能让一个项目在历史的长河中沉淀下来?
结果很可能和你的直觉相反哦~
curl的故事
curl
是一款请求数据的命令行工具,支持多种协议。它的名字是client
+ url
的意思(客户端的url
工具)。
作者是Daniel Stenberg
。
在90年代初期,正是IRC
(一种聊天协议,可以理解为命令行版本的QQ)繁荣的时期。
Daniel
和朋友开发了一款IRC
聊天机器人。接下来,他决定为机器人增加汇率兑换功能。
为此,需要通过http Get
请求调用汇率接口。为了实现这个功能,Daniel使用了一款名为HTTPGet
的工具。
单一的公共接口显然是不可靠的。不久后Daniel又发现了一台提供货币汇率接口的Gopher
服务器,以及一台FTP
服务器。为此,他必须在原有工具基础上支持这两种协议。
随着支持的协议越来越多,HTTPGet
这个名字已经名不副实。于是,Daniel
将其改名为curl
。
在随后的20多年里,Daniel
将curl
的实现推广到全平台,围绕获取数据这一需求,不断迭代。
这就是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也不是常态。这些都只是时代背景下,人生历程的一小站。
如果在互联网这么强调快、精英范的领域,最成功的产品反而是一群普通人、靠漫长的岁月积累起来的。
那我们为什么不试着和时间做朋友?放下焦虑,你超棒的。