> Syntax is the central issue of a programming language
As a sibling post mentioned, syntax is like a paint job. Yeah a pink tank is not appealing to everyone. . looks better than ;. Some like {}, some like begin/end blocks. That is syntax. If that is unsurmountable and is the central issue for that developer that is a sign they probably will not handle well a whole new paradigm (actors, distribution, distributed systems issues etc).
Another level is what does the language operate with. This is after the syntax has been parsed. What are the building blocks: functions, variables, records, processes, ETS tables, messages, OTP behaviors, macros. Those are things that define a language more than Syntax. These can be familiar or unfamiliar. Like I see a class in C++, Java and Python. The syntax to define one is different but in my head I can conceptualize it in a similar way. Erlang is functional and concurrent. So those two things will make it unusual. It also operates with immutable, single assignment data. That is unusual. I can see someone having a gripe with that.
As a mental experiment, if we switch all the . to ; and introduce {} brackets. Rename records to structs maybe or give them a C/Go like definition syntax. There won't be a revolution and Google, Facebooks other companies and universities will all of the sudden flock to it. They won't because they still have to use a new paragidm to develop -- processes and concurrency and single assignment variables.
Yet another axis on which to judge syntax is consistent vs inconsistent. Erlang's syntax is unfamiliar but it is small and consistent. Same goes for the meanings of operations. Like say in Javascript if you watch the Wat talk, you'll how you add an object to some array for example and get a NaN. The syntax is familiar but the meaning and how it works is inconsistent. The same can be said about libraries as well.
As a sibling post mentioned, syntax is like a paint job. Yeah a pink tank is not appealing to everyone. . looks better than ;. Some like {}, some like begin/end blocks. That is syntax. If that is unsurmountable and is the central issue for that developer that is a sign they probably will not handle well a whole new paradigm (actors, distribution, distributed systems issues etc).
Another level is what does the language operate with. This is after the syntax has been parsed. What are the building blocks: functions, variables, records, processes, ETS tables, messages, OTP behaviors, macros. Those are things that define a language more than Syntax. These can be familiar or unfamiliar. Like I see a class in C++, Java and Python. The syntax to define one is different but in my head I can conceptualize it in a similar way. Erlang is functional and concurrent. So those two things will make it unusual. It also operates with immutable, single assignment data. That is unusual. I can see someone having a gripe with that.
As a mental experiment, if we switch all the . to ; and introduce {} brackets. Rename records to structs maybe or give them a C/Go like definition syntax. There won't be a revolution and Google, Facebooks other companies and universities will all of the sudden flock to it. They won't because they still have to use a new paragidm to develop -- processes and concurrency and single assignment variables.
Yet another axis on which to judge syntax is consistent vs inconsistent. Erlang's syntax is unfamiliar but it is small and consistent. Same goes for the meanings of operations. Like say in Javascript if you watch the Wat talk, you'll how you add an object to some array for example and get a NaN. The syntax is familiar but the meaning and how it works is inconsistent. The same can be said about libraries as well.