前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >维护一个开源项目25年是什么体验?

维护一个开源项目25年是什么体验?

作者头像
公众号@魔术师卡颂
发布2021-07-07 10:26:08
3160
发布2021-07-07 10:26:08
举报
文章被收录于专栏:魔术师卡颂

大家好,我是卡颂。

最近看公众号后台用户数据,关注我的朋友一多半(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也不是常态。这些都只是时代背景下,人生历程的一小站。

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

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

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-06-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 魔术师卡颂 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • curl的故事
  • 做时间的朋友
    • 一致性
      • 没有天才,只有坚持
      • 慢下来,一步步来
      相关产品与服务
      命令行工具
      腾讯云命令行工具 TCCLI 是管理腾讯云资源的统一工具。使用腾讯云命令行工具,您可以快速调用腾讯云 API 来管理您的腾讯云资源。此外,您还可以基于腾讯云的命令行工具来做自动化和脚本处理,以更多样的方式进行组合和重用。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档