top | item 15798849

The Joy of Erlang; Or, How to Ride a Toruk (2011)

131 points| Tomte | 8 years ago |evanmiller.org | reply

44 comments

order
[+] rb808|8 years ago|reply
I followed a link to another post on the blog that was one of the best honest analyses of Erlang. I've been meaning to play with it a while, maybe these upcoming holidays. http://www.evanmiller.org/why-i-program-in-erlang.html

OTOH Kotlin is on that list too, its difficult to choose!

[+] snappyTertle|8 years ago|reply
Learning Erlang/Elixir is like learning a new paradigm, or a new way to think about programming. You can then apply these concepts to other languages. It's made me a better programmer.

Kotlin, IMO, is just a "better" java. It would be just learning new syntax if you are already familiar with java like languages.

[+] noncoml|8 years ago|reply
Erlang is wonderful. I highly recommend it. It's like discovering programming all over again.

The downsides are:

1. A somewhat flaky build tool(rebar3)

2. Not nearly as many libraries as Python/Java/Ruby/etc..

[+] njharman|8 years ago|reply
The language is not hard. What's needed is the OA kind of explanation to teach

  1. understanding the breadth (pitfalls, hidden gems, whats there) of the "std lib".
  2. the ErlangVM / runtime.
  3. Esp the OTP/whatever it's called.
  4. Erlang tooling how to build, test, deploy, redeploy a non trivial project.
[+] macintux|8 years ago|reply
It was quite disappointing when Evan stepped away from active Erlang involvement. Brilliant guy, good at teaching, writes great tools.
[+] vram22|8 years ago|reply
Evan writes posts about multiple languages, IIRC. I had seen his blog earlier and read a few posts about other languages.

Another blogger with an interesting blog, who writes about multiple languages, is Chris Double. His blog is https://bluishcoder.co.nz (Bluish Coder is an anagram of his name, IIRC). I recently saw a post on his blog called "Introduction to J." The post also has a short list of links for learning J.

jsoftware.com is the J site.

https://en.wikipedia.org/wiki/J_(programming_language)

J was developed by Kenneth Iverson, creator of APL.

[+] chops|8 years ago|reply
Indeed! Evan was a great member of the Erlang community. In addition to those qualities, he is just a very friendly and likable dude.
[+] Hupriene|8 years ago|reply
A question for any Erlang devs out there. For Erlang neophytes, what are the arguments for learning vanilla Erlang over one of the other ErlangVM languages?
[+] macintux|8 years ago|reply
The only other language that has any commercial acceptance is Elixir, so really it boils down to those two.

Elixir has more syntax to learn than Erlang. You could learn just about everything there is to know about Erlang syntax in a half hour, with the exception of a few advanced features like list comprehensions.

Elixir's syntax is much more familiar to most developers. Most consider this a good thing; I'm biased because Erlang's unusual syntax helps me think differently. If I write something that looks like Ruby, I tend to think like Ruby.

Knowing Erlang can only help with Elixir, but it's not necessary. There are probably more jobs with Elixir these days, which is a good thing. I guess I'm not really helping, so I'll shut up.

[+] rdtsc|8 years ago|reply
Erlang is simpler, there are less syntactic constructs to learn, has more information and learning resources available probably due to its age (30+ years),maybe more tools and libraries, that also means more example to look at. It is also the default language the VM is written for. So you can track and follow the latest changes as they are released.

However if you come from Rails or want to do mostly web development, then Phoenix is a nice framework, so maybe a good place to start. Also Elixir has a very friendlier community for newcomers perhaps, kudos to Jose and team there, they went above and beyond to make that happen.

All in all, there is a huge overlap. Some of the harder or more interesting concepts - functional programming aspect, using light-weight processes with isolated heaps for concurrency, performance evaluation and debugging will be the same. It is not like if you pick Erlang or Elixir you'll be wasting time and going in a separate direction, they share a lot of common concepts, and could transition easier if you need to between them in the future.

[+] dozzie|8 years ago|reply
"Over one of the other" practically means "over Elixir".

Erlang as a language is very simple, without any magic that Elixir has with its marcos. And there's the tooling aspect: you're not detached from the VM and its mechanisms, so if anything breaks (and something will break sooner or later), you have a chance to know where to hit with a hammer.

[+] rkangel|8 years ago|reply
Not a serious Erlang dev, but:

The underlying libraries you'll use - gen_server, supervision trees etc are all obviously written in Erlang. It may aid in understanding of them. In practice though something like Elixir provides a superset of the functionality of Erlang. If you learn Elixir, learning to read Erlang is not very difficult.

[+] Buttes|8 years ago|reply
It's like how you kinda need to know js to do anything with coffeescript. The fastest way to learn Elixir is to learn Erlang first.

You will be dealing with Erlang data structures (sans syntax sugar), the Erlang stdlib (Elixir doesn't wrap everything) and Erlang libraries to accomplish anything substantial. Sooner or later you'll have to grok Erlang.

[+] StreamBright|8 years ago|reply
My problem is not that which ErlangVM language to learn but more like how to work with OTP. Most of my Erlang projects are not OTP which is a heretic move according to Erlang devs.
[+] _m8fo|8 years ago|reply
Erlang's syntax is a bit more obscure than other languages that are on BEAM. That being said, there's little reason to learn Erlang directly. It's better to learn OTP and Elixir and Erlang as you need it (e.g. libraries not available in Elixir).
[+] dudul|8 years ago|reply
To piggyback on this question: regardless of the merits of each language, do people think that in terms of enterprise adoption and job opportunity Elixir is more interesting than Erlang at this point?
[+] innocentoldguy|8 years ago|reply
I haven't used Erlang since 16 (maybe 17), but the two features that attracted me to Elixir were support for UTF-8 strings and macros. Erlang may have both now—I'm not sure—but doing localization in Elixir was a lot easier than it was in Erlang back in the day.

I would recommend learning both Erlang and Elixir. They're both amazing languages, I think, and your Erlang skills transfer nicely into Elixir, since you can call any Erlang function from within Elixir code.

[+] toast0|8 years ago|reply
If you're the type that looks into sources of libraries when you have questions/problems, learning erlang will be helpful -- most of OTP (basically the standard library) is written in erlang itself, so it's useful to know that. (There's some amount of C code in OTP, but not too much.