It's not until you randomly end up on a system which doesn't have that tool that its usefulness becomes visible; and I mean really visible.
Though I don’t agree with the author. Visibility isn’t what matters, if you get comfortable with a specialized tool like a CAD software, or a game engine studio like Unreal, it’s not invisible at all but your brain will stop focusing on all the noise on your screen and you become pretty focused and productive. I live emacs, but Rider is also a fantastic editor.
Though I would love for things like LLMs to be way more out of your way, more “invisible”, more tool like. I hate the current UX of having to tame a patronizing, annoying fake human just to get things done the way I want them to be done
Restated, the tool understands the process and what a “good” result/outcome looks like. It correctly presumes relevant and important information (especially given the current stage of your full task), and can “fill the gaps” between start and finish.
A good tool can distinguish between what you wanted, what you thought you wanted, and what you “should have” wanted.
A good tool makes it easy to do the “right” thing and hard to do the “wrong” thing.
A good tool doesn’t function to be understood, but to not be misunderstood.
I have spent a lot of time sitting in this question, having spent years creating design and drafting automation tools for architects, designers, and engineers in the building-design industry.
Powerful and specialized: automatic transmission, display/monitors
Simple and limited: syntax highlighting, deterministic autocomplete
The closest ones imo that bridge the gap: ssh, google search