coc.nvim does a lot more than linting. I know ale tries to do completion but in practice I just found the experience of using coc to be really good. It's a bunch of little things that add up. Not sure what best way to convey it -- maybe a gif? Haha. I included an example screenshot of hover type info for example. Super useful esp. as languages like C++ and Go and TypeScript have type deduction/inference. I just put cursor on a symbol and do ';h' to get type info and maybe docs. And so on and so forth.