Ternary operators are a little different, we have had them for decades, and the consensus is that they are hard to parse visually.

They’re a clear case of brevity hindering readability. Whereas, we have had arrow-like notation for functions in other languages for decades, and the consensus is that they are easy to read. They’re new to JavaScript, so they seem difficult, but that will pass. I am very comfortable that programmers just getting into JavaScript will have no idea why anybody wouldn't like them.

My personal suggestion is to use arrows when you don’t care about the things that function give you. So use arrows, except:

If you need to write a recursive function, use function name (...).

If you want to have a readable stack trace (which is often!), use a named function expression or function declaration.

If you want to put helper functions at the bottom of the code so that the main thing is at the top, use function declarations.

If you care about this, use the function keyword, for example if you’re writing a true method or a method decorator.

If you care about arguments, and don’t want to use parameter destructuring, use function.