5 ms·
I like erlang. But erlang's syntax doesn't do it any favors. Might as well use elixir. Still the beam. I also don't think the beam's benefits are necessary
by rukittenme 7y ago
I like erlang. But erlang's syntax doesn't do it any favors. Might as well use elixir. Still the beam.
I also don't think the beam's benefits are necessary for the vast majority of software which makes it perma-niche. "Why use erlang when I can use python, a database, and a distributed task queue?"
I also really like Elm so I was sad to see it in the poll position, but I also don't base my language choices off of someone's blog.
- PopeDotNinja 7y agoThe more I've played with Erlang, the more I've liked its syntax. What I don't like is dealing w/ strings in Erlang.
- salimmadjd 7y ago100%! I actually prefer it now over elixir. Once you get to use it and spend a few weeks working with it, it becomes so expressive and it feels so clean to read and understand.
- macintux 7y agoUnfamiliar syntax is not the same as bad syntax. Erlang’s syntax is much simpler than Elixir’s, and generally more concise.
- crusso 7y agoI guess it depends upon what you mean by "unfamiliar". Erlang's syntax is unnecessarily divergent from a lot of mainstream languages. So much so that it makes it more difficult for mainstream developers to get into. Elixir was modeled after Ruby for a reason. That reason was Ruby's very approachable and intuitive syntax.
- deleted 7y ago[deleted]
- lostcolony 7y agoIt makes it easier for people to dismiss it; it actually is easier to learn. Erlang it took me two weeks to become proficient enough to write useful things, without any real FP background. That includes leveraging OTP. Even with that in place (plus a lot of Java, Javascript, some others, plus many more years of experience), it took me longer to be comfortable with Elixir, and there are still bits that surprise me or bite me (pinning a variable to match it rather than rebind it, macros, etc).
- Jtsummers 7y agoWhat's hard about Erlang's syntax? People keep telling me it's hard, but I was literally failing out of college at the time and still managed to learn it without much trouble (perhaps a month of occasional practice). I give that context because I can't imagine that I was struggling that much with school if I'm significantly above average for our field.
- crusso 7y ago"People keep telling me it's hard" Shouldn't that be enough to let you know that people at least don't find it to be intuitive?
- Jtsummers 7y agoNo, because no one has ever explained how it's hard. They just keep repeating that refrain, and to date I haven't heard it from someone who spent more than a day with the language or gave it any serious consideration. If people can enumerate the problems with the language (like I've seen or done for other languages), then I'll entertain the complaint. So far the closest thing to a real complaint has been about variables-not-being-variables (in the C, anything can change, sense). But this is 2020, mutable-by-default is a known bad idea so this is hardly novel or a challenge. The other reason I've heard is the lack of loops. If a professional programmer can't handle recursion, they need to go back to basics. I'm not trying to be mean with that one, but recursion is pretty easy.
- rukittenme 7y agoI agree with you. Erlang is not as hard as people make it out to be. However... Look at this piece of code: https://github.com/erlang/rebar3/blob/master/src/r3.erl#L32-L58 https://github.com/erlang/rebar3/blob/master/src/r3.erl#L32-... In this example the keyword "end" ends with "", ";", and "." all within 6 lines of each other. In this example the keyword "ok" ends with "" and ";". In this example `Self` "exclamation marks" `Ref`. All of this is easily understood with some experience but you have to admit that `erlang.send(Self, Ref)` is much more easily understood than some symbol that has to be googled. And consider this, a junior dev is going to be overwhelmed with all the syntactic sugar. They're just learning how to define and call functions. All of these issues matter if your goal is to on-board as many hobbyists and juniors as possible. (Which shouldn't be the goal of every language). I'm very happy with Erlang. I don't want it to change.
- h91wka 7y agoI have long since learned that dismissing languages based on their syntax is very punitive, as novel and powerful languages very often come with unfamiliar syntax. Syntax is the least difficult thing to learn. Things like type system, approach to concurrency and memory management are orders of magnitude more important.
- rukittenme 7y agoSure but I'm talking about on-boarding and generating developer interest. Appeal to junior developers and hobbyists is critical for large scale adoption. And like it or not a hobbyist's barriers to entry are different than a senior software engineer's.
- h91wka 7y ago> Appeal to junior developers and hobbyists is critical for large scale adoption. Hmm, I have personally trained Erlang to half a dozen juniors and interns. Any person who knows basics of programming can pick it up and write/fix mundane business code in less than a month. And I am a horrible teacher.
- elcritch 7y agoGenerally true, but there's also such a large convergence on Algol style syntax these days that your mind builds up familiarity with them. That makes groking them quicker. Well for me looking at Erlang code is akin to looking at 'vase or two faces' photo, due to lower case being atoms and uppercase being variable names. And I dislike having to change ',' to '.' or vice versa when editing lines. Though three ',' and '.' endings do have an elegance to them. Elixir is nice in that it is similar enough to Julia that I can copy and paste pieces of code and make minor edits to translate. Even javascript is relatively similar if map/reduces are used. Python is a bit harder due to white space blocks and list comprehension.
- davidw 7y agoThe ,.; line endings are a PITA when you refactor. I've heard them referred to as 'ant turd tokens'. It's a minor nitpick though, I still like Erlang a lot.