Long after whatever company sponsoring development of your current favorite IDE enshitifies them twice over, we'll still be using emacs.
Long after you relearn your IDE workflows twice over, we'll still be using emacs.
And emacs keeps evolving and can handle modern development just fine (except for the most garden-walled ones, and even then...), while not breaking our brains all the time with so many changes and migrations and trend changes.
We want to keep using our tools and get work done, not keep up with the Joneses.
Yes, if you're talking about a timeframe of ~50 years, use vim and emacs. I just don't care that level of future proof.
There isn't any compromises that make vim or emacs less useful than those tools with much less longevity. They are just as good as an editor to even those who don't care if they will be around 50 years from now.
But that's the point: I don't want to take a significant amount of time to learn and configure an editor. I want a IDE that works well almost out of box.
Maybe my opinion will change if one day I decide to try a more batteries-included vim/emacs like Doom.
Wellllllllll....
Because it's thought out and polished by decades of use.
Because it's extensible.
Your very question, "why are people using an IDE from 1970s in 2023" should provoke some thought. Assuming that these people are not crazy (a lot of them is rather smart and rational), what us so good about Emacs (or Vim) to make it still a preferred choice?
I'm in my late 20s.
I would be interested to hear if you know of any modern editors where extending my editor is as easy as writing one line and running "eval-buffer".
Or do you mean more like changing how editor looks, how many windows/panes/tabs are displayed and where are they displayed?
This is very different from most extensible editors, where extensions are sandboxed and have a limited, controlled API to the core editor, which is kept separate.
This makes Emacs very "malleable", and it's likely easier than with most other tool to change it in custom, specific ways. It may seem dangerous, but it comes from a culture where this extensibility is very front and center, with documented design pattern to support it (hooks, customization settings...).
Count before you post; Emacs now boasts over 300,000 lines of C.
"Encompassing Massive Amount of C Source"
Emacs 29.1, excluding the test directory; top ten languages:
all SLOC=2618374 (100.00%) LLOC=182918 in 2584 files
elisp SLOC=1188181 (45.38%) LLOC=0 in 1566 files
man SLOC=501820 (19.17%) LLOC=0 in 48 files
C SLOC=387169 (14.79%) LLOC=159681 in 317 files
Texinfo SLOC=288384 (11.01%) LLOC=0 in 182 files
Lisp SLOC=175786 (6.71%) LLOC=0 in 1 files
Objective-C SLOC=18289 (0.70%) LLOC=8480 in 8 files
Tex SLOC=16031 (0.61%) LLOC=0 in 23 files
m4 SLOC=10436 (0.40%) LLOC=0 in 133 files
shell SLOC=6819 (0.26%) LLOC=0 in 28 files
C++ SLOC=6240 (0.24%) LLOC=2924 in 5 filesThe C base supports many platforms and variants, so only a part of it is used in a running Emacs instance. And to the 1+M lines of elisp one typically had many more extension packages. That's the the "relative".
In practice, when I want to change things I don't hit the C layer. Anytime I had to introspect Emacs to change something I was firmly in the lisp world. I don't remember having been limited by something being at the C level, which are things that cannot be changed dynamically. This is really what I meant: in practice to change Emacs the C level (although big in the absolute, and definitely complex) doesn't show up much and hasn't been a limitation at least to me.
Good tools change the way you work because they make certain workflows possible. If it was that easy for you to tweak your editor, you would too.
Being old doesn't imply something is bad. Should we be asking what Emacs and Vim have done right so that they're still being used 50 years later?
Because it works perfectly fine? So your reasoning is because is old is bad. That software that old still is being heavily used today is a testament that these tools have something that definitely the latest craze out there don't. And no, I'm not a greybeard, I'm in my 40's and been using VIM since I don't know when, probably more than 15 years for sure.
There is not a single modern tool that beats Emacs in ease of customizability and extension.
PS. Try Doom Emacs and evil-mode:
Been using Vim for a few months now but I was checking out eww the other day (along with learning more about emacs in general) and it’s certainly interesting…
There are certainly some constrains on what plugins can achieve due to nvim being exclusively a TUI, but in my opinion the pros of the editor outweigh the cons.
As to what makes me choose neovim over vscode with a vim plugin, it's a combination of things. One thing I love is that neovim is extremely easy to configure. I also enjoy that everything follows vim rules, rather than some things like file trees or consoles having their own unique rules. I have also become dependent on some vim plugins that don't exist in vscode.
Maybe for whatever work you do your IDE works better for you.
In my case, I mostly code in C++. I've tried JetBrains' IDEs and it drives me insane how slow they are to index and I often get freezes when working on really large codebases.
The same applies to Visual Studio (not vscode).
vscode drives me insane with the amount of dumb notifications it keeps popping up. But I can concede that for most people it works well enough. It also doesn't perform nearly as well as Sublime Text. Working on really large codebases is a PITA with vscode.
If I need autocomplete (which I actually don't like that much), LSP works well for my needs.
Others would use tramp mode, and open multiple remote sessions within a single emacs. This makes it easy to cut and paste between systems.