Link: Good Tools Are Invisible
Personal Opinion
Ultimately, what makes a good tool is relative to the user. Some users want pure productivity, in which case an invisible tool is ideal. Others enjoy seeing how far they can take their tools, in which case a tool that is “fun” and has “puzzles” would be better. It all depends on the user’s purpose in using the tool.
What makes a tool invisible?
TODO
- muscle memory
- you don’t have to think about it anymore
Tools aren’t inherently invisible
Many tools aren’t inherently invisible. A tool becomes invisible when you don’t have to think about it anymore. That usually requires learning how a tool works, so a tool won’t be invisible when you first start using it.
If I were to use Sublime or Emacs right now, neither of them would be invisible tools for me. But for someone that has been using them for years, they would be completely invisible, since all of the keybindings, menus, and other features are muscle memory.
Consistent behavior helps invisibility
When a tool behaves in a way that is consistent with the user’s expectations, the user gains an intuition about how the tool should behave, and they stop needing to reason about it.
There are two kinds of consistency: consistency with self and consistency with the world.
Self-consistency means that a tool behaves the same in different situations. When I am using Jujutsu, for example, it doesn’t matter whether I’m running jj rebase, jj describe, or jj config when I use the -R
World-consistency - Ctrl-C means “copy” in most tools, it should probably mean “copy” in your tool, too
Bugs hurt invisibility
Maybe just mention under “consistent behavior”?
Bugs create inconsistent or broken behavior.
Decreasing learning surface helps invisibility
Larger learning surface means more thinking+time required to learn.
Gauging cost
For people who value keyboard-based workflows, vim or emacs might be perfect. For those that prefer visual GUIs, zed, vscode, sublime, etc. might work better. It’s important to figure out how much benefit you’ll get for the cost that you pay.
You don’t have to pay the full cost of a tool. I haven’t really learned vim macros, but I enjoy using vim keybindings anyway.
Cost is different based on the person. Someone who already uses their keyboard for everything will have an easier time learning vim than someone who only uses the keyboard for typing text.
Different people need different tools for different reasons
maybe merges with the previous section?
Different people have different needs. Some people don’t use the text editor often, so they just need Notepad.