I want to further bang about on this: This is a plain false statement. Emacs's completion-at-point was (C-h C-f) introduced at 23.2, in May of 2010. company-mode has commits going back to 2009.
That's his point, people use company mode because Emacs doesn't have built-in "modern" completion UI. Completion at point uses the minibuffer, right? If so I wouldn't call it a real alternative, specially without minibuffers plug-ins like ivy and co.
I don't think the Emacs situation is bad at all, but I agree 100% that it needs third party plug-ins to be anything close to what people expect of an editor in 2022.
His point is poorly expressed in that case. Let's look at the quote again.
>Contrast this with Emacs and Vim. They just don’t have proper completion as an editor’s extension point. Rather, they expose low-level cursor and screen manipulation API, and then people implement competing completion frameworks on top of that!
People don't implement competing completion frameworks on top of "low-level cursor and screen manipulation API". There are more high-level APIs included in Emacs, such as completion-at-point.
To quote company-mode's website:
>The CAPF back-end provides a bridge to the standard completion-at-point-functions facility, and thus works with any major mode that defines a proper completion function.
To me the author misrepresents what Emacs has built-in and what package writers use.
Technically company-mode isn't third party, it's part of GNU Emacs. It needs to be downloaded, yes, but it's not third party.
Emacs needs a package recommendation engine (I know VS Code has this, awesome!).
Thanks for the correction! Indeed, I am not super familiar how things work under the hood, I just observed a proliferation of completion frameworks on top!
This was perhaps the case in the very beginning, but everything is switching towards the built-in completion interface as a core, where you can extend both ways: provide elements to complete, or provide ways to perform the completion.
What you get with ivy/company/etc is different ways on how to expand/handle/show completions and they're all still relevant.
I'm using different frontends depending on the mode that I'm using. I personally dislike pop-up style completions. I'm using a mixture of completion buffers (the boring emacs built-in ones) ivy and ido instead.
> I wouldn't call it a real alternative, specially without minibuffers plug-ins like ivy and co.
Why is that? Emacs comes built in with modes like `fido-vertical-mode`, which are arguably more powerful and modern than `company-mode`. They're just not turned on by default.
I don't think the Emacs situation is bad at all, but I agree 100% that it needs third party plug-ins to be anything close to what people expect of an editor in 2022.