快速软件,最佳软件

Hacker News Top 新闻

摘要

一篇论述快速软件对用户信任与满意度至关重要的文章,通过nvALT和Ulysses等示例,阐明了速度的优势以及缓慢的弊端。

暂无内容
查看原文
查看缓存全文

缓存时间: 2026/07/05 10:31

# 快速软件,最佳软件 我热爱*快速*软件。即,在功能和界面两方面都迅捷的软件。从产生某种操作或交互的意愿,到这件事真正发生,其间延迟极小甚至为零。轻盈。 快速的软件通常意味着它很专注。像一件好工具一样,这往往意味着它很简单,但也不一定。速度很可能是软件最有价值、却又最不被珍惜的资产。对我而言,快速软件的区别在于:一个是能无缝融入你生活的应用程序,另一个是你满心不情愿才去调用它。软件的快,就像书页的宽边距——让你会心一笑,却未必知道为何而乐。 --- 我最常用、也最快速的一款软件是 nvALT([https://brettterpstra.com/projects/nvalt/]())[¹](https://craigmod.com/essays/fast_software/#fn:1)。它名字古怪,界面极其平淡。就是一个纯文本文件数据库,外加一个纯文本编辑器。但它快。是我用过的最快的文本编目软件。它瞬间打开,瞬间给出结果。我的 nvALT 数据库里存着十年的笔记。打开它,光标就已经在搜索栏里了。这是一款键盘友好的软件:如果你不在搜索栏,只需按 `ESC`,就能跳回去。输入几个字母,所有包含这些字母的笔记就会立刻出现。它是我拥有的最佳“外置大脑”。任何我生活中有点价值的文本,都会丢进 nvALT。 nvALT 与 Simplenote([https://simplenote.com/]())同步。这很实用,因为 nvALT 只有 macOS 版。于是你可以用 Simplenote 的 iOS 应用,在移动时随身携带这个额外的大脑。Simplenote 也有 macOS 应用。你可能会想:为什么不用 Simplenote 桌面版?因为它——不那么快。虽然差值只有毫秒级,但足以让你*感受*到差异。就像 1000 美元的日本园剪([https://www.youtube.com/watch?v=TD2XGwmRJi8]())和 150 美元园剪的差别。两者剪起来都不错,但如果你在花园里干一整天活,(大概?)能感觉到区别。 --- 我主要用 Ulysses([https://ulysses.app/]())写作。就连这篇文字,也是在 Ulysses 里写的。Ulysses 在组织较大篇幅的写作时表现不错。我用它的主要原因正是其组织功能 [²](https://craigmod.com/essays/fast_software/#fn:2)。但它的确会变慢。Ulysses 有过好几次变慢的情况。如果我有一个 5000 词的文章,并在靠近顶部的位置打字,它有时会跟不上我的输入速度。每次按键都会重绘整个文档。这让我抓狂。但这款应用的组织便利性和简洁性,有时能盖过这种偶尔的迟缓。然而,这种迟缓就像机器内部看不见的腐朽气味。我对这款应用的信任,不如它在一个如此小的文本文件上都不卡顿那样高。5000 词根本不算什么。信心被考验:我会怀疑它的同步能力有多好。我会怀疑它会不会丢数据 [³](https://craigmod.com/essays/fast_software/#fn:3)。 速度和可靠性常常被直觉地联系在一起。速度可以是衡量整体工程质量的良好指标。如果一个应用在简单任务上都变慢,那可能说明工程师们不是追求细节的偏执狂。并非总是如此,但可能意味着暗藏着其他灾难性问题。我希望我所有的工匠都偏执。我并不认为 Ulysses 做得很差,但如果它在输入和界面速度上处理得更加优雅,我会对它更有信心。速度会让我*更加*信任它。 作为反例,Sublime Text([https://www.sublimetext.com/]())在我这里从未变慢过。我可以丢给它一个 50000*行*的文件,它依然飞驰如初。你可能会想我为什么不用 Sublime Text 写作(我自己有时也想这个问题)。答案是:它不够“好”到能用来进行完整创作。Sublime 的排版、拼写检查、文件组织(没有关键词,无法随意调整顺序,等等)——就是没那么精致。Sublime Text 为代码优化,而非文字。而 Ulysses 专注于文字。差别微妙但意义重大。尽管如此,Sublime Text 在我的体验中——只变得更快。我热爱这样做的软件:随时间推移而“去臃肿”的软件。这应该是所有软件的目标。它存在得越久,就应该越优雅。像河卵石一样被磨光滑。我对 Sublime Text 的工程充满信任,因为我用了它十多年,还因为它始终感觉像一把快速、专注的工具(尽管它实际上非常复杂),并且随着我的使用,它只有更快。 --- Adobe Lightroom 感觉不像一把快速、专注的工具。Photoshop 也是。它们曾经是。那正是我选择它们的原因。90 年代的 Photoshop 非常快。我不认为我是在怀念某种虚幻的黄金年代。它当时确实是一段闪闪发光的代码。类似地,我在 2007 年左右开始用 Lightroom,因为它比 Apple 的 Aperture 快得多。但 Aperture 已经消失,Lightroom 却从未随时间变得平滑。Lightroom 是一个臃肿的怪物,到处是迟钝缓慢的边缘。为什么它不能变快?这古老之谜,我猜原因在于:a) 功能臃肿,b) 核心工程因庞大功能臃肿而欠优化。这是 Adobe 推出 Lightroom CC 的原因吗?很可能。有时写一个新程序比修补旧程序容易。 Photoshop 如今是只火鸡。光是打开新建文件对话框就要花好几秒。在 2019 年,新建一个空白文件要花好几秒。如果你按 `Cmd-Opt-Shift-W` 导出图片,要等 3-5 秒才能加载导出画面。(如果你不小心按了 `Cmd-Opt-w`,它会关闭你所有窗口。)每个版本都越来越慢。这就是我花钱买 Affinity Photo([https://affinity.serif.com/en-gb/photo/]())的原因。仅仅是为了速度。仅此而已。我仍然付费使用 Creative Cloud 订阅(主要是 Lightroom Classic 和 InDesign),但我*乐于*花钱买 Affinity——用钞票投票——因为它非常快,尤其是在导出用于网页的图片时。每当我不得不打开 Photoshop 时,我都会叹气——真的叹气。 --- 有人可能会说,像 Sketch([https://www.sketch.com/]())这样的设计应用之所以流行,就是因为速度。Sketch 刚发布时,比 Adobe 提供的大多数产品都快得多、简单得多、更专注于 UX 设计。它有过可靠性问题,但我们愿意忽略,因为它——再次强调——用起来就是*有趣*。从这个意义上说,速度可以是一种巨大的商业资产。对于人们终日使用的软件,3% 的趣味提升不应被忽视。 Figma([https://www.figma.com/]())是另一款类似 Sketch 或 Illustrator 的设计工具。尽管它基于浏览器,但 Figma 快到我每次用都会高兴地笑出来。它的速度感觉恰如当代计算机应有的表现——也就是极其快速。它感觉被人用心爱护。我知道它背后的工程和设计团队,我知道它*确实*被爱护。它是从工艺的立场构建的——贴近底层的工艺。你能感受到它。不仅仅是作为速度的速度,更是作为直觉性的速度。也就是说:它的工具比,比如说,Illustrator 中的同类工具工作得更合理。例如钢笔工具([https://medium.com/@rajipurcell/figma-a-solid-ui-design-app-thats-finally-improved-the-pen-tool-6103fa7a64b3]())。在 Figma 里,钢笔工具从理性出发运作。在这个意义上,“速度”不仅体现在每个计算机周期完成的工作上,也体现在每个用户周期完成的工作上。 --- Google Maps 正以一种悲剧性的、公开的方式,死于“缓慢的千刀万剐”。Google 在 Google Maps 里到处加动画。单个看都挺好看,但累积起来就非常慢。Google Maps 曾经是一个快速、专注的工具。如今它相当迟钝。如果你按错按钮,它会“哞”叫。你可以说它笨重,过于复杂,层次冗余。也许它想做太多事了?要退出某些模式——例如导航——用户可能要点四五个不同的区域,并忍受同样多的缓慢动画。 我们忍受,因为 Google Maps 在其他方面是一座关于我们周围世界的宝库。它在信息上是绝对的奇迹,在应用上也是奇迹。不过,越来越多的信息被隐藏在多种 UI 变体 [⁴](https://craigmod.com/essays/fast_software/#fn:4) 和每周变化的 UI 背后。我的外部直觉是,这或许是一个管理问题,可能根植于 Google 自身,而不是工程问题。 Google Maps 变得如此之慢,以至于我做了不可思议的事:我在 iPhone 上重新安装了 Apple Maps。相比之下,今天的 Apple Maps 简直轻快又响应迅速。数据仍然不如 Google Maps 好,但这是一个很好的例子,说明缓慢如何推动我重新安装了一个我本已放弃的应用。今后我会给 Apple Maps 更多机会。 --- 说到软件迟钝的极致,请看例证 a) iTunes。它如此缓慢,如此臃肿,如此不堪其重,以至于 Apple 决定直接把它扔进马桶,把它重新组合成一系列独立应用([https://www.macrumors.com/2019/05/31/goodbye-itunes/]())。这无疑是最佳选择。 不过应该说,Apple 也做很多不错的软件。Keynote 或许是 macOS 上最优秀的软件之一。它是将强大功能包裹在简洁界面中的典范。你可能会说它在更早的版本中更简单,但当前版本在模式、功能和一般简洁性之间找到了一个不错的平衡。它快速且直观。我最喜欢的小工具之一?即时 Alpha 工具。纯粹的快乐。在 90% 的预期用例中表现良好,而且正是那种你不知道自己需要、不期望它存在、却在需要时恰好出现的工具。总的来说,Keynote 很快,感觉制作精良。 --- 但为什么慢就是不好?快速软件不一定是好软件,但慢软件很少能成就伟大。快速软件给用户提供了与工具集“融合”的机会。也就是说,不打断心流。当 Nerd Hill上的书呆子们为 Vi 和 Emacs 争得你死我活时,部分原因就是他们对应用程序的流动和融合感有着强烈的认同。他们已经投入了。他们觉得“这工具是好工具”。不打断心流,是伟大工具的公理。 打字机是一种出色的工具,因为即使它在相对意义上很慢,机器的每一个方面都以用户能操作的最快速度运行。它很专注。换行或把键敲到纸上都没有延迟。是的,一页结束时你必须放一张新纸进去,但那个动作变成了使用机器流程的一部分,而积累的纸张则是已完成工作的视觉指示。这不是浪费工作。使用机器没有根本性的机械延迟。最好的软件越来越接近像打字机那样的物理直接性。(当然,机器可能会坏,色带需要更换——但这属于维护,与工具的使用分开。如果能让 Photoshop 变轻,我*非常乐意*去“维护”它。) --- 速度也体现在软件的语言——字面意义的词语——中。最近几年,macOS 关闭未保存文件的对话框从“不存储,取消,存储”变成了“删除,取消,存储”。这仅是我的看法,但“删除,取消,存储”不如“不存储,取消,存储”合理。选择“删除”暗示了文件曾经被保存过。我曾经保存过但忘了?还是它自动保存了?我不知道。无论你怎么摇它,当我关闭未保存的文件看到这个对话框时,我仍然会卡住。它拖慢了我。按“删除”感觉暴力。*删除*。如此终结。我会犹豫——也许我不想删除?也许我*想*保存。但实际上,我只是想“不存储”。 --- 我在 iPad 上使用 iPadOS 13 测试版。其中有一个新的界面组件特别快速且令人愉悦:所谓的“侧拉”。只需从右侧滑动——*嗖*——一个浮动应用就会出现。这个浮动应用是大应用的小型化版本,出现得跟滑动一样快。感觉满足。你移动手指——瞬间——小应用就在你手指下。往回一滑,它消失了。没有屏幕的“重绘”。在小应用的底部有一个小横条。滑动横条,小应用就会轮换。轮换动画快速而优美,表明你从哪里来、往哪里去。这是一个有目的的动画,目的是上下文迭代。它有触感。优秀的触摸界面会有触感。我认为最好的“触摸界面”是真正的按钮,有物理感和触觉反馈的东西。但在屏幕上,要感觉有触感,就需要没有延迟。 从速度和用户体验的角度来看,我相信这个“侧拉”大大优于 iPad 上的分屏。分屏很慢。你需要点按、长按、拖动,等待屏幕“重绘”自身,等待应用闪烁式地调整到新尺寸。分屏感觉像是与底层代码作对。对比之下,侧拉感觉是 iPad 环境的自然延伸。它可以快速可靠地调用。它是可预测的。它感觉自己的代码与设备的特性自然同步。*并且*速度与玻璃之下潜藏的性能相称。分屏也可以工作,但底层代码可能需要重写。理想情况下,它应该像侧拉一样流畅快速。这就好比用 1000 美元的园剪修剪李树上一根走岔的枝条。 --- 我可以一直说下去。但让我们用一个纯粹工艺品的 iOS 软件例子来结束:Things([https://apps.apple.com/us/app/things-3-for-ipad/id904244226]())。iPad 和 iPhone 上的 Things 是市面上最具触感、最随心所欲的应用程序之一。每个动画都有目的。主要是,它很*有趣*。它是一个让你乐意待在里面、往里放东西、重新整理的 app。它很老了。Things 已经存在十多年了。十年前我乐意打开它,今天我也乐意打开它 [⁵](https://craigmod.com/essays/fast_software/#fn:5)。 --- 直觉上,软件(在基本功能之外)应该以速度为目标。速度作为效率的替代指标。如果一个软件变得跟公牛一样笨重难操纵,那么也许它不应该是一个*单一*软件。归根结底,快速意味着轻盈。而轻盈意味着减轻某个人或某个任务的负担。这是终极目标:让我们口袋里的超级计算机减轻负担,而非增加负担。让我们的大功率笔记本电脑实现一种创作的流利感——而非挣扎或战斗。 话虽如此:写一篇关于快速软件的文章很容易。做出快速软件却很难。但当它被做出来时,我们所有人都心怀感激。 --- #### # [](https://craigmod.com/essays/fast_software/#noted)备注:

相似文章

快优于慢

Lobsters Hottest

一篇博客文章,主张软件开发中的速度能带来更好的学习和决策,并提供实用建议,如避免拖延和尽早分享工作。

有些事情急不得

Armin Ronacher

一篇反思性文章,论证在软件和商业领域,真正的成功需要的不仅仅是速度,更是韧性和耐心,并警告说,对即时满足的痴迷会破坏信任和长期价值。

我的软件北极星

Lobsters Hottest

作者提出了一套软件开发的优先级列表:对最终用户的有用性、正确性、可维护性和效率,认为所有工作都应致力于最大化用户效用。

我对快速终端的误解

Lobsters Hottest

作者纠正了之前关于快速终端的说法,指出基准测试方法有缺陷,像 antidote 这样的现代插件管理器不会增加开销,并推荐了更快的语法高亮器。真正的偏好是简洁,而不仅仅是速度。

为变更优化,而非应用性能

Hacker News Top

本文指出,软件团队常常过度优化微性能基准测试,却牺牲了开发者体验和工程吞吐量,而这两者才是长期交付速度与可维护性的真正瓶颈。