Good Tools Are Invisible
The Philosophy of Invisible Tools
Core Thesis: The hallmark of a superior tool is its invisibility. A toolmaker's ultimate objective should be to create something that vanishes into the background, allowing the user to focus entirely on the task at hand.
One frustrating trend I frequently encounter is the tendency to rebrand a tool's deficiencies as a "puzzle game" that is "fun" to solve.
The Great Text Editor Debates
Take vim as a primary example (though this applies to many editors). I often see users praising it not for its actual utility, but for the "challenge" of overcoming its hurdles.
For instance, some people brag about the "joy" of constructing a complex macro to solve a one-off text refactoring problem. When I analyze the time spent on such tasks, my reaction is usually: I could have finished this in Sublime Text in sixty seconds using multiple cursors, or simply written a brief script.
The "Hacker Vibe" vs. Utility
To be clear, the choice of editor does impact workflow. However, I question the quasi-religious devotion to tools based on a "hacker aesthetic." For many newcomers to emacs or vim, the appeal is more about the vibe than the velocity.
The Lifecycle of Tool Interaction:
- Proficiency: The tool becomes invisible.
- Limitation: The tool fails to handle a task easily.
- Visibility: The tool suddenly becomes the center of attention.
The baffling part is when users treat this friction—the struggle to bypass a tool's limits—as the most rewarding part of the experience, citing it as proof of the tool's greatness.
Why I Prefer Sublime Text
I am well aware of the flaws in Sublime Text. It often lacks specific features I need, forcing me to develop plugins or use external programs for text transformation. Despite this, it remains my choice for several reasons:
| Feature | Benefit |
|---|---|
| OS Integration | Shortcuts are a superset of the graphical OS, reducing mental context-switching. |
| Multiple Cursors | Provides immediate visual feedback; superior to macros of the time. |
| Low Friction | Minimizes the number of "puzzles" I have to solve during my workday. |
In my experience, vim is excellent for basic editing but struggles with bulk operations. I never found "vim motions" to be significantly more productive than my existing workflow. In fact, I've forgotten most of them because they weren't necessary. Since I rarely code directly in a terminal, a terminal-centric editor offers me no real advantage.
Tools as an Identity
The reason these debates become so heated is that tool selection often becomes a form of tribal signaling. Choosing a specific tool is like planting a flag; it tells the world who you are.
Once your identity is tied to a tool, admitting a flaw feels like a personal failure. Consequently, people don't just tolerate the shortcomings—they flaunt them.
Feeling Productive vs. Being Productive
There is a dangerous gap between the sensation of productivity and actual output. Solving a fiddly, technical problem with a complex tool creates a feeling of cleverness. This "heroic" feeling is often mistaken for power, while the process is actually slow.
The only honest metric for productivity is:
If your goal is truly efficiency, you must question whether you are actually producing more or just enjoying the feeling of being "clever."
Productivity Audit
- Does this tool disappear during my workflow?
- Am I spending more time configuring the tool than using it?
- Is the "challenge" of the tool actually adding value to the end product?
TUI vs. GUI
A similar pattern emerges in the debate over Terminal User Interfaces (TUI) versus Graphical User Interfaces (GUI). While TUIs are obviously advantageous if you spend your entire day in a terminal, most programmers do not.
The common critique of GUIs is: "I can't navigate them using only the keyboard."
This isn't a failure of the GUI concept; it's a failure of the toolmakers. Keyboard navigation is vastly more productive than mouse usage, but many developers simply don't bother to implement it.
# Example of the mindset:
# Wrong: "TUIs are inherently superior to GUIs."
# Right: "This specific TUI app is better than the available GUI alternatives."
People often mistake the current state of a tool category for its inherent limitations.
The Linux Desktop and Pedantry
Regarding the "Year of the Linux Desktop," I anticipate the usual corrections: "Linux is just the kernel; the OS is actually [Distro Name]."
I don't care for this distinction because it doesn't aid the conversation. If you understood the critique well enough to want to correct the terminology, then the point has already been communicated.