Combine this with my tiling window manager and I pretty much only have to use my mouse to interact with web browsers. That's the killer feature that makes VS Code and Intellij _feel_ inferior to me.
Now I wouldn't go so far as to say that VSCode and Intellij are _actually_ inferior to Emacs. I think both are great in their own right, but after years of familiarity I have a fluency with Emacs (because of the keyboard oriented interface) that I could never have with them.
To be fair, for someone without emacs fluency I would probably steer them towards VSCode and Intellij as they are definitely more approachable. In fact, I have done exactly that for several of my friends and colleagues.
‘You can install a vi emulator.’ - Waste of time. I already have vim.
My vimrc file still works. New machine? Just install vim and copy my vimrc over.
Emacs is a totally different experience. Emacs is essentially the interface side of an operating system. There is really no replacement for it except a UNIX command-line with a bunch of CLI tools for things like news and email that people have forgotten about.
They keep developing and they are up to date with many/all programming-features. There are bunch of extensions that VScode just doesn't have despite it's huge extension store.
Also the main thing for me about these editors and especially Emacs is that you can program it. Not just configure it but actually program and do anything with it. You can hook into any piece of the code and change it. You can read the source code of any "extension" and patch it on the fly. I don't think I'm aware of any other editors that allow that.
It's huge power.
I'm saying (from my pov, which may be wrong) that they don't seem to have as good of an IDE experience. Certainly the out-of-the-box experience with emacs/vim is much worse. And the learning investment is pretty steep. But even if you configure everything as an expert would, the experience still seems lacking to me.
- browse the web
- read/send/edit email, RSS news, usenet
- chat on IRC and other chat networks/protocols
- use org-mode to edit notes in an outline format with hyperlinks, executable code blocks, a spreadsheet, etc
- use magit, one of the most powerful git interfaces
- read and edit PDFs and LaTeX with visual LaTeX symbol substitution right in the editor
- program and configure the editor in elisp, with a whole elisp ecosystem used for every plugin (this alone would make me switch away from any other editor to emacs)
- use thousands of other scripts and plugins that are the result of 50 years of development
- absolutely everything customizable to the nth degree, as emacs is more of an editor construction set than an editor
They seem awfully limited to me by comparison.
https://github.com/neoclide/coc.nvim
Or
https://github.com/neovim/nvim-lspconfig
https://github.com/hrsh7th/nvim-cmp
No different than installing plugins in VSCode for completions, they all work via calling out to a LSP server using https://microsoft.github.io/language-server-protocol/
When you don't understand something it's only natural to be unaware of its capabilities, yes.
Can you list your most important feature(s) in chosen your ide or editor that you suspect emacs doesn't have or can't easily have?
`lsp-ui` does it for Rust at the very least but probably for other languages too.
As for the other things, Emacs has support for many more languages than VSCode or Intellij. An example of this, is support for (g)awk, or non-posix shell scripts, lots of lisps, jq, various config file formats, and other things that aren't "hot" right now.
There are other reasons too, like Emacs being a true FOSS project, which is important to me. There are lots of other things, these are just a few ottomh.
How are you sure VSCode and IntelliJ will be around in 10 years? 20 years? Why invest in learning a new tool every couple of years? How do I know MS doesn't suddenly kill VSC?
Also, why would I want to use an editor which calls home every few minutes? How can I be sure VSCode does not send my password files etc. to MS or OpenAI or whatever?
Also, Emacs extensibility and flexibility is unparalleled. I can mold it to fit _my_ workflow instead of molding myself to fit the workflow of some guys at MicroSoft.
Also, Emacs is self-documenting and has ridiculous introspection capabilities. My favorite example: do VSCode/IntelliJ have a counterpart of `view-lossage` (https://www.gnu.org/software/emacs/manual/html_node/emacs/Mi...)?
Also, the fact that Emacs is so keyboard-oriented (as others have mentioned) is not really about _objective speed_, but _subjective feeling of friction_ (and lack thereof).
Also, working with Emacs is so much fun. It's a piece of software so helpful that it almost feels like an A.I. assistant. ;-)
So, plenty of reasons for me.
I’ve heard plenty of arguments, but they kind of suck to be honest. They’re more like rationalizations for why they stick to what they know.
I just don’t get it. Why use inferior tools?
Both are lighter weight. Big deal, buy a faster computer. It’s nothing compared to your salary.
Both may let you type slightly faster and move around faster. Maybe. But that’s not the bottleneck anyway.
Why? Am I missing something or is it just an irrational attachment to software they learned long ago and prefer to stick with rather than learn something new?