To me the pitch for Emacs is it's the same overall platform now as it has been for decades and will probably continue to be. While all my colleagues were jumping from BBEdit to TextMate to Sublime to Atom and now VSCode, I've just been sitting here editing text.
The "15 minute tutorial" is emblematic of everything wrong with emacs and its community.
Just make CUA-compliant keybinds the default, and you'd draw in so many more users.
The ideal tool is one that you can start using right away, and incrementally dig into as you descend into madness/poweruserdom. The idea of having to waste 15 minutes before you can even start working in emacs is awful.
I used emacs for quite a few years only knowing how to save/open files and undo, because I refused to go through a tutorial that looks like it's stuck in 1970. I'm sure many others just give up and use vscode.
There's a strong correlation between things that are not so easy to get into but the gained efficiency later. Conversely, very often, something that is very intuitive off the bat starts feeling cluttered and not very efficient later.
Imagine if you go to a nuclear power plant control room (or the cabin of an industrial excavator) and tell them - "Jeez. So many knobs, buttons, and switches. Why can't someone design a single, incredibly intuitive interface with a huge touch-based display?" For them, those knobs, buttons, and switches are probably the most efficient way to operate their machinery, even though initially, it requires training, certification, etc.
You cannot prioritize both - for the novice and the professional at the same time. You either convince beginners to learn the tool or make a simplified version of the tool for beginners. But it will never be an ideal tool for a hardcore professional.
I gave Emacs+Org-mode about a year or so, and I saw a whole lot to like, but lack CUA-compliance is literally the thing that stopped me, I just use too many other programs that aren't Emacs for this to work.
The downside to software that lasts a long time is that yes, vocabulary will change. So now you change to CUA compliant keybinds. Then the world changes again and now you're constantly chasing whatever is new and disrupting your users by throwing your whole "can use for 10+ years" value prop out the window.
I use Emacs specifically because it's a huge time saver for me. Pretty much almost every day, I find something repetitive that I don't want to do manually.
- Need a link on GitHub for the current line in code?
- What if the same line but in a different branch?
- What if you're already browsing code on GitHub and want to check out this specific file (in specific commit) but in your IDE?
- I want to send a YouTube link to my colleague, but I don't want to separately copy and paste, first the link, and then its description; Emacs helps me do that instantly.
- I have two pieces of code or text. I want to diff these snippets quickly.
- I am not a native English speaker; how can I quickly translate any word or a phrase and even hear its pronunciation?
- How can I quickly find a definition of a word or its synonyms?
- I use and love Grammarly, but I don't want to use their stupid editor. And I don't want to copy and paste the text all the time; I perform Grammarly checks while in Emacs.
- I want to find packages on npm, maven, clojars, etc, without opening the browser and typing.
- I want to select a piece of code and search for it on GitHub, and Emacs would make sure the language is properly set.
- I want to convert between different units quickly, or generate UUIDs, or validate JSON. Even when I'm offline.
- I want to find (recursively) all the files that e.g., bigger than a certain size and were created between April and June and rename them all or delete them.
- I'm going through my notes and see that ticket #1346 is done, and I want to trigger the state change without ever going to Jira, GitHub, etc.
And there are many, many examples of things like that. And sometimes it's not even about the time. It is far more enjoyable that way. It feels empowering. You don't have to think about some trivial things and can focus on what's important.
There's not a single [other] tool that makes me feel like I'm in so much control. And for a software developer is very important to feel being in control. Or it starts slipping into a burnout.
git-link.el
> What if you're already browsing code on GitHub and want to check out this specific file
github.com/agzam/forge-visit-here.el
> I want to send a YouTube link to my colleague
org-cliplink.el
> I have two pieces of code or text. I want to diff these snippets quickly
github.com/agzam/.spacemacs.d/blob/master/layers/ag-general/funcs.el#L99
> how can I quickly translate any word or a phrase
google-translate.el
> How can I quickly find a definition of a word or its synonyms
mw-thesaurus.el
> I use and love Grammarly
lsp-grammarly
> github.com/
Emacs' eshell is the fastest shell out there according to one metric.