https://a.storyblok.com/f/270183/1368x665/fab21622a7/25jul_dev-blog_erlang-history.jpg

Eine (sehr) kurze Geschichte von Erlang

Zuletzt aktualisiert am July 24, 2025

Lesedauer: 4 Minuten

The Erlang LogoTrotz der Markteinführung im Jahr 1986 (nur zwei Jahre nach der Geburt Ihres Autors) geboren wurde), stieß ich nur auf Erlang erst im Jahr 2017. Als Webanwendungsentwickler kam ich in einem Szenario damit in Berührung, das für alle anderen wahrscheinlich auch gelten würde: RabbitMQ .. Zu diesem Zeitpunkt setzten wir RabbitMQ in einem Projekt ein, das einen besonders komplexen und zeitaufwändigen ETL-Prozess. Wir brauchten Geschwindigkeit, Gleichzeitigkeit und eine sichere Datensatzsperre. Später entdeckte ich, dass RabbitMQ dies erreichen konnte, weil es speziell für diese Anforderungen in Erlang geschrieben wurde.

Angesichts der Tatsache, dass es als das zweithöchste Durchschnittsgehalt im Jahr 2025 aufgeführt wirdWas genau ist es und welche spezifischen Anwendungsfälle gibt es?

Die Landschaft

Der Ausgangspunkt für jede Geschichte ist die Frage, wo die Lücke liegt. PHP entstand als Skripting-Tool zur dynamischen Erstellung von HTML-Seiten, JavaScript wurde als LiveScript entwickelt, um eine Laufzeit im Browser zu ermöglichen. Seit diesen Tagen im Jahr 1995 haben sich beide Sprachen aufgrund der Art ihrer Anforderungen bis zur Unkenntlichkeit weiterentwickelt. In ähnlicher Weise wurde Erlang speziell für die Kommunikation entwickelt. Zu diesem Zeitpunkt bestand in der Telekommunikation ein Bedarf an Code, der massive Skalierung, ultrahohe Gleichzeitigkeit und Echtzeitausführung bewältigen konnte. Die Geburtsstunde von Erlang war die Entwicklung des AXD301 ATM-Switch, entwickelt von Ericssonentwickelt wurde, der eine so genannte "Neun-Null"-Verfügbarkeit benötigt. Laienhaft ausgedrückt handelt es sich dabei um einen Hardware-Switch, dessen Software eine Verfügbarkeitsrate von 99,9999999 % erfordert. Eine solche Programmiersprache, die dies ermöglicht, gab es nicht.

Entwicklung

Erlang kam erst richtig in Schwung, als Ericsson beschloss, die Sprache Open Source im Dezember 1998. Die Sprache war da, und mit ihr kamen externe Projekte. Von diesem Zeitpunkt an entstanden allmählich Materialien, die die Verwendung dieser Sprache und ihre wichtigsten Anwendungsfälle darstellten.

"Lass es krachen"

Photograph of something on fireLet it burn!OK, hier ist ein neues Konzept für Sie: Sie werden ermutigt, Prozesse scheitern zu lassen. Ich komme aus einem Land, in dem die defensive Programmierung für die Erstellung von Anwendungen absolut unerlässlich ist. An diesem Punkt "verstehe ich es", denn Erlang ist nicht als klassische serverbasierte Backend-Sprache konzipiert. Der Grund, warum sie für Abstürze akzeptabel ist, liegt darin, dass Entwickler ermutigt werden, Code in kleinen Stücken zu schreiben, die alle isoliert ausgeführt werden können. Die Anwendung sollte von Supervisor-Systemen ausgeführt werden, die dann nach abgestürzten Threads oder Prozessen suchen, die dann neu gebootet werden. Diese Philosophie führt zu einer hohen Verfügbarkeit: Es spielt keine Rolle, wenn eine Nutzlast nicht abgeschlossen wird, sondern nur, dass die notwendigen Daten irgendwann übertragen werden. Aus diesem Grund ist Erlang in den vertikalen Kommunikationsmärkten so weit verbreitet: Die Ausfallsicherheit, die es schafft, ist der Grund, warum RabbitMQ, ein Messaging-Client, in Erlang geschrieben ist. Das erklärt auch erklärt auch, warum Meta's WhatsApp in Erlang geschrieben istoder warum die beliebte Messaging-App Discord in Elixir geschrieben ist (ein leicht modifiziertes Erlang, das immer noch in der BEAM-VM läuft), und warum ich bereits ein gewisses Hintergrundwissen über die Anwendungsfälle von Erlang hatte, da Vonage eine Kommunikationsplattform-as-a-Service (CPaaS) ist.

Gleichzeitigkeit

Wie kann es dieses Maß an Gleichzeitigkeit bewältigen? Traditionelle Webanwendungsentwickler haben vielleicht schon Async/Promise-Systeme kennengelernt, wie zum Beispiel in C# oder das Single-Threaded Node.js. So funktioniert Erlang nicht: Anstelle von Betriebssystem-Threads gibt es eine eigene VM namens BEAM, die leichtgewichtige Einzelprozesse handhabt. Da BEAM blitzschnell zwischen diesen Prozessen umschalten kann (ähnlich wie PHP Fibers), kann es Millionen dieser Prozesse gleichzeitig verarbeiten.

Watch It Break

Die bereits erwähnte Fehlertoleranz wird durch Überwachungsbäume. Dieses interne Entwurfsmuster ist Teil des Open Telecom Platform-Kerns von Erlang - man kann es sich als Äquivalent zur Standardbibliothek vorstellen. Es gibt ein Netzwerk von Supervisors, die Prozesse überwachen, was die Wichtigkeit für Entwickler unterstreicht, Prozesse neu zu starten, anstatt die traditionelle Fehlerbehandlung im Try-Catch-Stil zu versuchen.

Kugelsicher: Hot Swapping

Manchmal gibt es Funktionen in Programmiersprachen, die mir noch nie begegnet sind; ich erinnere mich, dass ich herausgefunden habe, dass man monkeypatch die Kernsprache von Ruby zur Laufzeitwas ich einfach nicht begreifen konnte. Ähnlich wie bei dieser Entdeckung: Erinnern Sie sich daran, dass Fehlertoleranz das Herzstück von Erlang ist? Nun, wenn man Erlang laufen lässt, können Sie Live-Code austauschen, ohne die VM zu stoppen. Wenn Sie sich jemals gefragt haben, wie WhatsApp es schafft, eine Vielzahl von Updates ohne Ausfallzeiten zu versenden, dann ist dies die Antwort.

Schlussfolgerung

Wir haben im Wesentlichen die grundlegende Philosophie behandelt, die Erlang zu dem gemacht hat, was es ist. Vor diesem Hintergrund ist die Sprache eine ideale Wahl nicht nur für Messaging und Kommunikation, sondern auch für alles andere, was das gleiche Maß an Betriebszeit und Fehlertoleranz erfordert. Sie kann auch hervorragend in Datenbanken eingesetzt werden, was erklärt, warum sowohl CouchDB und Riak in Erlang geschrieben sind. Für die ambitionierten Entwickler da draußen, die darüber nachdenken, ihr eigenes IoT-Backend zu schreiben oder vielleicht Netzwerk-APIs in ihren Stack zu integrieren, würden wir gerne hören, woran Sie arbeiten.

Haben Sie Fragen oder Anmerkungen? Treten Sie unserer florierenden Entwickler-Community auf Slackoder folgen Sie uns auf X (früher Twitter), oder abonnieren Sie unseren Entwickler-Newsletter. Bleiben Sie mit uns in Verbindung, teilen Sie Ihre Fortschritte mit uns und halten Sie sich über die neuesten Nachrichten, Tipps und Veranstaltungen für Entwickler auf dem Laufenden!

Weitere Lektüre

Entwicklerdokumentation für Netzwerk-APIs

Erlang-Dokumentation

Share:

https://a.storyblok.com/f/270183/400x385/12b3020c69/james-seconde.png
James SecondeSenior PHP Entwickler Advocate

Als ausgebildeter Schauspieler mit einer Dissertation in Standup-Comedy bin ich über die Meetup-Szene zur PHP-Entwicklung gekommen. Man findet mich, wenn ich über Technik spreche oder schreibe, oder wenn ich seltsame Platten aus meiner Vinylsammlung spiele oder kaufe.