I love Emacs (it was my main editor in the last 20 years) but i can't justify anymore to use it due to lack of modern feature, ease of use and maintenance of the .emacs files. Maybe i'm getting too old to constant exercise my memory or to tinker configuration files. Nowadays i just use VSCode and occasionally nvim.
Modern features:
1. lsp-mode/eglot
2. package management
3. treesitter grammars
4. Portability - win/linux/mac/unix/android
5. Graphical User Interface - you can browse the web and watch YouTube in Emacs. Customize has buttons, forms, menus.
6. Treemacs/Treeview/speedbar: you know the multipanel view in Intellij or the project explorer in Intellij/vscod? Yeah, that.
7. Actual macros and function definitions, without needing to post them as an extension.
8. Interactive repl.
9. 5 different terminal emulators built-in.
10. Automated fuzzy everything with helm-M-x and helm. Exactly like Command-p in vscode.
11. github, gitlab integration with magit.
12. Copilot, tabnine, and chatGPT integration.
13. Hundreds of themes.
14. We've had shareable, secure remote collaboration for over a decade with wemux.
15. Use any ttf.
16. Mouse editing and command binding.
17. Use every build tool with projectile-compile-project.
18. Refactoring with lsp.
19. Autocompletion and jump to source.
20. Session save and restoration with desktop-save.
21. Slack integration.
22. Debugger with dap-mode.
23. Individual test only runs with dap and avy-lens.
24. blame with.magit-blame.
25. Pixel scrolling.
25. Transparency with seethru.
28. Rest client with variables and session storage (like postman, but free).
29. Browse compressed files as if they are normal directories and save to them.
30. Containerized deployment via flatpak.
31. Docker, docker-compose integration, kubernetes, aws, datadog, Azure integrations...
All of this fits in around 500 lones of copy_paste/cloneable emacs configuration, most of which is use-package declarations. Nary a defun or global-bind-key in sight, and because emacs is a full elisp ide, and it is actually executable code, it's debuggable on launch, unlike myriads of json files.
I'm trying to think of anything else that can possibly be interpreted as 'modern' from a ux standpoint. I certainly can't think of a feature that Intellij has that emacs doesn't that is core to the ide experience. And most of my emacs tools are better than the vscode version of them, at least in terms of invasion into the editor buffer or integration with the editor ux.
The one thing that's not modern is the standard copy and paste commands, but that's super easy to customize. I guess you can't drag and drop buffer frame borders in multiple buffer layouts if you hide scrollbars, and the message buffer isn't resizable...
But vscode has basically all of it out of the box. Maybe after installing one or two extensions, which it recommends for you and you can install via a GUI.
As someone who uses emacs most often: VSCode is shaped a lot more closely to a modern aesthetic by default. If you've been following along with emacs all this time and keep up to date with the latest changes, you can easily accrete the configuration to make your emacs look like a modern tool, but it doesn't start configured that way.
I think you might want to contemplate that "Fashionable" is semantically equivalent to 'dated'. You are excited that it's dated to 'now'.
I know you see this fashionable UX as an advantage, but what I think about is how you're going to have fashionable evolution in UX thinking inflicted on you. It feels to me like someone coming into my shop and moving all my tools.
Gratuitous example from an adjacent area of nerdliness: Were you around when Microsoft decided to drop the UX they'd been using for a few decades and change to "The Ribbon" ?
> You are excited that it's dated to 'now'.
Yes, I am. That's very convenient for me.
> Were you around when Microsoft decided to drop the UX they'd been using for a few decades and change to "The Ribbon" ?
I was, and you're right. Microsoft functionally owns the chrome for vscode and it isn't as configurable as far as I can tell as emacs at that layer. There's certainly a possibility they will make a decision later to mess everything up.
But for now, my previous observation stands. I have to do less configuration out of the box to get vscode into a daily use work configuration than a naked emacs install.
I highlight this because it's not an unsolvable problem for emacs. It requires making a recommended default configuration that will be more correct for the 95% use case and advocating that configuration on the install channels for the tool.
For people interested in this, I know about Doom Emacs [1] and Spacemacs [2].
[1] https://github.com/doomemacs/doomemacs [2] https://github.com/syl20bnr/spacemacs