Incidentally, I stumbled upon this post a few months ago and was deeply frustrated by it. The depiction of anyone who doesn't use this author's preferred tool for text editing as stubborn backwards idiots too set in their ways to change, who simply don't know what this author's favorite tools could offer, reeks of condescension and hubris. It also ignores that many people switch from IDEs to things like NeoVim and Emacs, so it can't just be people who've been using those editors for years and are too set in their ways to change — although I'm sure this author would have a snide dismissal for those people too, like accusing them of being hipsters that "just want to seem cool and hacker-like."

Meanwhile, the reality is that many of us who use these text editors are fully aware of the power that IDEs can provide. For example, I regularly use Android Studio for Android app development precisely because, for that kind of extremely complex build system and heavyweight language and framework, with that much boilerplate and that many forms to fill out, IDEs are hard to beat.

But, and this is what this person ignores, IDE do come with trade-offs: greater complexity, resource usage, higher lag and startup times, and inferior pure text editing tools (and no, a vim plugin won't help). Most importantly, with a full-on IDE, you typically lose a whole lot of flexibility — IDEs typically are much less configurable and adaptable to different workflows and new features, or even just various customizations that a user used to a regular text editor might want to make. IDEs are also typically highly coupled with the language and the build system they are designed for, such that they typically only work for a specific language or two. If you regularly use multiple languages for your job or hobby projects, then if you wanted to use a full-fat IDE, you'd have to install multiple versions, or somehow wrangle the IDE into supporting all of those languages simultaneously, which is a difficult prospect. Not to mention that it would be awkward and burdensome to attempt to use a full-fat IDE for something like word processing or note-taking because of how targeted they are at a specific language and its build environment, whereas a classical text editor is great at those things, because that is part of what they were designed to do before WYSIWYG word processors came along.

Meanwhile, in comparison, a text editor like NeoVim or Emacs can be equipped with 70% of a full IDEs capabilities through things like (using emacs packages here just because it's what I know) vterm, magit, treesit, lsp-mode, and dap-mode, as well as per-language modes for the build system and such if needed, and in return, even a relatively slow and heavy weight text editor like Emacs will give you less resource usage, better performance, and much greater flexibility, both in customization and in the ways that you can use it. And you can see that this is something that plenty of people actually want, instead of just some stubborn and dyed in the wool people who've been using vim or Emacs since the 70s or hipsters that want to use something old school for cool points, because there are plenty of brand-new IDE-lite text editors, like Visual Studio Code and Zed, that people flock to in huge numbers! I certainly think if anyone uses vim or emacs completely vanilla with no completion and code actions and stuff like that, they may in fact be just a stubborn old timer, but that isn't the majority of people using either of those editors anymore, most use them as an IDE-lite experience just like VSC.

But most importantly, I think what the author of this post is fundamentally missing is that not all languages require a heavyweight IDE: in some languages and build environments you can reach productivity equivalent to an IDE user's just using a standard text editor, if your build environment doesn't require the equivalent of filing and submitting a stack of tax forms to function properly and your language isn't the equivalent of bureaucratic legalese. The full power of IDEs is only really made necessary by a certain type of problem and environment that isn't universal. IDEs are like huge, powerful construction equipment, sometimes you just don't need something like that.