前阵子,Redis 的作者 Antirez(Salvatore Sanfilippo)发布博客,宣布自己将辞去 Redis 项目维护者职务,将 Redis 交给 Redis 社区。这一消息受到了业界的强烈关注。
我把这个叫做开源维护者的纠结和挣扎。其实前一阵子 Linux 之父林纳斯也很感慨,不知道自己这一代核心维护者离开后,开源会发生什么。
Antirez 表示,他现在的大部分精力都花在检查其他开发者提交的 Redis 代码、改进代码质量,以及提升软件正确性、速度与安全性方面,但他并不喜欢做这类维护工作,而是希望做一些有创造性的工作,通过写代码实现自我表达。他是这么说的:
我写代码是为了表达自我,并且我认为它们是一种艺术品,而不仅仅是能够完成任务的有用的东西。
于我而言,代码的功能只是一种副作用,创造出优美的东西才是我的首要目标。
从本质上来说,我更愿意人们把我看作是一名糟糕的艺术家,而不仅仅是一名优秀的程序员。
Redis 是一款免费、开源、遵循 BSD 协议的高性能结构化存储数据库。同时,它也是 NoSQL(Not Only SQL),即非关系型数据库的一种,内置了丰富的数据结构,目前基本上已经成为一种工业标准,NoSQL 数据库的首选。
Redis 最大的特点就是它的查询效率非常高。根据官方提供的数据,Redis 每秒最多处理的请求可以达到 10 万次。Redis 之所以能这么快,和它的编写语言、内存模型,包括进程和线程的设计息息相关。
回顾这十几年的发展历程,在 Antirez 和无数开发者的维护下,Redis 越来越成熟。在 DB-Engines 最新发布的 7 月键值存储数据库排行榜中,Redis 排在第一,排在它后面的有亚马逊 DynamoDB 和微软 Azure Cosmos DB。而在 DB-Engines 数据库总榜中,Redis 也稳定排在第 8 位,这个成绩可以说相当优秀。
按照道理来说,Redis 就是 Antirez 自己的「孩子」,一点点看它长大,看它成熟,看它不愁名气也不愁钱,这时候 Antirez 应该继续带领 Redis 走向巅峰啊,但是,你有你的计划,世界自有计划。Antirez 激流勇退了。
很多听说 Antirez 辞职的网友纷纷给他留言,以至于他在 Twitter 上感慨说:“简直不敢相信我收到了如此多的消息,即使有些听起来像是我死掉了一样,这有点像参加自己的葬礼呢……”
其实从另一种角度来看,不如说这次是他的“重生”。因为在 Antirez 维护 Redis 的这些年里,无论是在精神上还是心理上,他都经受了巨大的考验。Antirez 曾在一年多前在自己的博客中写下《开源维护者的挣扎》一文,从中可以一窥开源维护者面临的困顿。
比如,Antirez 需要面对来自用户的压力。当 Redis 变得越来越流行,用的人越来越多时,用户提交的反馈也就越来越多,他收到的建议成倍增长。这个时候,他不仅要花大量时间处理反馈,还要在自己的想法和用户期望之间做权衡。但无论他怎么优化,永远满足不了所有人的需求,总会有一小撮儿人疯狂吐槽。其实这也是每个作者都会面临的问题,你永远无法让所有的人都满意。这种事情既然躲不掉,那么习惯就好了。微信之父张小龙就曾在一次公开课分享上说过,“每天有 5 亿人吐槽微信,有 1 亿人想教我做产品…..习惯就好。”
来自用户的压力只是一方面,对于开源维护者来说,长期在同一个项目上工作还会面临诸多问题。Antirez 就觉得,自己主要还有两个问题:
第一,工作时间长且固定,自己没时间充电,很难进行创新,同时生产力也会降低。
在参与 Redis 项目之前,Antirez 的工作时间一直比较自由,他可以工作一个星期,再休息两天,也可以工作一个月,再休息两个月。在他看来,人总是需要充电的,放空自己才能获得新的能量与灵感。从个人经历来看,他觉得自己想工作的时候才工作,总体产出要比每天被迫固定工作还更高一些。但在公司上班之后,职业要求成了他的“紧箍咒”,为了靠开发 Redis 赚钱,他必须得按照正常的时间表工作,这打破了他多年来的工作习惯。
第二,从心理层面来讲,长期从事同一个项目确实非常累人。
Antirez 几乎每 6 个月就要进行一次项目变更,而且同样的工作已经持续了 10 年。为了解决问题,他尝试在 Redis 中引入多个子项目,让自己保持一点正常的激情。比如抽点时间做 Cluster,过一阵子再做 disk-storage(已经被废弃),然后是 HyerLogLogs 等,总之就是尽量把大型项目拆分成一个个孤立的有价值元素。但最终,工作总是回到“问题和 PR”上,让他的生活再次陷入没有停歇的重复中。
可以看出,Antirez 在维护 Redis 期间,身体和心理都承受了巨大的压力。
其实不仅是开源维护者,很多程序员都或多或少经历过类似情况,我也经常能收到这类的留言,有人感慨工作压力大,有人陷入重复劳动越来越厌倦等等。简单来说就是,爷不想干了。
那咋办呢?
要么换个环境,要么 Live with it。
但无论做什么,要能钻进去,也能跳出来,弦不要绷太紧。正如李安导演所言:人生如练功,一份功一份松,松了一环之后,再往紧处练,层层而上。功力越深,无论环境如何变化,综合实力越强的人,越不容易被击败。
Antirez 在 Twitter 上说:人生苦短,不能一直都做同一件事情。也许辞职后的他,能找到更多新的可能。
祝福 Antirez,也祝福每个为世界带来创新的程序员。