Good Tools Are Delightful
TL;DR: Good tools are designed by people who thought of things you didn't think of. Over time, as you master the tool, you are delighted by how the tool builders were wise and clever.
A (friendly) response to Good Tools Are Invisible. You should probably read that first.
Extremely busy people, like myself, often favor tools that “get out of the way” as soon as they can after using them. I agree that this makes for a good tool, but not a great tool.
Tools that delight
I’ll use Neovim as the example here. In the process of using Neovim, I’ve been delighted in many ways. This delight has been as a practitioner, not as a tinkerer (see more on productivity theater below). It comes from encounters with my tools that have led me to be better and more productive.
I’ll provide one example:
I use a plugin called Neogit. It is amazing. Years ago I was stepping through staging files in a git commit. I was reviewing changes in a screen like this. Typically I would press s while my cursor was on the file I wanted to stage. Like so:
I was reviewing some of the code I wanted to change, and I found myself in visual mode, and I was kind of “stuck” at the time, being new to neovim and neogit. I was worried I was going to break something. Why was I even allowed to be in visual mode here?
I had a thought that technically I only really wanted part of this code. Surely pressing s with some text selected wouldn’t “just work”? Except it does. If my tool had just “gotten out of the way”, I’d never have learned how to gradually build up changes. This revolutionized (for me) how I commit my work and create pull requests 😎
This kind of thing happens all the time with Neovim. The tool doesn’t “hide” or get “forgotten about”. It constantly offers opportunities for me to improve. It teases me towards efficiency. It delights me by making me better at my craft in ways I never expected.
Text Editor Wars
I don’t know if I’ve actually ever heard someone praise vim as “fun” in the way that Bill suggests in his article. I don’t meant o imply that he hasn’t had exactly the experience that he described, just that our experience has not overlapped in that regard. Most often I’ve heard people refer to vim as “powerful”, and “cool”.
According to Bill, proficiency with his text editor has made it “disappear into the background”, i.e become “invisible”. I believe it is correct that proficiency has that effect, but it is also only really looking at the first order cause/effect. The implication IMHO, is that he is no longer learning new things about his text editor. He has reached the edges of what return continued investment in his text editor would yield.
One major thing that Bill and I clearly agree on centers around productivity theater. People often have trouble distinguishing between that and true productivity. Tooling is generally one of the single best ways to find yourself performing on that theater. I spent multiple years using Zed on essentially the default settings to curb my own tendency towards this effect.
A few years ago, however, I realized that there is a middle way (something I’ve found to be true almost always). I don’t have to live on one end of an extreme. I use and greatly enjoy Neovim. It could become a major time sink due to its extensibility, but I have self control. I will occasionally determine that some aspect of my editor experience is not serving me well, and will make controlled attempts at seeing what can be done to improve it. I subscribe to various neovim forums etc. and occasionally bookmark some interesting plugins or updates for the next time I sit down to iterate on my setup.
A note on how LLMs change the game here
Neovim and TUIs are uniquely suited for the LLM age. I don’t need to do any fiddling to do anything at all anyway. If I want it to work differently, I just run claude in my configuration folder and tell it what to change. Not only can it change everything it wants about my setup, but it can also run the editor, pipe in commands, stream text in/out etc. It is extremely powerful.
A note on aesthetics
Bill mentions people with a near-religious devotion to a tool due to them getting a “hacker vibe”. I used to look down a lot on this kind of thing, but over time I’ve learned to appreciate the value of how my tools and setting makes me feel. It comes back to psychological effects like enclothed cognition and one should consider learning how to leverage their own psychology as opposed to discount it.
Terminal UIs vs GUIs
I often prefer TUIs and I don’t think that Bill really addressed the topic fully. “good keyboard shortcuts” is just one aspect of this preference. Ultimately, there are constraints on TUIs that typically drive certain behaviors.
Keyboard navigation - TUIs are often not in control of to what degree a mouse can or will interact, or what keys they can capture. So they have to lean on the keyboard
Composability - they can often be composed in interesting and useful ways, for scriptability. i.e they can be piped into/out of, they support flags for controlling how they are invoked
Text Config - Pretty much all TUIs that I’ve ever used use conventional configuration files. I symlink all of those into one folder that I can run claude in. In this way, Claude can help me work on pretty much my entire development setup.
Bill says “And this is the common mistake: people look at the current state of a category of tools and assume its current limitations are inherent/essential, when really no one has put in the work to make those tools better.”
He is 100% correct that this is a common fallacy. But at the same time, GUIs have been around for a uh…long time now? And there is no rule that anyone should pay usability taxes today just because GUIs might get better in the future.
Linux’s (Lack) of Popularity as a Desktop
Ultimately I think this really comes down to two things that don’t really admonish extensibility/configurability, in the same vein of the argument about keyboard navigating not scuttling the concept of a GUI. Specifically, you can build for maximal configurability without requiring that any given user must maximally configure a thing. It’s called “progressive disclosure”. As Bill alludes to, good defaults are a toolmaker’s responsibility. Plenty of tools, including Neovim, offer an increasingly good out of the box experience, progressively disclosing increased options and flexibility to users.
Conclusion
Ultimately Bill states that he is arguing against a “way of thinking”. To use whatever disappears into the background and lets you get on with the work. That the clearest sign a tool is serving you is that you stop noticing it. This may be true often, but it is not what I think we should strive for.
I believe that good tools disappear. But I believe the best tools are tools that make us better. Tools that delight us.



