aspell is recommended because its option --run-together . That option could check the camel case word. Variable name often uses camel case naming convention these days. Read my Effective spell check in Emacs for advanced tips.

If Emacs starts an aspell process with "–run-together" option, that process is not closed so it can be re-used by other commands.

This behavior will be a problem if you want Emacs/aspell correct the typo by running the command "ispell-word" because an aspell process with "–run-together" will produce too much noise.

For example, for a typo "helle" Emacs will give you extra candidates. It's hard to find the desired word "hello":

The better solution is before running "M-x ispell-word", we'd better restart the aspell process without the argument "–run-together".

Here is the screen shot after we applying this fix:

As I mentioned, the global variable ispell-extra-args contains arguments Emacs will always append to a spell checker process (aspell or hunspell). That's the only variable you need care about.