Tooling Considered Harmful
March 06, 2019
We are a big fan of tools. We use them daily in almost everything, but at one point in time, they pollute our mental space so much that we just forget to think and do as the tools dictate. A common example could be smart-phone. It was meant to keep us mobile and connected but now, it has become so dominant and addictive that it is more of a bane than boon.
Similarly, in programming, we use so many tools and IDEs, but we rarely master a subset of these. It is a sad situation in my opinion. I was one of those guys who will try every tool or software that comes out. But now, my thinking has totally changed. Right now, only three things matter to me while selecting a tool:
- Stability: is the tool stable enough and has a good stable ecosystem?
- Performance: is the tool performant enough, or is it going to eat away my RAM and CPU cycles?
- Speed: is fast enough so as to match my thoughts and do not block me while I am working?
Keeping these in mind, only one tool that I use passes all these tests and that is Vim
My vim is configured to be fast, functional and as a mere extension to my thoughts. My muscle memory in vim is strong enough now so that I do not have to remember keybindings to edit text, replace or write good code. The core of the plugins I use is
Also, I have gone cold turkey with Vim so there is no fallback editor in case I struggle to do something in Vim. It has helped me learn a lot of good shortcuts and tricks for editing code in Vim. Also, watching the live stream of experience vim veterans like Armin and Gary has helped a lot. This post is not about IDE bashing or anything like that. It is mostly about what works for me and why? If you use an IDE, spend some time mastering it and learning as much as you can about it. In my opinion, the goal should be to get better at the tool you use and get very good at that. So good that the tool becomes an extension of your mind and you do not have to have an overhead while using that tool.
Life and time are both limited commodities, and we should optimize our tooling to make sure we enjoy them to the fullest and without wasting time on bloated tools.