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ühren
  • mix phx.new app – Phoenix-Projekt erzeugen
  • mix 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.