I see this more as a documentation problem. Emacs lacks "official" documentation on how to configure an environment to do certain things, which includes installing certain Elisp packages, and configuring them. I'm going to use software development as an example.

In the good old days software development meant editing a few C files in Emacs and then running make. This no longer meets the expectations people have of a software development environment. For example, creating a contemporary environment to write and build software using the Rust programming language and Emacs, you need Rust mode, rust-ts-mode for Treesitter integration, Eglot to communicate with rust-analyzer (a Language Server implementation for Rust) for completion and goto definition, Company mode for code completion, Magit for version control, DAP mode for debugging, and so on. Many of these packages have alternative implementations, for example rustic-mode instead of rust-mode.

I'm not saying you can't edit Rust code without all these packages, but these packages combined provide the minimum that the competition (e.g. Visual Studio Code) offers.

The packages are all available for Emacs, which is fine. The problem is that there is no single source for how to put together the Rust environment for Emacs using the packages. I would prefer official Gnu Emacs documentation telling me what packages are needed (including a description of pros and cons of competing modes), how to install them, and what configuration is needed.

In the absence of official documentation, you will have to search the net for tutorials on the subject. These third party tutorials are often of quite low quality. Many of them are out of date, and, what's worse, often contain irrelevant and extremely opinionated information, like disabling the Emacs menu and toolbars, enabling evil mode, etc. A beginner can have trouble filtering out what's essential and what's not. As another example, at some point the web page describing how to use Emacs for Clojure programming said to start with completely removing the .emacs file and the .emacs.d directory. No explanation was given what these files are, what they might be needed for, or what the consequences of this removal would be. Not even a suggestion to make a backup of the files was given.


On Wed, 9 Oct 2024 at 06:30, Richard Stallman <rms@gnu.org> wrote:
[[[ To any NSA and FBI agents reading my email: please consider    ]]]
[[[ whether defending the US Constitution against all enemies,     ]]]
[[[ foreign or domestic, requires you to follow Snowden's example. ]]]

  > > Isn't Emacs usable without any pre-configuration, out of the box?

  > It is a good editor without any pre-configuration (it even ships
  > org-mode). But to be a good Web-IDE, C++ or Scheme programming
  > environment, Server automation plattform, and so forth, it requires
  > configuration.

Between there to what follows

  > Which might be a reason why it is discovered by writers, and why
  > Spacemacs and Doom capture new people.

there is an yawning gulf.  My imagination can't get me from one to the
other.  Can you please explain how to cross?

You listed Web-IDE, C++ or Scheme programming environment, and Server
automation plattform as kinds of work a user might want Emacs set up
for.  Choosing Spacemacs first, does it do some of those three things?
Does Doom do some of those three things?

Aldo, when you say that each of them requires "configuration", could
you make that more concrete?  What sort of configuration does "Web
IDE" require?  What sort for Scheme programming environment?  And so
on.  I'm not asking for all the details, just an overall idea.

Could we easily add those missing kinds of configuration to Emacs?
If we did, would that make Emacs competitive with Spacemacs and Doom?

We generally try to make all sorts of packages for various uses of
Emacs coexist in a single Emacs job.  I get the impression people are
assuming that these different configurations are mutually incompatible,
so that it is necessary to choose which one to install.

Is that what people assume?  If people do, why so?  Why can't
users select one at run time?

--
Dr Richard Stallman (https://stallman.org)
Chief GNUisance of the GNU Project (https://gnu.org)
Founder, Free Software Foundation (https://fsf.org)
Internet Hall-of-Famer (https://internethalloffame.org)