3 ms·
It's a reasonable position for most text editors / IDE, but not a good fit for Emacs IMHO. Emacs is atypical here. Emacs is best understood as an editor constr
by yaantc 4y ago
It's a reasonable position for most text editors / IDE, but not a good fit for Emacs IMHO. Emacs is atypical here.
Emacs is best understood as an editor construction kit with a default editor as an example. It's a "build your own editor" Lisp environment. And it's really more "text based applications" rather than just editor. Add some support for images and SVG on top too, although it's not as central as text.
Nobody fully build its own Emacs variant of course, there's a lot in the core Emacs (with a surprising amount of features disabled/hidden by default!) and it's most of anyone Emacs variant. Still, the approach of putting up one's "own" Emacs is important. I'm using over 50 packages, with a ~100 kB init file and Emacs distros are way above this I guess. The basic experience is if I want something to work some way, I'll look for supporting package(s) and tune them as I want, or much more rarely write some Elisp.
Making Emacs more approachable to newcomers is a recurring discussion in the Emacs world. For historical reasons there's a barrier, as Emacs predates a lot of things (GUI windows so in Emacs a "window" is what's a text pane in other editors, Ctrl-X/C/V so it's C-w/M-w/C-y in Emacs, etc.). Changing this would be disruptive to current users, and Emacs puts a lot of weight on being backward compatible. It's not possible to please everyone here.
In the end, I don't think Emacs "alieness" is a problem. The differences are rather superficial and easy to learn (with some motivation). For people not interested in this, there are plenty of alternate editors that focus on being user friendly, and it's perfectly fine. Choice is good.
Much more important to the Emacs experience is the ease of customization and adaptation. The Lisp environment is a big part of this: once you know the basics the embedded documentation is very extensive and always accessible. It's trivial to get the documentation on any function or variable, and go to its source code. It's also straightforward to adjust any behavior. There is no difference between core elisp code and the user code. Changes to the core are done in a conservative way to avoid breaking all the current users customization (there are breaking changes, but with early obsolescence warnings and good change documentation). All this is a much more important part of Emacs than the early experience. It's also quite specific to Emacs, I'm not sure there are many alternatives? If any, they're also "not so user friendly" (like neovim with Lua now?).
In summary, there's a tradeoff being first user experience, backward compatibility with such a long history, and flexibility to accommodate very different needs and use-cases (some of them incompatible). Emacs has a specific situation here. It may not be to everyone taste, but it's OK: there are plenty other alternatives. There's a thriving community, improvements have never been as speedy. I'm a happy user seeing no reason to change, on the contrary: I really feel it's getting better and better!