Live data from Hacker News

Ask HN: Is Erlang an albatross to Elixir adoption?

news.ycombinator.com

61–70 of 109 posts

Re: Ask HN: Is Erlang an albatross to Elixir adoption?

#61
I've used Elixir in production since 2016 and I have only had to deeply introspect erlang code exactly once, when I had to implement OIDC using Ueberauth and it used the underlying oidcc erlang library (which was extremely cryptic and wasted days of my life with absolutely useless error messages).

And then I remembered why erlang never picked up. It was a huge pain in the butt to try to read the erlang. Didn't like it at all.

Apart from that, we've done tons and tons of work in elixir and never had to touch Erlang, and for that I'm eternally grateful.

Re: Ask HN: Is Erlang an albatross to Elixir adoption?

#63
I learned Elixir early on, and then had other tasks and languages I needed to devote my time to. So I haven't kept up with it. I remember though that learning Erlang first well (including how BEAM worked) was a huge help to me in learning Elixir. It lets you understand what is going on under the hood. That said, I've used the analogy of Elixir is to Erlang the way Java is to JVM byte code. That means you can master Elixir without ever coding Erlang, but I think you'll have a harder time of it.

Re: Ask HN: Is Erlang an albatross to Elixir adoption?

#65

Earlier quoted context omitted.

> I don't think it's "an albatross" but it's certainly not ideal. I find the whole framing problematic. To call the foundation that you are building on and that you seek to displace an albatross is missing the option that it could easily be seen as being the other way around.

> I find the whole framing problematic. To call the foundation that you are building on and that you seek to displace an albatross is missing the option that it could easily be seen as being the other way around. well of course, if you're coming from an Erlang perspective, Elixir is a language that solved/solves a problem that doesn't exist. This is a valid view, but OP's thread is specifically asking as an Elixir de…

Except nobody is asking how to do anything, so every answer is equally unproductive.

Re: Ask HN: Is Erlang an albatross to Elixir adoption?

#66
Perhaps.

My parallel example would be the Play Framework. Play 1.x was written in Java, but supported both Java and Scala, and was fantastic, easy to use and one of the most productive and performant full-stack framework for web development.

Then, they created Play 2.x, where the core was written in Scala and if I remember correctly even used Scala for its HTML template. Even though it supported Java, and obviously Scala, there was a definite drop in its usage and I believe it majorly impacted its adoption.

Personally I think if they'd stayed with the Play 1.x model, it would have been extremely successful.

Re: Ask HN: Is Erlang an albatross to Elixir adoption?

#68
post #22

Raw performance is the actual albatross. IMHO, the low raw performance of Erlang is what's holding it back from mass adoption. (Even marquee Erlang/Elixir users like Discord, still have to use Rust NIFs to overcome the slow Erlang runtime) People have a hard time understanding how Erlang can have such: high concurrency, low latency & tight standard deviations ... when people are just accustom to looking at raw perfor…

I am dubious it's the performance of Erlang that's the albatross, considering the performance of RabbitMQ messaging system and Process One's XMPP server ejabberd. However, at the end of the day Erlang is a VM language, so I'd think it's not going to be as fast in many cases as Rust. Performance in a distributed system is good, because of the design, but that's still not the #1 priority of Erlang. I think Erlang's #1 priority is robustness.

Then what is the albatross?

I think it is complexity. Erlang, and OTP, is not simple to understand. There are a lot of footguns. It is beautifully designed and fit for purpose, given it's history and heritage. However, the learning time for creating a real app in Erlang is high. To flip it around, I think the reason Ruby caught on so fast was that it was so easy to learn Rails and create a web app with it.

You could perhaps convert Elixir to be based on top of Rust, but there are many concepts that don't map, or don't map well.

Re: Ask HN: Is Erlang an albatross to Elixir adoption?

#69

> What about people who've tried elixir and moved on? I've tried it three times and it offered me nothing Erlang didn't. Erlang, on the other hand, offers me much that Elixir does not. In truth, I've never met anyone who likes Elixir except people who were already Ruby programmers. What's particularly weird is your attempt to dig at the Erlang docs. They're extracted the exact same way the Elixir ones are; it's just…

> In truth, I've never met anyone who likes Elixir except people who were already Ruby programmers.

This was the purpose of the language (or if not an explicit purpose, the primary effect.) Elixir created an environment that attracted Rails people (and other people repulsed by languages that don't look like C/Algol), and behind the Rails people (Rails been long established as a safe choice but aging and scaling badly) comes management of safe companies and consultancies, and with that comes a sure way of making a living for people who love Erlang and are willing to play the Elixir game.

Elixir is the same as Erlang, except with bad syntax and loaded with various ways to make your programs indecipherable, and with a cleaned up standard library and lots of nice little affordances/templates to help with processes and OTP. While Elixir (in my experience) takes a lot more debugging due to the weird javascripty syntax and pseudo-mutable variables, it's the same thing in my book (and the error messages are great.)

Happy to do the one that provides the most work, and thankful that they created it.

Re: Ask HN: Is Erlang an albatross to Elixir adoption?

#70
post #22

Raw performance is the actual albatross. IMHO, the low raw performance of Erlang is what's holding it back from mass adoption. (Even marquee Erlang/Elixir users like Discord, still have to use Rust NIFs to overcome the slow Erlang runtime) People have a hard time understanding how Erlang can have such: high concurrency, low latency & tight standard deviations ... when people are just accustom to looking at raw perfor…

Erlang excels at the 'hard' parts of the problem space having to do with complex distributed ultra reliable systems, the 'number crunching' bits are offloaded to specialist languages because the underlying language model that Erlang uses does not lend itself for the kind of optimization that JS, Go, PHP etc have available to them simply because their runtime model is so completely different. The biggest issue from wh…

> the 'number crunching' bits are offloaded to specialist languages because the underlying language model that Erlang uses does not lend itself for the kind of optimization that JS, Go, PHP etc have available to them simply because their runtime model is so completely different.

Yeah I love Erlang, but often reach for something else when I need to be able to express and optimize compute bound problems.

Post reply on HN