news.volyx.in

Erlang's not about lightweight processes and message passing (github.com)

543 points by stevan · 1316 days ago · 274 comments on HN

Article summary

The article discusses the concept of Erlang and its underlying principles, arguing that the language is not just about lightweight processes and message passing, but rather about generic components called behaviours. These behaviours provide a way to build reliable distributed systems by abstracting away concurrency and error handling. The article also explores the history of Erlang and its development at Ericsson. The author highlights the importance of behaviours in Erlang, citing Joe Armstrong's thesis as a key insight into the language's design.

Main themes

  • Erlang and its principles
  • Concurrency and error handling
  • Distributed systems
  • Language design and trade-offs
  • State handling and management
  • Performance and scalability

What commenters say

  • Erlang's unique approach to concurrency and error handling makes it well-suited for building reliable distributed systems.
  • Other languages, such as Rust and Go, have made significant progress in concurrency and error handling, reducing the advantages of Erlang.
  • The industry has caught up with Erlang's concepts, making its advantages less significant over time.
  • Erlang's high-level abstractions allow developers to focus on system design without worrying about low-level details.
  • State handling in most programming languages is pathological, and Erlang presents a different solution to this problem.
  • Keeping applications stateless is not solely due to the difficulties of state handling, but also due to other factors such as performance and scalability.
  • Erlang's performance is not acceptable for certain use cases, such as game development, due to its high-level abstractions and concurrency model.