
The Joy of Erlang; Or, How to Ride a Toruk (2011) - Tomte
http://www.evanmiller.org/joy-of-erlang.html
======
rb808
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](http://www.evanmiller.org/why-i-program-in-erlang.html)

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

~~~
snappyTertle
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.

~~~
rdtsc
> Learning Erlang/Elixir is like learning a new paradigm, or a new way to
> think about programming.

Agreed. It taught me three things primarily, both can be applied to other
areas / languages:

1) Importance of fault tolerance (especially applied to distributed system).
That is, trying to build a system out of small isolated components that talk
to each other, and each can fail independently and be restarted safely. Did
anyone say micro-services? Nah, the new rage is nano-services (stolen from
here [http://blog.plataformatec.com.br/2015/06/elixir-in-times-
of-...](http://blog.plataformatec.com.br/2015/06/elixir-in-times-of-
microservices/)). But there is no need to get all fancy, this also can be done
with plain old forking OS processes. The important bit is that the memory has
to be separate, either on different machines, OS processes, or in different
heaps like BEAM VM does it. So threads, or greenlet or goroutines don't quite
fit the bill here. (Thought if Rust's compiler can decide that memory will
never be shared at compile time, it's also good enough).

2) Importance of functional programming. Passing state explicitly and dealing
with immutable data ensures that there is less chance of confusion and it's
also easier to figure out what is happening. Also easier to write tests, as
there is less a need to mock everything.

3) Importance of hot code loading and traceability in production systems. Many
of the platforms and languages offer some form of hot code loading and ability
to set traces on functions and methods. But with BEAM languages it's all built
in, integrated and it's a first class feature. This makes a difference in
production, can update code with extra logging if there is a bug experience by
only one particular customer and reproducing it is hard, or can patch a
critical running system without taking it down.

------
njharman
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
Re #2 in particular, Ferd assembled a great resource:

[http://www.erlang-in-anger.com](http://www.erlang-in-anger.com)

------
macintux
It was quite disappointing when Evan stepped away from active Erlang
involvement. Brilliant guy, good at teaching, writes great tools.

~~~
vram22
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](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)](https://en.wikipedia.org/wiki/J_\(programming_language\))

J was developed by Kenneth Iverson, creator of APL.

~~~
macintux
He does write about a lot of topics, but he's stated he's not going to be
doing anything with Erlang.

[http://erlang.org/pipermail/erlang-
questions/2014-January/07...](http://erlang.org/pipermail/erlang-
questions/2014-January/076422.html)

~~~
rb808
from
[https://groups.google.com/forum/#!topic/chicagoboss/ekU5gZ_T...](https://groups.google.com/forum/#!topic/chicagoboss/ekU5gZ_Ty2o)
:

> And now, the bad news: it's been a fun ride, but I am planning to retire
> from Erlang and Chicago Boss. But don't cry for me: I've been having success
> with my desktop software business (wizardmac.com) and realized that going
> forward I will no longer have the time to dedicate to both CB and Wizard.
> (Incidentally I also left grad school a couple months ago to focus on
> Wizard.) Finished software products require a ton of focus and work, and I
> just don't have the mental capacity to manage two projects at once. I wish
> there were more hours in the day!

------
Hupriene
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?

~~~
dudul
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?

~~~
macintux
When I think "enterprise" I think large companies, and in that regard I think
the answer is less clear.

For smaller, more agile shops I'm sure there's more Elixir adoption as people
look for alternatives to Ruby.

I've never seen any job statistics, nor do I have any useful anecdata.

~~~
di4na
We are definitely "entreprise" (1k5 employees, FTSE 250) and all new devs are
in Elixir. Coming from mainly php.

But it is also following a strategic turn and an organisational change.

Toyota, Comcast, Sky, Adobe,Square Enix are the first "entreprise" names that
come to my mind for elixir

~~~
willyk
Out of curiosity sake, Do you mind sharing what UK company you're with?

~~~
di4na
Ascential plc

