Kurz: Fehlertolerante, nebenläufige Systeme auf der BEAM.
Genauer: Erlang wird eingesetzt für Telekommunikation, Messaging (WhatsApp, RabbitMQ), verteilte Datenbanken und hochverfügbare Backends. Erlang (1986, Ericsson) wurde für Telefonvermittlungen entworfen: Systeme, die nie ausfallen dürfen, Millionen gleichzeitiger Verbindungen verwalten und sich im laufenden Betrieb aktualisieren lassen.
Steckbrief
| Eigenschaft | Wert |
|---|---|
| Erschienen | 1986 |
| Entwickelt von | Joe Armstrong, Robert Virding, Mike Williams (Ericsson) |
| Paradigmen | funktional, nebenläufig (Actor-Modell) |
| Typisierung | dynamisch |
| Ausführung | BEAM (Erlang-VM) |
| Paketverwaltung | rebar3 / Hex |
| Dateiendung | .erl |
| Sprachfamilie | BEAM-Sprachen |
Einsatzgebiete
Telekommunikation, Messaging (WhatsApp, RabbitMQ), verteilte Datenbanken und hochverfügbare Backends.
So führst du Code aus
Datei hallo.escript speichern und mit escript hallo.escript ausführen (Erlang/OTP von erlang.org; Projekte mit rebar3).
Das erste Programm
main(_) ->
io:format("Hallo, Welt!~n"),
io:format("1 + 2 = ~p~n", [1 + 2]),
io:format("~s hat ~w Punkte~n", ["Mia", 17]),
io:put_chars("ohne Zeilenumbruch"),
io:nl(),
X = 42,
io:format("X = ~p~n", [X]).Ausgabe:
Hallo, Welt!
1 + 2 = 3
Mia hat 17 Punkte
ohne Zeilenumbruch
X = 42Der Kurs: 8 Kapitel
Jedes Kapitel enthält geprüfte Beispiele mit echter Ausgabe, Merksätze, eine Übungsaufgabe und ein Quiz. Zum Üben mit Fortschrittsanzeige, Abzeichen und Zertifikat: Erlang-Kurs auf der Lernseite.
- Einführung und erstes Programm
- Funktionen und Mustervergleich
- Listen, Tupel, Maps und Records
- Rekursion, Strings und Binaries
- Prozesse und Nachrichten
- OTP: gen_server und Supervisor
- ETS, Fehler und Praxisbeispiele
- Referenz und Spickzettel
Ähnliche Sprachen
- Elixir: Funktional, nebenläufig und ausfallsicher
- Prolog: Logikprogrammierung mit Fakten, Regeln und Suche
- Haskell: Rein funktional, streng typisiert, elegant
Siehe auch
Programmiersprachen im Überblick, Sprachen im Vergleich, Zeitstrahl der Programmiersprachen, Programmierparadigmen, Kompiliert oder interpretiert?