Subject: Re: bug#51819: The Senselessness of Emacs Company Mode

From: Carlos Pita <[email-masked]>
Date: Tue, 16 Nov 2021 18:30:04 -0300

>> I am installing Company Mode so I can use auto completion.

One last thing that I believe should be obvious at this point, but
just in case: you don't need to install company to use
auto-completion, auto-completion works OOTB.

Company sports an overlay that many people find convenient and AFAIK
also defines some extensions to the core protocol (whose usage is
seemingly not encouraged these days anyway).

Emacs auto-completions come mostly in two flavours:

1. completing-read, for example the one for C-x C-f

2. completion-at-point, namely the one you want to customize using company.

But if you only need some vertical fuzzy-matching experience for 1 and
a popup for 2, just install corfu and you're good with a configuration
as simple as the one I posted above. I know this is of little
consolation, because you have already been exposed to information that
you don't care about, but that's the best I have.

> There is a time that the project needs to clean things up a bit.

There has been a significant cleanup regarding completion, both in
core emacs and in the community. Things are pretty mature right now
and expectations converge around the two core protocols listed above
(compare it to the situation a few years ago, with the emergence of
helm, ivy, company, etc, as well as ido, pcomplete, etc in the core).
But you are complaining about the outcome of a historical development
that there was no clear way (nor desire, I hope) to prevent. I don't
want to be Pangloss here, but it's in the nature of things that
extensions will be less conservative and change faster than the core.
This has both positive and negative aspects: on the plus side, you may
have been enjoying helm, ivy and company for years now, on the minus
side there is this senselessness you perceive (and you have painted a
rosy picture of it...). Some alternatives are a fossilised project or
a project that is breaking things with every release; by all means,
there is no such way as a project evolving at the perfect rate of
change, there is always uncertainty about future directions, many of
them yet unknown, and also a pile of constraints inherited from past
decisions. IMO having a creative and active community is more of an
asset than a liability, even if sometimes it's innovating too fast for
the project to provide any sort of meaningful coordination. But you
seem to see a slow-paced project instead of the fast-paced community
around it. I may agree with you about some other emacs aspects, but
regarding completion I believe sustained progress has actually been
made over the years.

> wasting months or years trying to follow the haphazard evolution of the software.

Sure, some other projects take more decisions upfront at the price of
losing some flexibility, maybe you would be better served by vscode in
that regard. Extreme flexibility is not necessarily a virtue, my empty
all-in-one-editor.c is as flexible as it is useless. At any rate I don't
think this is the case with emacs, but it's clearly biased towards
more organic evolution that you seem to dislike.

Best regards,
Carlos