Personally, I would use
$(...), always, just because it's more consistent in the corner cases of nested quotes and expansions, and I like the idea of having expansions start consistently with a dollar sign, and the parenthesis are more visible than backticks which are rather light in some fonts, and can get confused with single quotes like mentioned in the comments. But other than the first, those are about looks and aesthetics, so your opinion may well differ.
Based on the discussion in Have backticks (i.e. `cmd`) in *sh shells been deprecated?, it doesn't seem that support for backticks would be on track to be removed, so that's not a reason to say "never".
However, note that the parsing of backticks works oddly in some cases. Having to add extra backticks for nested expansions is rather simple:
echo `echo \`echo foo\` `
But that's not all. As Stéphane notes in an answer to
How to use a special character as a normal one?, even nesting double quotes with backticks in the between fails in ksh, for example (I'll reproduce this one here for easier access):
ksh$ echo "`date +"%F %T"`"
ksh: : cannot execute [Is a directory]
and you have to escape the inner double quotes too, even though this looks like it would be unambiguous to parse even without them:
ksh$ echo "`date +\"%F %T\"`"
(The quotes around the command substitution are relevant because of command substitution, though not with
So, while this does seem like a case of "never say never", and while backticks work fine in the simple cases, I think there's enough to strongly suggest just using
$() instead. :)