Sébastien Gendre <address@hidden> writes:
Let's see some use-cases:
- Bob: A newcomer, who just discover Emacs. He search somthing who is
visually modern, with all features he need to start writing code in
most popular languages: Code colouration, auto-completion, code
navigation, code documentation and functions/methods signature
automatically shown, code errors/warnings signalling, REPL
integration, snippets, strong GIT integration, etc. He also want to
use basic features without the need to read a tutorial. Just install
and go. But he is ok to read some tuto or manuals for advanced
features. If we ask him question(s) about what to enable or not, he
probably cannot respond (or thing he cannot). For him, Emacs need to
be the most out of the box possible.
- Alice: A long time user. She got a personal Emacs configuration she
had perfected over the years. She chose herself what system is used
to show function completion, which code parser is used for her daily
used languages. She add some packages to integrate with special
tools used at her work. Emacs is her home and office: She use it as
much for her personal project than for her work. She also made a
personal workflow with org-mode and write some personal Elisp
functions and advices. She forge the tools to her need. She do not
want to have an update of Emacs who break her configuration, her
workflow or her muscle memory.
- Mei: She simply want to use SpaceEmacs. She need to be sure
SpaceEmacs would work out of the box and be able to override all
defaults Emacs configuration. So SpaceEmacs developers need a way to
doing their work without the need to deactivate a hundred of default
features one after another and risk to forget one. This possibility
should be well documented. As the need of Mei is covered by
SpaceEmacs, she doesn't have special request about Emacs except make
it easy to use SpaceEmacs.
- Roberto: He work on a pre-configuration of Emacs, similar to
SpaceEmacs. He need a simple and documented way to deactivate all
default configurations that would make is work difficult. If
possible, in one move. And, of course, he need to know what is
deactivated so he can choose wisely what to enable and what to not.
You have summed up the use-cases rather well. Thanks.
For these 4 use-cases, we can simply provide 2 flavors of Emacs:
- Emacs: With all the 2020 features, a modern interface, all needed
modern features to start coding with most popular languages and easy
to use for basic usages
- Emacs Vanilla: All the new features are still there, but deactivate
to not break anything
And these 2 flavors can be in the same text editor: For switch from a
flavor to another, simply enable the global-minor-mode `vanilla-mode`.
And if Emacs detect, after an update or a first start, an already
existing configuration that it could break because of some features:
Emacs simply activate `vanilla-mode` automatically.
I'm afraid it's not that simple. I don't think we need any radical
changes in Emacs to be turned on by default, but maybe something like a
set-up wizard or "New to Emacs? Click here" would be useful.
IIRC,
there was a discussion a while back that said no. Plus, as I've
previously mentioned, I don't think Emacs should adopt any drastic
changes as the default configuration, but instead make the changes
easily discoverable.