> Instead you are forced to do something like this:
if
Logging ->
log("Something happened");
true -> ok
end
For this particular use-case there is much more elegant way in Erlang:
Logging andalso log("Something happened");
Even though I agree that the syntax and the concepts are unfamiliar for the general audience, I mainly see those arguments as the main reason to learn the language rather than put it away since it's sometimes the only way to learn something new.
Regarding the "alien" syntax and expressing my point of view, I think Erlang syntax is usable, very simple and sometimes prevents you from doing "too fancy" things.
Erlang's main areas are fault tolerant, high throughput applications and network protocols. Once it's declared as the focus - I wouldn't punch the ecosystem too much for the syntax but rather just use another tool for solving the problems that require more expressive programming languages.
On the critics of the areas of focus I'd recommend the work done by Fred Herbert, the author of Learn you some Erlang for Great Good (http://learnyousomeerlang.com/).
There is a book on pitfalls while maintaining Erlang platform at large scale: http://www.erlang-in-anger.com/