Everything started with the video above from ThePrimeTime (which you should follow if you are interested in programming and IT tech), based on this article. From people working in StackOverflow. There are probably a lot of arguments for one side or another, defending that it is stupid to use Vim or Emacs when new IDEs are amazing. But it starts badly…
This is the second sentence in the article: “Like a dog refusing to walk on wet grass, there always seemed to be a bit of resistance to changing up a routine.” The second sentence!
Are developers really resistance to changing routines or tools? It seems like these people never met a frontend developer. Or the flow of new “amazing tools, language, approach” that appears every year, the amount of changes it imposes in ongoing projects (plus the havoc those fashion technologies create in a lot of those projects in the short term); or maybe they never felt the impact of a tech guru being hired by their company to “improve things and make us more strategic and agile”.
Software development today is probably some of the jobs that experience more changes over short periods of time. Just changing jobs or even positions imply so many changes in technology, tools and workflows that the sentence at the beginning makes no sense.
In any case, the article is a bit old by now, from Nov 2020. And you can tell from the fact that they use Atom as an example of an IDE that will be better than Vim and “the good ol’ days”. But Atom is almost forgotten today - 1 point for the good ol’ days’ team!
In general the article is full of comments and impressions saying that those who still use Vim or Emacs are people anchored in the past, unable to update to the new times, like this one: “This has led users to literally turn Atom into Vim, unable to let go of the past, unwilling to fully embrace the future of code editing.” It is funny, as Atom is almost dead, if not completely, and it happened in a matter of 3 years since its peak.
The worst part is that they picture those editors as antiquated in comparison to modern IDEs, commenting how IDEs are evolving all the time, updating and improving. As if that didn’t happen in Vim or Emacs!
In any case, let’s talk about the main point: IDEs vs Vim (as I am not familiar with Emacs).
They are tools
That’s it. Tools should not matter much as long as they provide you the functionality that you require. In this case, writing code in an efficient way, reducing friction when working so you don’t need to struggle against your editor to do what you want to do.
And for that, either you choose VSCode, Vim, IntelliJ… it doesn’t matter. The important thing is that you master it. It may be times in which you need to use some particular editor or IDE in a job, because “standards” or licensing that the company imposes. In that case, you should start by learning the basic concepts of that editor and become better, because that is what really matters.
So, why is it bad for a developer to use Vim, if it is configured with plugins and functionalities that makes it equally powerful as VSCode? As long as you know how to use it fluently, there is no difference. Actually the reality is that changing IDE or editor takes effort and time that, in some situations, you can not afford to pay. And that is the reason there are packages for several IDEs that emulate the Vim workflow and commands. Why is that? For the reason stated above: you must master your tools, and once you mastered one, you want to use them.
There is no need for the passive-aggressive sentences in the article, comparing you to a child that doesn’t want to try a new food. Because at the end of the day, we need to produce code and to solve problems. For that, we should try to be efficient. And if you also enjoy working with some particular editor, even better. That is the reason Eclipse is still alive and well, because there are tons of developers who used it for years, a lot of specific plugins and tools for embedded development integrated in it, that thinking about moving to VSCode or anything else looks like a bad idea. And it probably is!
Me and Vim
I didn’t quit Vim, by the way. At least, not because I realized how old and ugly is compared to other IDEs. I stopped working with Vim because I didn’t work in the same company and I had some time off (damn burnt-out, it is real and painful!), and in the new company they use Eclipse, which I hate due to frustrating past experiences. But I am back using NeoVim for my personal projects. although it is taking time to configure, find the right plugins, learn how to use them properly and doing remaps of commands to have what I had.
Not because I miss the good ol’ days, but because I still remember those keystrokes, the muscle memory is still there, it just need some training to get back to speed. So it makes a lot of sense to spend time configuring Vim, as I would have to do it anyway with any other IDE if I want to be as efficient as I was when I used Vim every day.
And to be honest, because I fucking love Vim.