When comparing neomake vs ale, the Slant community recommends ale for most people. In the question“What are the best Vim plugins that check for syntax errors?” ale is ranked 1st while neomake is ranked 3rd. The most important reason people chose ale is:
Warns of syntax errors as-you-type - you don't have to wait until you save your code or manually invoke syntax-checking (can be disabled).
Ranked in these QuestionsQuestion Ranking
Pros
Pro Lean and meaan, not bloated with irrelevant features as ALE (e.g. autocompletion)
Pro Asynchronous (in neovim and vim8)
When used with neovim or vim 8+, builds/tests/linters run in the background and report the results when they come in.
Pro Runs asynchronously
Warns of syntax errors as-you-type - you don't have to wait until you save your code or manually invoke syntax-checking (can be disabled).
Pro Lints as you type
Doesn't wait for you to save before linting, it lints the buffer, not the file.
Pro Add fixers (prettier, standard...)
Pro Works with Language Server Protocol
Pro Works with minimal configuration "out-of-the-box"
ALE can be used almost immediately after installation. Some linters that need fiddling before they're usable with Neomake or Syntastic will "just work" on ALE.
Pro Being actively developed
Ale has a large, active community that keeps integration with language backends up to date
Cons
Con Mixes responsibilities (LSP support)
While main purpose of ALE is to run linters and fixers it also supports some (not all) of the LSP calls. The developer likes this functionality but it's a somewhat popular opinion ALE could relay on a different project for this and therefore delegate some of the maintenance burden.