The Erlang landscape - how would you explain it to a newbie?

Grasping the Erlang landscape can be confusing for newcomers, so if someone new was coming to Erlang how would you explain the various aspects of it?

Things to include might be:

  • Erlang
  • The Erlang VM
  • OTP
  • BEAM languages

…and anything else you think might be worth mentioning to them.

1 Like

This is an intro I’ve used before:

Erlang is a programming language used to build massively scalable soft real-time systems with requirements on high availability. Some of its uses are in telecoms, banking, e-commerce, computer telephony and instant messaging. Erlang’s runtime system has built-in support for concurrency, distribution and fault tolerance.

OTP is set of Erlang libraries and design principles providing middle-ware to develop these systems. It includes its own distributed database, applications to interface towards other languages, debugging and release handling tools.

“Many alternative technologies that people use for solving these type of problems, they come short in several different areas. They’re much less efficient for solving problems in this domain. People might choose to implement things in lower level languages like C++ where they have more optimisation opportunities, but then they have to implement half of Erlang by themselves, or some of the scripting languages which may offer more rapid development or prototyping, they wouldn’t be able to scale the system. Especially while keeping it reliable.” – Anton Lavrik, WhatsApp.

“Any sufficiently complicated concurrent program in another language contains an ad hoc informally-specified bug-ridden slow implementation of half of Erlang.” – Robert Virding, co-inventor of Elrang.