I was mainly using the now sunset Atom (VSCode forked from Atom) back in school and a little bit Emacs 28 when using terminal.
With the built-in custom it is not too difficult for me to make the switch after Atom got killed by Microsoft. I can't imagine how difficult it must have been back then for new users before the easy customisation features. It is a good decision by the maintainers. I probably would have gone for VSCode otherwise.
Org-mode is also another killer feature that I chose Emacs over VSCode. Now I do work management, literate programming, and typesetting via LaTeX in org-mode.
Now that I have been using Emacs as my main editor for a few years, I can't really imagine my life without org-mode.
Really it is just too good of a feature, if for somehow I have to switch in the feature, my number 1 requirement would be feature parity for org-mode (extremely unlikely). AFAIK, none of the "magical" modern editors have that, except the most basic org file text editing functionality.
When I first switched I mainly rely on easy custom, with minimal lisp code. However, a few issues:
1. many popular packages did NOT implement for custom (e.g. by declaring with defcustom), especially those that are not in MELPA.
2. the built-in customisation is NOT efficient, especially on startup
3. The customisation UI is sometime buggy, especially for themes.
So I ended up switching to configuration with straight + use-package + org-mode after Emacs 29 got released for a while. I done some GC optimisation as well and this made my Emacs startup gone from ~5s to ~1s, also much smoother response in general.
With the built-in custom it is not too difficult for me to make the switch after Atom got killed by Microsoft. I can't imagine how difficult it must have been back then for new users before the easy customisation features. It is a good decision by the maintainers. I probably would have gone for VSCode otherwise.
Org-mode is also another killer feature that I chose Emacs over VSCode. Now I do work management, literate programming, and typesetting via LaTeX in org-mode.