Why The Cool Kids Don't Use Erlang

This topic has been discussed by Garrett Smith in 2014. Well, it’s 2021, where are we now?

:slight_smile:

2 Likes

Because they don’t know what they are missing, and how much it is actually used in the real world. There are a lot of users of WhatsApp, Cisco routers, Rabbit MQ, Klarna, Bet365, Ericsson, … And these are things you just accept are there and don’t think about.

6 Likes

Woah, woah, woah. Aren’t we the cool kids?

A story: Years ago I was hired to develop a proof of concept for an application that had to spin up a lot (read: thousands) of concurrent Docker containers and keep track of their return values when they exited. Plunked out a hundred lines of Erlang, saw concurrency limited only by VM memory, and called it a day. The company receiving the code looked at it, accepted it, and then rewrote the functionality in Node since that was the Flavor of the Day. The best they could manage was single digit concurrency. The engineers knew what was what but the so-called architecture team “couldn’t allow” Erlang because it was “too old.” So there’s that.

(As a side note: It’s a great talk.)

7 Likes

Great thread @yao!

As Robert mentioned (and as demonstrated by Bunny^^) Erlang has so many of the attributes that would make it appealing to such a crowd - particularly the almost insane power it affords you. However, the thing I think it is missing is a gateway that appeals to some of these more mainstream ‘crowds’, specifically one that makes using or getting into Erlang easier.

Elixir has done really well here with two main things, a familiar/easy (and much loved) Ruby type syntax, and a strong framework (Phoenix) that takes many of the best ideas of industry standard frameworks (like Rails) and adds even more to them. The syntax makes Elixir more accessible, and the frameworks makes it easier to get into the language - because it gives you a good viable reason to use it. Obviously this is simplification but you get the idea - it’s great having an awesome language, but it’s greater having an awesome language -and- making it easy to get into and use.

This is also one of the reasons why I think better BEAM interop would be awesome - Erlang (/all BEAM languages) could benefit from the strengths of each language, and this could lead to an explosion of potential users which would benefit all BEAM languages.

Btw, you might also like this:

(Warning: contains some swearing!)

I love that video, however for me it only really made sense after learning about the underlying benefits of Erlang/OTP… so we may need to do more to bridge that gap…

6 Likes

Yeah, it’s pretty cool…

2 Likes

Good lord. We need the shiniest thing ever because that is the best. I hate into what IT has turned.

2 Likes

Yes, as Garrett said, people like official/centralized things, no matter how good/bad those things are. Well, centralized things got its unique benefits, which is, easy to manage (by human).

Unfortunately, Erlang has its life started with a decentralized environment, and this is a big hurdle.

The popularity of Elixir gave us a great example about how to do it.

Maybe we need some official things? (By the way, if we do that, can we scale them?)

From the result of Garrett’s video, we might need:

  • officially supported text/code editor
  • officially supported building tool
  • officially supported package manager
  • officially supported package repository
  • officially supported (suggested, tier 1, something like that) operating system/platform
  • officially supported web framework (we need a client, but the web is the “client” now…)

Maybe some other “official” things are needed as well, depends on what kind of applications are popular/easy to get a job nowadays.

By the way, I think another reason why Erlang is not popular (in general), is that, only a few company/project needs to consider massive scale (which Erlang excels at I think).

But things become different in recent years because the arises of IoT (internet of things).

5 Likes

They don’t care about best things, what they really care about is how to make a lot of money.

:slight_smile:

3 Likes

Also, Erlang, or better, its ideas and implementation are more widely used than some might know too. A good example is the recent Swift on Server initiatives like Swift.org - Introducing Swift Distributed Actors

3 Likes

Lol, nice anecdote. We see it the other way around. Old = proven in use (no joke).

3 Likes

COBOL is even older, however no one I know like it. So old by itself is not good enough. One technology needs to be old and thriving, such as in the case of Erlang.

2 Likes

Well, yeah. That was implicit

2 Likes

It’s the Bananarama of languages

Now that’s the way to sell it to the masses :smiley:

2 Likes

Do you happen to know what router platforms at Cisco use Erlang? I was aware of their NSO product. I first heard about Erlang from Carl Moberg at Tail-f when I asked him what they wrote NCS in. That was the first I’d ever heard of it, so we can blame him for my initial interest.

But I’m especially interested to find out how they might be using it in routers. I hadn’t heard about that until recently.

3 Likes