Erlang/OTP
Hacker ApprovedRanked 19 of 163 programming languages by recommenders
Recommended for its built-in actor-model concurrency, fault tolerance and the batteries-included OTP library for distributed systems, though critics cite weak raw performance and odd syntax.
Recommended for its built-in actor-model concurrency, fault tolerance and the batteries-included OTP library for distributed systems, though critics cite weak raw performance and odd syntax.
233 people gave an opinion
- recommend it
- 193
- criticize it
- 40
- approval share
- 83%
Recommended in 12 of 13 months
- November 2025: recommended
- December 2025: recommended
- January 2026: recommended
- February 2026: recommended
- March 2026: recommended
- April 2026: recommended
- May 2026: recommended
- June 2026: recommended
- July 2026: recommended
- August 2026: recommended
- September 2026: recommended
- October 2026: recommended
- November 2026: not recommended (month in progress)
Owned for 9 years
Median of the 9 owners who said how long they have had it.
Each square is one year.
Why it carries the badge
- 193 people recommend itNeeds 10 or more, met.
- 4.8 recommenders for every criticNeeds 2 to 1 or better, met.
- Recommended in 12 of 13 monthsNeeds 4 or more, met.
The same three rules apply to every product, and the badge can’t be bought. How the badge works
What people say about it
The reasons people give, with the number of comments that give each one. Open a reason to read what they said.
Why people recommend it
Each mark is one comment
First-class share-nothing concurrency
“Any sufficiently complicated concurrent program in another language contains an ad hoc informally-specified bug-ridden slow implementation of half of Erlang.”
Comment from 15 Apr 2026 in “Do You Even Need a Database?” “If you're looking for a language that makes "sharing by communicating" the default for almost every kind of use case, that's Erlang.”
Comment from 26 Nov 2025 in “A million ways to die from a data race in Go” “When you send a message in Erlang, nothing the recipient does with the message impacts anything on the sender side. That's good!”
Comment from 15 Sep 2026 in “Principles for Fast Tokio Applications” - Comment from 21 Mar 2026 in “OpenCode – The open source AI coding agent”
- Comment from 3 Jun 2026 in “My thoughts after using Clojure for about a month”
- Comment from 5 Mar 2026 in “What Python's asyncio primitives get wrong about shared state”
- Comment from 13 Mar 2026 in “You hired the AI to write the tests. Of course they pass”
Fault tolerant and reliable
“In terms of ops usability, it's difficult to beat reliability, availability, and serviceability (RAS) features of mainframes. Erlang/OTP comes close.”
Comment from 13 Dec 2025 in “We Lost Something: 1970s REPLs Were Better Than Modern Development Environments” “The language has extremely robust recovery mechanisms, having been designed for flaky telecommunications infrastructure.”
Comment from 15 Feb 2026 in “What Functional Programmers Get Wrong About Systems” “the Erlang platform gives you so many guarantees that even if you somehow make a mistake, it is never catastrophic”
Comment from 4 Jun 2026 in “Elixir v1.20 released: now a gradually typed language” - Comment from 14 Mar 2026 in “The Isolation Trap: Erlang”
- Comment from 4 Jun 2026 in “Elixir v1.20 released: now a gradually typed language”
Easy distributed, multi-node systems
“if you want to learn distributed systems stuff, two Erlang BEAM processes on virtually any general purpose computer are more than enough”
Comment from 23 Jan 2026 in “Setting Up a Cluster of Tiny PCs for Parallel Computing” “I have found the real value of Erlang to be internally between trusted nodes of my own physical infrastructure”
Comment from 11 Nov 2025 in “How I fell in love with Erlang” “If you really know you can't scale with just a big box from the outset use something like Elixir or Erlang”
Comment from 31 Aug 2026 in “Startup Anti-Patterns” - Comment from 11 Nov 2025 in “How I fell in love with Erlang”
- Comment from 28 Dec 2025 in “We "solved" C10K years ago yet we keep reinventing it”
OTP features out of box
“you are going to find it hard to get to the same level of feature completeness that Erlang offers out of the box”
Comment from 11 Nov 2025 in “How I fell in love with Erlang” “I was so annoyed when I found out the OTP library and realized we've been reinventing things for 20+ years”
Comment from 25 Nov 2025 in “Trillions spent and big software projects are still failing” “doing powerful things in Erlang/Elixir is trivial where it would be really convoluted in other languages”
Comment from 11 Nov 2025 in “How I fell in love with Erlang”
What people warn about
Each mark is one comment
Slow for raw performance work
“Erlang's VM is actually surprisingly slow, and in the era of c10k it was still using select/poll”
Comment from 29 Dec 2025 in “We "solved" C10K years ago yet we keep reinventing it” “Erlang's said to be a pretty bad fit for -say- 3D video games that require high raw performance.”
Comment from 13 Nov 2025 in “How I fell in love with Erlang” “they also had a historically bad performance story due to misjudgments in development direction”
Comment from 27 Sep 2026 in “Go Concurrency Distilled” Inconsistent naming and layered complexity
“They just added shit to it as they needed it without apparently putting too much consideration into the organization, naming, or conventions.”
Comment from 11 Nov 2025 in “How I fell in love with Erlang” “Most of it fits into the 'as simple as possible' mold, although there's some places where the use case is complex and it shows in the code”
Comment from 11 Nov 2025 in “How I fell in love with Erlang” “I think the problem is that there is Erlang, the syntax, then Erlang, the features, and then there's OTP.”
Comment from 14 Jan 2026 in “The Gleam Programming Language” Concurrency model has its own pitfalls
“Erlang does make some failure modes less nasty. It also hides latency debt well enough that people thinks the model saved them”
Comment from 14 Mar 2026 in “The Isolation Trap: Erlang” “copying everything which, while improving memory safety by a huge margin, introduced (a) various GC footguns”
Comment from 3 Jun 2026 in “My thoughts after using Clojure for about a month” “Erlang somewhat fixes this with 'selective receive' which re-introduces the possibility of deadlocks.”
Comment from 6 May 2026 in “Behavior-Oriented Concurrency for Python” - Comment from 17 Oct 2026 in “Intuitive concurrent programming in any language”
Niche, hard to adopt
“It's the converse that's an issue. If your org doesn't use any Erlang. You're not going to be able to add it.”
Comment from 2 Mar 2026 in “Process-Based Concurrency: Why Beam and OTP Keep Being Right” “a niche purely functional language with a weird-ass syntax that is challenging to transition to”
Comment from 7 Nov 2025 in “Ask HN: What's the Deal with XMPP”
Other programming languages people recommend
The four most recommended other programming languages, with the same counts for each, so you can compare like for like. The tick on each bar marks the 2 to 1 line the badge needs.
See all 163 programming languages, rankedWhat people said
40 of the 332 comments that mention it, newest first. Each links to the original comment.
“Where Erlang, to stick to your question, can be non-deterministic (without taking special care).”
“they also had a historically bad performance story due to misjudgments in development direction”
“When you send a message in Erlang, nothing the recipient does with the message impacts anything on the sender side. That's good!”
“If you really know you can't scale with just a big box from the outset use something like Elixir or Erlang”
“the guarantees offered by OTP and its actor model are much more important than compile-time type checking”
“the Erlang platform gives you so many guarantees that even if you somehow make a mistake, it is never catastrophic”
“copying everything which, while improving memory safety by a huge margin, introduced (a) various GC footguns”
“Thousands of share-nothing actors (fibers / green-threads) with first-class support for communication between them”
“Erlang somewhat fixes this with 'selective receive' which re-introduces the possibility of deadlocks.”
“Python already had threads - and had the examples of Go and Erlang to show how well then worked compared to async / await.”
“Any sufficiently complicated concurrent program in another language contains an ad hoc informally-specified bug-ridden slow implementation of half of Erlang.”
“it does feel like it could be a natural fit for its own operating system without having to live on top of Linux”
“Erlang would offer similar benefits, because what we're doing with these things is more message passing than processing.”
“Erlang does make some failure modes less nasty. It also hides latency debt well enough that people thinks the model saved them”
“I'd still rather be writing this system in erlang than in another language, where the footguns are bigger.”
“A GenServer processes messages sequentially from its mailbox — mutual exclusion is the execution model”
“Erlang is a concurrent language at the core; everything else is just a poor imitation implemented in libraries.”
“It's the converse that's an issue. If your org doesn't use any Erlang. You're not going to be able to add it.”
“the fact you can just attach a console to a running system and inspect processes' states makes it much easier to debug”
“The language has extremely robust recovery mechanisms, having been designed for flaky telecommunications infrastructure.”
“if you want to learn distributed systems stuff, two Erlang BEAM processes on virtually any general purpose computer are more than enough”
“I think the problem is that there is Erlang, the syntax, then Erlang, the features, and then there's OTP.”
“Erlang's VM is actually surprisingly slow, and in the era of c10k it was still using select/poll”
“A small cluster running erlang is probably better than a tiny number of finely tuned race-car boxen.”
“In terms of ops usability, it's difficult to beat reliability, availability, and serviceability (RAS) features of mainframes. Erlang/OTP comes close.”
“maintainability which I've found to be excellent for anything I ever did in Erlang, probably better than any other language I've used”
“If you're looking for a language that makes "sharing by communicating" the default for almost every kind of use case, that's Erlang.”
“I was so annoyed when I found out the OTP library and realized we've been reinventing things for 20+ years”
“Erlang's said to be a pretty bad fit for -say- 3D video games that require high raw performance.”
“doing powerful things in Erlang/Elixir is trivial where it would be really convoluted in other languages”
“It's too easy to hot-patch a live system during firefighting and then forget to retrofit the fix to the source repo.”
“I have found the real value of Erlang to be internally between trusted nodes of my own physical infrastructure”
“Most of it fits into the 'as simple as possible' mold, although there's some places where the use case is complex and it shows in the code”
“Erlang therefore misses the "benefits" of operating on a higher ISO layer, but gains powerful advantages of operating on layer 4”
“They just added shit to it as they needed it without apparently putting too much consideration into the organization, naming, or conventions.”
“you are going to find it hard to get to the same level of feature completeness that Erlang offers out of the box”
“Two separate Erlang nodes. On different machines, different networks, different continents if I wanted.”
“a niche purely functional language with a weird-ass syntax that is challenging to transition to”
“Erlang is very math-notation-y and when I introduced people to some Erlang code I'd written they understood it”
“The point of Erlang/Elixir is that it is as performant as possible, and Erlang's history is a testament to this.”
Counts come from 1,795,640 Hacker News comments, November 2025 to November 2026. How we count. Report a mistake.