When comparing Syntastic 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 Syntastic is ranked 2nd. 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 Supports a huge number of syntax checkers and linters
Nearly every code quality tool you can think of is supported, including jslint, jshint, pylint, pyflakes, cpplint, csslint, and checkstyle.
Pro Highly configurable
Pro Very actively maintained
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 Asynchronous checking could be a nice to have
Really, running checks when saving a buffer is more than enough though.
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.