Because I never heard of Prolog before, It is quite different from the first time when I saw the Erlang code in the book Programming Erlang(first edition) and some videos in early 2013.
The main difference is the feel of the symbolic. Actually, I don’t know the concept of ‘symbolic’ before I watch Erlang The Movie.
After I tried more programming languages(like APL family, Forth, Prolog, OCaml), now I think the syntax of Erlang is not unique as the first time I saw it, but it is still nice though I think it can add some useful features.
The part I dislike the most of Erlang syntax is I have to use bitstring like <<"アーラン">>
to avoid some Unicode issues, while Elixir can just use double-quotes to represent bitstring directly. I know this is not a big problem to write Erlang code but a big change with Erlang syntax, I still hope there is a more convenient way because it is quite annoying.
Another syntax problem, the record syntax, is not actually a syntax problem. Even OTP17 introduced map structure, the abstract ability of business logic of Erlang is still weaker than other dynamic class-based OO languages(like TypeScript or Python3.9+). Elixir has macro and ‘protocol’, and I think that’s why more people turn to other BEAM languages because nowadays more and more people need to write complex business logic(not deal with protocol layer or telecom related things).
In addition, I also hope Erlang can add some pragmatic syntax such as F#/Elixir’s pipe operator. However, it seems that more people don’t want to change Erlang syntax or treat it as the next dead language like C.
btw, I agree the Erlang syntax was a strange monster to the newcomer in the past because the mainstream language didn’t have enough essential FP features like pattern matching at that time.
But now everything has changed, the weight, the historical burden of BEAM and the old state ecosystem(included a fragmented and low-power community) are both the biggest problem when people consider whether join the Erlang world.
Maybe I should stop continuing this way I talk about all my views of Erlang’s future. In the worst case I thought, the BEAM will not die in 20 years, and the communities will be bigger than some other old languages such as XXXX at least.
I can’t imagine the best case, because it’s a little late to think that. Anyway, I wouldn’t stop using Erlang/OTP, even now I only use it for some toy or personal project.