

The Future of Riak at RICON East - tsantero
http://ricon.io/blog/2013-03-25-the-future-of-riak-at-ricon-east.html

======
marshray
(I don't see any discussion here to derail yet, so I hope you won't mind my
(related) open-ended question.)

I think we all agree that Riak is really really cool. It inspired me to start
looking into Erlang again, as it seems to be the native language for working
with Riak.

Every time I start wading into learning Erlang I start wondering if it's the
greatest thing ever, a great leap forwards, or merely some modest improvements
backed with years of professional tuning to the needs of a telephone company.

Any thoughts from someone with lots of real experience with Erlang (as well as
its alternatives)?

~~~
sasa555
I have more than 10 years of professional experience using C++, C# and Ruby to
develop "classical" business web and desktop apps.

I started using Erlang two years ago to implement a push server, and fell in
love with it immediately. The language has its quirks, but the virtual machine
is fantastic, and it really makes it easier to manage massive concurrency,
which is almost always the case on the server side.

If you find the language too strange, you should also check Elixir, a Ruby
flavored language which compiles to the Erlang bytecode and can normally
cooperate with other Erlang code. Starting this year, I am adding new feature
for my Erlang based system using Elixir as much as possible. At the moment,
you should really be familiar with Erlang to be able to fully understand and
utilise Elixir.

Other alternatives to Erlang would be Go, Scala/Akka, or reactor based
platforms such as node.js or EventMachine. Also, probably Haskell and Clojure,
but I'm not really familiar with those. Personally, I find them all to be
inferior to Erlang VM, although Go and especially Scala/Akka are really close.
I wouldn't recommend reactors despite my great affection for both Ruby and
Javascript.

Some detailed ramblings on what I really love about Erlang can be found on my
blog: [http://www.theerlangelist.com/2012/12/yet-another-
introducti...](http://www.theerlangelist.com/2012/12/yet-another-introduction-
to-erlang.html)

[http://www.theerlangelist.com/2013/01/erlang-based-server-
sy...](http://www.theerlangelist.com/2013/01/erlang-based-server-systems.html)

~~~
marshray
Nice blog! Thank you for your reply. I have a similar background to yours and
a little familiarity with functional languages.

Erlang has been so mature for such a long time and has had so many
professional followers, it's curious why it's not ubiquitous. We often hear of
high scale projects like a Facebook or a Riak using it as a component. But
outside of Ericsson, almost never do we hear about Erlang/OTP being used as
the whole platform it was designed to be.

Instead we hear about server admins who actually prefer to maintain JVM-based
systems. I'd like to know if there's a real reason behind that, other than
popularity momentum.

~~~
sasa555
I guess JVM or .NET preference is often caused by inertia, ignorance or fear
of change.

In the company I used to work for, they had religious devotion to Microsoft.
Everything that didn't come from MS was frowned upon, not only open source or
competing closed source technologies, but also 3rd party .NET components/libs.

As far as Erlang is concerned it is somewhat exotic, so I can understand why
mainstream population won't pick it up. Not only is it functional language,
but it is Prolog based, so I see why that turns off most of the people.

Even my current boss, who is very open minded, objected when I introduced
Erlang, wondering who will maintain the code if I leave the company.

Nevertheless, Erlang has gathered some impressive references lately, not only
Ericsson, Riak or Facebook, but also WhatsApp, Chef, Heroku, Amazon SimpleDB,
Call of Duty, and so on.

For what it's worth, these days I would choose Erlang/Elixir combination for
almost anything server side.

