文章摘要
好的工具应当隐形,工具制造者的目标就是创造这样的工具。不应将工具的缺陷包装成“有趣的谜题”。以Vim为例,有人赞美它并非因其真正优点,而是把缺点变成“黑客体验”来吸引新手。真正熟练使用工具时,工具本身应消失,让你专注于工作本身。
文章总结
好的,这是根据您的要求,对原文进行的中文重述,保留了核心细节,并删减了与主题无关的冗余内容。
好工具是隐形的
核心观点: 好的工具应该是隐形的。工具制造者的目标,就是打造这样的工具。
我经常看到并需要纠正的一种习惯是:把工具的缺点包装成“有趣的解谜游戏”。我不希望我的工具“有趣”,我希望它们“隐形”。
以文本编辑器为例:
很多人称赞 Vim,并非因为它真正优秀的地方,而是把它不擅长的部分变成了需要“有趣”解决的谜题。有人会炫耀自己花时间构建宏来解决一次性文本重构问题,觉得这很有趣。但在我看来,用 Sublime 的多光标功能或写个简单脚本,一分钟就能搞定。
我并非说编辑器不重要,而是质疑人们那种近乎宗教般的狂热——他们迷恋工具带来的“黑客范儿”,而这恰恰是吸引新手的核心。
所谓“隐形工具”,是指当你熟练使用编辑器后,它就会退居幕后。一旦它无法轻松处理某件事,就不再隐形。让我困惑的是,许多人把这种“摩擦”——即费力绕开工具局限的过程——视为“乐趣”,并以此证明工具很伟大。
我对自己使用的 Sublime 编辑器也有很多不满,但我不会把它的缺陷美化成有趣的谜题。我只是会因它缺少我需要的功能而烦恼,然后去写个插件或换个程序。
我选择 Sublime 15年了,原因包括:它的快捷键是图形界面环境的超集,能减少应用切换时的思维负担;多光标功能在绝大多数情况下比宏更好用(因为有直接视觉反馈);它留给我的“谜题”最少。Vim 在基础编辑上更好,但在批量操作上不如 Sublime,所以我一直用它。我也没觉得 Vim 的快捷键比我的 Sublime 工作流更高效。
如果有人真心觉得 Vim、Emacs 等工具很好用、很高效,我不会批评他们。但问题在于,这种熟悉感让他们对工具的缺陷视而不见,甚至去赞美这些缺陷,把它们当作“游戏”来炫耀。
工具与身份认同:
工具选择变成了一种身份标签,一种“黑客范儿”的部落信号。一旦你的身份与工具绑定,承认它的缺陷就像承认自己的缺陷。于是人们不仅容忍缺陷,还会捍卫甚至炫耀它们。你无法与一个把工具视为自己人格一部分的人进行坦诚的对话。
感觉高效 vs. 真正高效:
解决一个棘手问题会带来“聪明”的感觉,人们容易把这种感觉误认为是实际产出。一个让困难任务显得“英雄主义”的工具,可能实际上很慢。诚实的检验标准不是你的感觉,而是实际花费的时间和犯错的次数。许多被吹捧的工具,在这个测试下会失败。
终端界面 vs. 图形界面:
有人鼓吹终端应用优于图形界面。如果你整天困在终端里,这当然有优势,但大多数程序员并非如此。批评图形界面“无法纯键盘操作”是站不住脚的,这并非图形界面的固有缺陷,只是开发者没有做好键盘导航功能。认为终端界面天生优于图形界面,是一种误解。人们常把工具的当前局限当成其本质,而实际上只是没人花功夫去改进它。
Linux 桌面为何不流行:
Linux 桌面迟迟未能普及,一个根本原因是:许多 Linux 用户喜欢摆弄配置文件来改造系统,把这当成“乐趣”和“解谜游戏”。我也有过这个阶段,但后来我只希望一切能正常工作。好的默认设置是对用户时间的尊重,工具制造者应该提供良好的默认值,同时为少数有特殊需求的人保留“逃生舱口”。把“高度可配置”作为卖点,往往是设计师放弃做决定的借口。
陡峭的学习曲线是“特性”吗?
有人辩护说,学习难度本身就是价值,能筛选出不够投入的人。但学习曲线是成本,不是美德。即使值得付出,回报也必须是真正的生产力,而不是“我付出了努力”的满足感。这不过是沉没成本谬误的变体。
结论:
这不是在反对任何特定工具,而是在反对一种思维方式。用 Vim、Emacs 还是 Sublime 都可以,但要用那个能让你忘记它存在的工具。这才是唯一的检验标准,而且因人而异。我反对的不是选择本身,而是围绕选择产生的叙事:把局限包装成特性,把绕开缺陷的努力说成是奖励,把工具从“你用的东西”悄悄升级为“你的一部分”。
工具为你服务的最明显标志,就是你不再注意到它——它变得隐形。你不会赞美它的缺陷,因为你不是在把它们变成爱好;你只是会有点恼火,然后绕开它们。你不会为它辩护,因为你的身份不依赖于它。你也不会把“聪明”的感觉误认为是“高效”的事实,因为你已经验证过两者的区别。
尽情享受你的工具吧,享受编程本身的乐趣。但要诚实:哪些部分是真正优秀的,哪些是你说服自己去喜欢的。最好的工具不是故事讲得最好的那个,而是你忘记自己在用的那个。
好的工具应该是隐形的——努力打造这样的工具,是工具制造者的目标。
评论总结
根据评论内容,总结如下:
核心观点:工具“隐形性”的争议
观点一:支持“好工具应隐形”
- 工具应减少摩擦,让用户专注于任务而非工具本身(评论21:Good invisibility is like well designed roads... Drivers simply drive)
- 优秀工具通过良好默认设置和“逃生舱”设计,让用户自然进入高效工作流(评论8:I try to design the internal tools in such way as to make the users fall into a pit of success)
观点二:反对“隐形即好工具”
- 所有强大工具都有学习曲线,对新手不隐形,对专家才隐形(评论24:Every powerful tool is bad to the novice and invisible to the expert)
- 工具价值在于扩展能力边界,而非仅处理常规任务(评论24:A tool that makes the impossible merely hard beats a tool that makes the easy invisible)
- 键盘vs鼠标效率之争缺乏实证,测试结果常与用户主观感受相反(评论10:people who say they are more productive have never measured it)
观点三:工具选择与身份认同相关
- 工作流与个人身份紧密相连,TUI/GUI之争取决于用户所属领域(评论7:Workflow is tied to one's identity... TUI vs GUI debate simply depends on the domain you belong to)
- 工具偏好反映个人习惯而非客观优劣,长期使用不同工具后难以断言哪个更好(评论11:Give a developer 10 years each with vim, emacs and Sublime Text, they wouldn't be so sure which is better)
观点四:工具“可见性”的辩证性
- Vim的“可见性”与Sublime的多光标功能本质相同,都是需要学习的技能(评论5:Just because your brain is trained to not think about it anymore doesn't make it any less visible)
- 终端工具虽学习曲线陡峭,但组合能力覆盖无限用例,长期回报高(评论6:the terminal... covers infinitely many use cases, but indeed has a learning curve)
关键分歧: - 支持方认为工具应“消失”在任务中,反对方认为工具价值在于“扩展可能性” - 双方都承认学习曲线存在,但对其是否值得付出存在根本分歧 - 工具评价标准:是看常规任务效率(支持方),还是看能否处理边缘复杂任务(反对方)