These days popular modern tools (IntelliJ, VSCode, etc.) all provide
quick and efficient methods to select items from a set of possible
completions. These completion tools have two main attributes:
1. The completion is some kind of flex completion where you don't have
to know and type the searched item exactly, it's enough to type parts
of it with or withouth spaces.
E.g. to execute "recover-this-file" you'd just type "M-x recfile" and
it's listed among the matches. Or to find "sort-numeric-fields" you
type "nufi" or "sofi".
The listing of matches usually involves some kind of recency bias, so
items you used before are listed first which makes it very convenient
to access your often used items, because in the list of matches they
are listed before the ones you rarely or never use.
2. The other thing is that selecting from a set of items gives you
instant feedback (maybe with a delay of a few hundred milliseconds),
so you don't have to press TAB or other keys for completion, the
matching items are listed immediately. (If there are too many matches
then the first, say, 50 is listed and the completion indicates you
have to keep typing in order to narrow down the number of matches
more.)
Emacs' current built in completion is kind of old fashined. Surely,
there are people who prefer it, but most people according to my
experience prefer completion systems like described above which
provide instant feedback with flex matching.
Emacs already has such packages which provide that experience. I'm
aware that integrating an external package for built in completion
involves copyright issues and extra work, so let's put those issues
aside for the moment, I'm more interested in the user interface angle
here.
Do you agree that Emacs could benefit from such a modern completion
system (for M-x, etc.) by providing a more attractive out of the box
experience?