Elixir und Erlang – Schnellreferenz
Erlang wurde bei Ericsson für Telefonvermittlungen entwickelt: extrem robust, fehlertolerant, nebenläufig. Elixir ist eine moderne Sprache auf der gleichen VM (BEAM), die Erlangs Stärken mit einer angenehmeren Syntax verbindet – bekannt durch das Web-Framework Phoenix und LiveView.
Erste Schritte
iex # Elixir-REPL starten
erl # Erlang-Shell
mix new my_app # neues Projekt anlegen
mix run # Projekt starten
Unveränderliche Daten und Pattern Matching
name = "Devon" # Neuzuweisung erzeugt neuen Wert
[head | tail] = [1, 2, 3] # head = 1, tail = [2, 3]
case {1, 2} do
{a, b} when a < b -> "kleiner"
_ -> "unbekannt"
end
Pipe-Operator: Datenfluss lesbar machen
"Hanse Computing"
|> String.upcase()
|> String.split(" ")
# ["HANSE", "COMPUTING"]
Der Pipe-Operator erinnert an Pipes in der Shell – das Ergebnis jeder Funktion wird als erstes Argument der nächsten übergeben.
Prozesse: das Herz von BEAM
# Prozess starten
pid = spawn(fn -> IO.puts("Hallo") end)
# Nachricht senden und empfangen
send(pid, {:hallo, "KIT"})
receive do
{:hallo, msg} -> IO.puts("Erhalten: " <> msg)
end
Millionen leichtgewichtiger Prozesse laufen parallel – kein Thread-Chaos wie in klassischen Sprachen. Dazu kommt OTP mit Supervisoren, die Prozesse bei Abstürzen automatisch neu starten („Let it crash").
Typische Befehle
mix test– Tests ausführenmix phx.new app– Phoenix-Projekt erzeugenmix deps.get– Abhängigkeiten laden (Hex-Paketmanager)mix format– Code formatieren
Verwandte Themen
Mehr zu Concurrency und Nebenläufigkeit: Process, Thread, Queue. Funktional programmiert auch Elm und Scala.