Hacker News new | past | comments | ask | show | jobs | submit login

> I know HN has a bit of a click-bait love relationship with Erlang/Elixir but it hasn't translated over to adoption and there are companies that are just burning money trying to do what you get out of the box for free with the Erlang stack.

Do you or the community have a sense why that is?




Elixir is "bad" because it is not a friendly language for people who want to be architecture astronauts at the code level (you can definitely be an architecture astronaut at the process management level but that's a very advanced concept). And a lot of CTOs are architecture astronauts.


That's the opposite of my experience. I tend to get those "architect astronauts" in teams using other languages platforms, and the folks I work with Erlang or Elixir tend to be pragmatic and willing to dig down the stack to troubleshoot problems.


That's what I wrote! (Read the first three words with a heap of sardonicism). Edited to add quotes around bad


Not just that, but there is no giant gorilla backing BEAM. Google pushes Go and Java, Microsoft node and c#


Apologies for my ignorance but what's an "architecture astronaut"?


Here's the original article: https://www.joelonsoftware.com/2001/04/21/dont-let-architect...

> When you go too far up, abstraction-wise, you run out of oxygen. Sometimes smart thinkers just don’t know when to stop, and they create these absurd, all-encompassing, high-level pictures of the universe that are all good and fine, but don’t actually mean anything at all.

> These are the people I call Architecture Astronauts. It’s very hard to get them to write code or design programs, because they won’t stop thinking about Architecture. They’re astronauts because they are above the oxygen level, I don’t know how they’re breathing. They tend to work for really big companies that can afford to have lots of unproductive people with really advanced degrees that don’t contribute to the bottom line.


Joel was wrong about one thing, they also work at startups. My roommate worked at a startup where the senior frontend developer was basically building react in svelte + zod. Once a week he would see all his work deleted and completely rewritten in a fever dream PR that the senior produced. Completely impossible for grug developer to follow what's going on, his job eventually became "running this guy's code through chatgpt and adding comments and documentation".


My personal opinion as a fan and adopter of the stack is that the benefit is often seen down the line, with the upfront adoption cost being roughly the same.

E.g. the built in telemetry system is fantastic, but when you are first adopting the stack it still takes a day or two to read the docs and get events flowing into - say - DataDog, which is roughly the same amount of time as basically every other solution.

The benefit of Elixir here is that the telemetry stack is very standardized across Elixir projects and libraries, and there are fewer moving pieces - no extra microservices or docker containers to ship with everything else. But that benefit comes 2 years down the line when you need to change the telemetry system.


These incremental benefits don't translate to an order of magnitude more productivity, or stability, or profitability. Given the choice, as a business owner, future proofing is about being able to draw from the most plentiful and cheapest pool of workers. The sausage all looks the same on the outside.


That is not true, especially with Section 174 (for the US). Right now, if you want to hire an Elixir engineer, you're better off finding a generalist willing to learn and use Elixir, and you would probably get someone who is very capable.

With Section 174 in play in the US, it tends to drive companies hiring specialists and attempting to use AI for the rest of it.

My own experience is that ... I don't really want to draw from the most plentiful and cheapest pool of workers. I've seen the kind of tech that produces. You basically have a small handful of software engineers carrying the rest.

Elixir itself is a kind of secret, unfair advantage for tech startups that uses it.


>you're better off finding a generalist willing to learn and use Elixir, and you would probably get someone who is very capable.

This is a thing I really don't get. People are like "but what about the hiring pool". A competent software engineer will learn your stack. It's not that hard to switch languages. Except maybe going from Python to C++.


I'm biased, because I worked at WhatsApp, but it may be one of the most famous users of Erlang... and from its start until when I left (late 2019) I think we only hired three people with Erlang experience. Everyone else who worked in Erlang learned on the job.

We seemed to do pretty well, although some of our code/setup wasn't very idiomatic (for example, I'm pretty sure we didn't use the Erlang release feature properly at all)


After you've done releases a few times, it ends up being quite easy. The biggest issues I had was complete release (aka erlang itself) updates.

Admittedly, I didn't have a whole company core product riding on my upgrades.


We just pushed code, compiled, and hotloaded... Pretty much ignoring the release files; we had them, but I think the contents weren't correct and we never changed the release numbers, etc.

For otp updates, we would shutdown beam in an orderly fashion, replace the files, and start again. (Potentially installing the new one before shutting down, I can't remember).

Post facebook, more of boring OS packages and slow rollouts than hotloading.


Thank you for providing the information, its always good to see how others were rolling out updates.


For a lot of people learning a new stack is a big perk to switching jobs.


There's no killer app, as in a reason to add it to your tech stack.

The closest I've come across was trying to maintain an ejabberd cluster and add some custom extensions.

Between mnesia and the learning curve of the language itself, it was not fun.

There are also no popular syntax-alikes. There is no massive corporation pushing Erlang either directly or indirectly through success. Supposedly Erlang breeds success but it's referred to as a "secret" weapon because no one big is pushing it.

Erlang seems neat but it feels like you need to take a leap of faith and businesses are risk averse.


> There is no massive corporation pushing Erlang either directly or indirectly through success.

Isn't there this "small" company that has a chat app that is using erlang :P


Well jayd did the same thing as that small company (which I joined in 2011 when it was small and left in 2019 when it was not so small), run ejabberd to solve a problem. In our case, Erlang subsumed pretty much the rest of our service over time. When I started, chat was Erlang, but status messages, registration, and contacts were PHP with MySQL, media was PHP (with no database), but those all got sucked into Erlang with mnesia because it was better for us.

But I guess it doesn't always work that way. FB chat was built on ejabberd and then migrated away.


Erlang looks weird--Prolog-base, tail recursive loops, extensive pattern matching.

Also, a lot of the power of Erlang is the OTP (Open Telecom Platform) even more than Erlang, itself. You have to internalize those architectural decisions (expect crashes--do fast restart) to get the full power of Erlang.

Elixir seems like it has been finding more traction by looking more like mainstream languages. In addition, languages on the BEAM (like Elixir) made the BEAM much better documented, understood and portable.


Eventually, you use Elixir enough, and Erlang starts looking pretty.


My line is, the three things Elixir has over Erlang is protocols, macros, and a syntax that doesn't summon Cthulhu.


Are you really programming if the constant threat of the old one isnt looming just beyond your vision ?


Anyway, the options seem to be either summoning transcendent threats by superficial syntax or by well entrenched semantics. There seems to be no other choice.


What are your thoughts on gleam?


Well, if we're talking medium-size companies - hard to bring any new language.

If we're talking pure modern-tech company - good luck bringing anything other than JS because "more developers == more growth" mentality.

So it's either end up being used where decision makers know/want-to-learn Erlang/Elixir or when all other possiblity was exhausted.




Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: