I have written a few thousand lines of erlang over the years.
> No, because no one has ever explained how it's hard.
> recursion is pretty easy.
uh, sure.
Let's talk about syntactical problems.
%% instead of // for comments because legacy+
=:= is === and /= is != , it's legacy+
Macros, atoms and functions are differentiated by context not syntax (?macros do have something). The capital letter variable name is basically an ever changing indicator. PHP $ or perl @ or some consistent indicator would be an improvement+
String handling is terrible, to this day and remember shell:strings(false) because legacy. Screw it, let's hide it in the gotchas of the manual and wait.
Some BIFs are named poorly. eg apply instead of "dynamic_call".
This is the correct way to look at branching decision syntax:
if X < 0 -> negative
; X > 0 -> positive
; X == 0 -> zero
end
The language doesn't help us with this for no apparent reason, with semicolons almost universally ending up on the end of expressions (sometimes):
if X < 0 -> negative;
X > 0 -> positive;
X == 0 -> zero
end
+
The problems are obviously user hostile and elixir and I magically overlapped. Anything with a trailing + was addressed in elixir which I did not know for sure before writing this list
The entire Erlang community response is basically the same (mailing list onward). Any attack on the syntax is either regarded as immaturity or whataboutism so people have just stopped talking about it like when someone gets an unfortunate face tattoo. The problems remain.