“They had no concept of a duty of care to their users.”

Marcin Wichary

他们根本没有对用户负责的概念

原文由 Marcin Wichary 发布,订阅该博客

计算机科学家 David Chisnall 在 Mastodon 上的一篇帖子有着非常符合 Unsung 风格的开头:

我从 2000 年左右就开始用 vim。我用它写了五本书、一篇博士论文、几十篇论文和 150 多篇文章。到现在这个阶段,使用那些常用的 vim 命令时,我的高级脑功能根本不需要参与,它们自然而然就完成了。用别的编辑器写东西时,文档中间总会莫名其妙地冒出几个 :w。

接下来,Chisnall 谈到了 vim 的一个具体功能:

持久化撤销(persistent undo)是我最喜欢的 vim 功能之一。[…]

我并不常需要用到持久化撤销。但在少数几次真正需要它的时候,它都堪称无价:哎呀,我好像把这个文件里的什么东西删掉了,也许是上周删的,中间还重启过一次,那到底是什么?一路撤销直到找到它,复制下来,再粘贴回当前版本。或者,更常见的情况是:刚才还好好的,我整理了一下准备提交,结果就跑不通了,我到底改了什么?

在大约 20 年的时间里,历经多次大版本升级,vim 始终让这个功能保持可用。我甚至都不会去想它,它就像是 Raskin 第一定律的一部分:程序不得损害用户的数据,也不得因不作为而让用户的数据受到损害。如果 vim 或电脑崩溃了,或者我关掉一个文件半年后再打开,撤销历史依然还在。

NeoVim 是 vim 的一个分支(因为其他原因上了新闻):

所以我在 NeoVim 还很新的时候就试了一下。就是你熟悉的 vim,但更好?太好了!

我在 NeoVim 里注意到的第一件事就是撤销用不了。我试着用 vim 打开那个文件,结果发现那里的撤销失效了。

Neovim 改了撤销文件的格式。它没有去升级旧文件,也没有给自己的撤销文件另起一个名字。它只是发现存在一个 vim 的撤销文件,就把它删掉了(丢掉了里面的所有数据),然后换成了一个 vim 无法读取的文件。

我为此提了一个 issue,得到的回复是,持久化撤销的格式是不稳定的,用户不应该指望在一个明明叫作持久化撤销的功能里,数据会被保留下来。格式已经变过一次,以后可能还会再变。

我的 NeoVim 体验也就此结束了。作者们立刻就表明,他们完全不值得我托付任何数据。把持久化撤销弄坏了,如果只是个 bug 我还可以原谅,但那种“即便文件系统上那个持久化文件里可能存着你需要的数据,也不妨碍他们的程序把它删掉”的态度,说明他们根本没有对用户负责的概念。

我喜欢这篇帖子(我几乎全文引用了),因为它提到了几件重要的事:

  • 我以前从没听说过这样的持久化撤销,听起来真的很神奇。
  • 当软件弄丢了他们的心血或是不尊重他们时,人们是会记得的。
  • 我能理解,“已经变过一次,以后可能还会再变”这种话会带来多么强烈的感受。

我喜欢它的另一个原因是它提到了 Raskin 第一定律。以 Macintosh 和 Canon Cat 闻名的 Jef Raskin,在他 2000 年出版的《人本界面》一书中提出了三定律,内容如下:

  • 计算机不得损害你的工作成果,也不得因不作为而让你的工作成果受到损害。
  • 计算机不得浪费你的时间,也不得要求你做超出严格必要之外的工作。
  • 如果一个界面能够回应人的需求、体谅人的弱点,那它就是人本的。

在我年轻时做设计师的阶段,遇到这本书对我来说非常重要、影响深远。我完全不知道,为什么这些定律直到今天才出现在 Unsung 上。

本文章由 muse-spark-1.2-contributor 进行翻译

评论