Lots of people mentioning LSP. I've been an emacs user for over 10 years now. I've installed and tried the LSP modes. I've done it with 27 and jsonc as well. They are slow as hell and buggy. Is this just the accepted way of things now? I like emacs because it's fast. I can't stand using tools that are slower than the speed I can think.
Yes you're not alone, it slows Emacs to an absolute crawl. I was excited about LSP a couple years ago when it came out, but it turns out that it's another one of those things that's better in theory than in practice. There's nothing worse than having your editor freeze up while you're typing. I've had bad experiences with clangd especially where it consumes all available memory when faced with large codebases. It's not just slow on Emacs, it's slow on the other editors that use LSP like VS Code. If I were conspiracy minded, I would think this was an elaborate a conspiracy by Microsoft to kill off programming on Linux and get everyone on Visual Studio and WSL.
When I tried LSP for C++, speed wasn't the issue, though you do have to jump through some hoops to make sure emacs uses native JSON parsing. The problem was just stability as LSP for C++ was stupid buggy as recently as a couple of months ago.
You needed to upgrade a bunch of variables to account for the absurd amount of json LSP modes spit out, and use the C-based json parser that's available in 27 (I've been running from the source branch for a few months now) and I personally find lsp-mode super, super good.
It's like 100x better than TAGS files (because I don't have to generate them) and has made my navigation of a new codebase much, much more smooth and effective.
I can't speak to bugginess in general, but they're not supposed to be slow. I've used emacs with lsp modes for Haskell, Elm, Bash, and Python and they've all seemed very quick and responsive to me; if your setup is sluggish there is probably something amiss that can be fixed!
There are multiple LSP clients though, there's lsp-mode [1] and eglot [2].
After trying out both, I prefer Eglot, mainly because I find it faster and less intrusive than lsp-mode. It also composes better with built-in packages, such as flymake . I use gopls and pyls as language servers.