Emacs remains the antidote to this. I use Emacs because I want to remain the architect of my development environment, not become the consumer of a telemetry-gathering platform architected by PMs at a big tech company. It is also an absolute joy to use an environment that provides you with the same amount of power as the core maintainers, allowing you to fully inspect and modify the system even while it is running.
But maybe that should change. I like vscode for when I need more IDE features than I care to cobble together with plugins.
I don’t need another subscription in my life. Especially for anything I rely on.
After a couple of months of using Doom, I felt comfortable enough to roll my own config which also helped me better understand how things worked at a lower level. More interestingly, after a couple of years, I transitioned from Evil to standard Emacs bindings as that felt better integrated with the rest of Emacs.
So Emacs+Vim is the best of both worlds. You get the infinite extensibility of Emacs and a sane(-ish) programming language, with the superior editing and command interface. The beauty of Emacs is that it really doesn't matter how you use it. For some modes you may need to override a keymap, or use a package like evil-collection, but most behave well OOB IME.