太无奈!Redis 作者被迫修改 master

by admin on 2020年2月29日

这两天,一篇名为《开源维护者的挣扎》的文章被迅速顶至 Hacker News
首页,这是 Redis
作者 antirez 发布的最新博客。

近日,知名的 Reddit 终端阅读器
RTV(Reddit Terminal
Viewer)作者宣布停止对该项目的维护。

相信在座各位的开发者都不会对 Redis
的主从模式(master-slave)感到陌生。Redis 中的主从模式事实上也是源自 MySQL
中同名的一个概念,是同步数据的一种手段。在这样的场景下,master-slave
本来是一个不带任何感情色彩的词语。然而有很多开发者却不这样认为,他们在阅读
Redis 5.0 RC5 的变更日志后发现,Redis 仍然在使用 “master” 和 “slave”
术语来在 Redis 的复制中区分不同的角色,他们对此感到失望,并希望 Redis
作者能修改 Redis 中 master-slave 架构的描述。

几个月前,一名开源项目的维护者向 antirez
发邮件,倾诉自己苦心维持项目多年,这或多或少带来了一些心理上的负担,因此特来寻求建议。antirez
表示谈不上给出建议,但可以写一篇博客文章来分享对此事的看法。经过反复的思索和自我分析,他坦承“维护一个开源项目会带来乐趣”,但“也有消极的一面”。接着,antirez
从以下几方面对此展开描述,下边直接采用第一人称:

图片 1

按 Redis 作者 antirez
的说法,这已经不是开发者第一次提这种要求了。但这次呼吁修改的声音异常的大,就连
antirez

泛滥效应

当我在项目的早期收到关于 Redis
的电子邮件时,仍然有足够的时间,能够专注于对方在消息里试图表达的内容,并在仔细考虑后回复自己的真实想法。

然而,当一个项目达到像 Redis
这样的流行程度,并且人与人之间的交流因为新的社交工具而变得更为容易时,作者收到的消息、issue、PR
和建议的数量也将呈指数增长。随之出现一个普遍性问题,至少从 Rsdis
的情况来看是这样,即没有足够多合格的人去查看并处理社区中的这些信息。

大多数人试图以错误的方式解决它:原帖发布两周后若无回复就关闭
issue、关闭所有不明确的
issue,以及其他类似直接把邮件列表全部标记为已读的做法。

图片 2

事实上,处理社区反馈必须要花费足够的时间,否则只能“假装”项目没有未解决的问题。为开源项目的每个子系统配备全职工作人员是奏效的,但很难实现。

那么接下来会发生什么?你将开始考虑哪些该被优先处理而哪些不是,你将因为自己忽略了太多事物和人而感到不安,贡献者也会认为你是一个漠不关心的人。这种情形实在是很复杂。

通常来说,应该主要先解决关键问题,忽视所有新的东西,因为新的东西还未能进入核心,谁想拥有一个伴随着更多
PR 和 issue 的代码库呢?

RTV 是一个在终端中阅读 Reddit
的开源工具,其基于文本界面(TUI),可用于查看 Reddit 并进行交互操作。RTV
十分受欢迎,目前 GitHub 上 star 数量有 4k+。

antirez 表示他很抱歉 master-slave
这个描述让许多人感到失望,但他不认为这个特定于上下文环境的术语具有侵犯性。所以他在数据库中使用
master-slave 当然不是以任何方式暗示“奴隶制度”。

角色转换

Redis 流行起来后,我的工作更多地转变为了查看 PR 和
issue。这其中确实有些人会比我做得好,但大多数人的贡献仅处于平均水平,只是解决给定问题罢了。

当我设计 Redis
时,我倾向于将它视为一个整体,毕竟这么多年来一直在写这个东西。所以现实是,擅长的东西往往不再有时间去做。

我的解决方法是,给自己几周时间停止查看 PR 和
issue,转而去编程或者设计,这才是我真正喜爱和享受的。但这反过来又给我带来了更大的心理压力,只在做自己喜欢的事情时做得很好,令人感觉很糟糕。

图片 3

图片 4

antirez
还表示,这个看似简单的修改实际上要付出昂贵的代价,并产生兼容性问题。例如:

时间

长时间在一个项目上工作有两个问题,至少对我而言是这样。

第一个问题是,在 Redis
之前,我从未有过在每个工作日都工作的经验。我总是干一周,停两周,接着再干一个月,然后消失两个月。做创造性工作需要充电,以获得新的能量和想法。

但开始收到在 Redis
工作的报酬后,道德规范我不能再依照过去的模式,所以我强迫自己按照正常的时间表工作。这对我来说无比挣扎,而且我确信自己做得比实际能做到的要少。目前仍未找到解决方法,跟公司申请回到原先的工作模式是不管用的,因为社区的运作方式如此。

另一个问题是,从精神上讲,在同一个项目中进行大量工作也是一件复杂的事情。我过去常常每六个月换一次项目,而如今十年来都在做同一个项目。我试图通过在
Redis 中部署子项目来留存创造力,先后做了 Cluster、HyerLogLogs
和一个已放弃的磁盘存储项目,现在在做第四个。

不过,最终还是要回到 issue 和 PR 页面,每天重复同样的工作。

该项目的作者  michael-lazar 
同时也是当前的唯一维护者,其近日宣布不再维护
RTV,他解释有两个原因促使他做了这个决定。一方面, michael-lazar 认为继续开发
RTV
已经不再有乐趣了,他觉得这种倦怠或许也是许多开源维护者都会面临的问题。他说他的空闲时间不多,他宁愿把时间花在维护自己的其它开源项目上。

  • 不能在应用现有的 PR

  • 现在有像 INFO 和 ROLE 这样的命令
    —— 使用包含 slave 术语的协议进行回复

  • 术语 slave 中的源代码包含 1500 个事件

  • 拥有私人项目并根据需要进行代码合并的人会遇到很多问题

恐惧

我每天都在害怕自己失去对 Redis
的技术领导力,不是因为我认为自己在设计和发展 Redis
方面做得不够好,而是因为我的方式与大多数用户想要的,以及大多数 IT
人员对软件的信仰不一致。

因此,我不得不在我认为的优秀设计、功能集、开发速度、项目规模,以及大多数用户所期望的内容之间保持平衡。

幸运的是,有一定比例的 Redis 用户完全理解 Redis
的方式,所以我至少时不时会得到一些安慰。

图片 5

关于这一点,前阵子 Redis 作者 antirez 发表的文章《Redis 作者
antirez:开源维护者的挣扎》在开源界引起了巨大的反响,或许刚好也道出了
michael-lazar 的心声。

可以看到,冒然进行变动会产生很多问题。而且,现在发布的 Redis 5
候选版本是向后兼容的首个稳定版本。所以这也是需要考虑的一方面。最后
antirez 表达了希望能折中解决问题的建议 ——

摩擦

尽管我认为程序员中的好人占比多过其他领域,但总还是有一些混账。作为一个受欢迎的开源项目的领导者,将不得不面对这些人,这可能是我在
Redis 开发过程中遇到的最紧张的事情之一。

另一个原因更为主要,michael-lazar 不想再支持 Reddit 平台,他认为
Reddit
已经变质了,平台上现在的情况是营销广告遍布、争议不断地制造、政治过份参与、欺凌横行,同时杠精丛生。

短期内的变化:

徒劳

我相信软件虽然很棒,但不会像一本存活了几个世纪的书一样伟大,这绝不是因为它本身不好,而是因为其中的副作用,并且,它终将被更有用的软件替换掉。因此有时我会觉得自己做的一切终将都是徒劳的。

只停留在软件编写本身,而不思考软件“大创意”的人,真的能创造新的标志吗?

总的来说,我能够从事自己真正热爱的事情多年,并且它给我带来了朋友、认可和金钱,所以这算不上是糟糕的交易。

然而,我完全理解,一旦项目开始流行,人们就会为了维持生计而挣扎。这篇文章专门写给你们。

(文/开源中国)    

More concerning, I no longer wish to support reddit as a platform.
Widespread astroturfing, manufactured controversy, politics, bullying,
incessant nitpicking and arguing. I don’t like how people treat each
other on the platform, and I don’t like how it makes me feel when I
use it.

  • 将 master-slave 架构的描述改为 master-replica

  • 为 SLAVEOF 提供别名
    REPLICAOF,所以仍然可以使用 SLAVEOF,但多了一个选项

  • 保持继续使用 slave 来对 INFO 和 ROLE
    进行回应,现在目前看来,这仍然是一个重大的破坏性变更

心累,所以他决定不再维护 RTV,不再支持 Reddit 平台。至于 RTV
后续会怎么样,michael-lazar
表示不会发生什么,只是他不会再提供任何未来的安全补丁或 bug 修复。GitHub
repo 还会继续存在,他只是停止处理 issues 和 pull
requests,可能会在将来的某个时间将其归档。

长期变化

同时,因为 RTV 还托管在 PyPI 上,michael-lazar 表示他还将保留对 PyPI
repo
的访问权限,但是不会发布任何新版本。

  • 编写一个 INFO 的替代品

  • 在内部替换很多东西,因为技术原因,如果作了改动,许多 PR
    也会无法应用,所以必须在某些地方进行大变动

  • ……

(文/开源中国)    

antirez
认为,这些所谓的“政治正确”并没有什么意义,他也在博客中表达了自己的政治倾向,他每天都会在社交网络积极谈论政治,以推动社会的平等。他希望拥有一个公平、机会财富再分配和开放的世界。但他认为获得这个世界的方式不是禁止言论,也不是通过在
Twitter 上讨伐别人 —— 只是为了让他人遵守你的意识形态。antirez
表示他将会继续自己的政治活动,也会继续编写开源软件。

参考链接

http://antirez.com/news/122 https://github.com/antirez/redis/issues/5335

(文/开源中国)    

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图