Yann Esposito has an interesting take on choosing tools and the choice between VS Code and Emacs. His post is from a couple of years ago but has aged well. He reminds us of a Microsoft strategy that we all knew about a few years ago but seem to have forgotten: Embrace, Extend, Extinguish. In essence, the strategy was to adopt a popular idea, extend it in a proprietary way, and then use their extended version to shut out their competitors. It’s worked well for them for many years but lately they’ve been presenting a kinder, gentler face.
Esposito is not deceived. He says that in choosing your tools you must always keep this strategy in mind. That brings us to the choice between VS Code and Emacs. Esposito has two points. First, despite the trappings of open source, VS Code is essentially a Microsoft product and there is no reason to believe that they won’t change or evolve the product in any way that they believe benefits Microsoft, even if it’s at the expense of VS Code’s users.
Second, there’s the matter of which is the better choice leaving aside the issue of its Microsoft provenience. VS Code, he says, is certainly easier to get started with than Emacs. It just works out of the box. But down the road, problems start popping up. It’s not extensible and really, really wants you to adapt to it instead of the other way around.
Emacs, on the other hand, is harder to learn and get started with, but its extensibility makes it a lifelong tool that you can adapt to your way of working. Esposito mentions Org-mode, in particular, as an example of this. It’s now part of core
Emacs but it’s worth remembering that it began life as a third party extension leveraging Emacs’ mutability. Similarly with Magit. Neither were developed by core Emacs developers but by users who had an itch that needed scratching.
If you want the easiest plug ’n play solution for your editor, none of this will convince you but if you’re a serious developer who’s willing to put in the effort to learn the best possible tool, Esposito’s post may hold some wisdom for you.