Funktionale Programmiersprache Elixir: Pragmatisch und leicht zu erlernen

Mit der funktionalen Programmiersprache Elixir lassen sich skalierbare und robuste Programme schreiben.

Artikel verschenken
In Pocket speichern vorlesen Druckansicht 6 Kommentare lesen
Elixir: pragmatisch und leicht zu erlernen
Lesezeit: 15 Min.
Von
  • Martin Grotz
Inhaltsverzeichnis

Die funktionale Programmiersprache Elixir ist auf Nebenläufigkeit ausgerichtet. Sie ist dynamisch typisiert, verwendet eine an Ruby angelehnte Syntax und ist noch recht jung – Version 1.0 erschien im September 2014. Der Elixir-Compiler erzeugt Erlang-Bytecode. Es besteht eine hundertprozentige Kompatibilität: Erlang-Code lässt sich problemlos aus Elixir heraus nutzen und umgekehrt. Dies gilt auch für alle Sprachbibliotheken. Dadurch profitiert Elixir vom Erlang-Ökosystem und erbt durch die Erlang-Basis zugleich zahlreiche Laufzeitvorteile.

Die Basis jedes Elixir-Systems sind Aktoren. Das theoretische Aktormodell entstand allerdings unabhängig von der Implementierung in der Erlang-Runtime, deshalb unterscheiden sich viele Bezeichnungen leider in Theorie und Praxis. Aktoren sind jeweils vollständig voneinander unabhängige Laufzeitkomponenten, die sich keinerlei Zustand mit anderen Aktoren teilen. Die Kommunikation erfolgt nachrichtenbasiert.

Im Aktormodell kommunizieren voneinander unabhängige Aktoren ausschließlich über Nachrichten.
Mehr zum Thema Funktionale Programmierung

Dazu besitzt jeder Aktor eine Eingangswarteschlange, um alle Nachrichten von anderen Aktoren für die spätere Bearbeitung zu sammeln. Die anschließende sequenzielle Verarbeitung der Nachrichten erleichtert die Programmierung, da im Code keine Parallelverarbeitung zu berücksichtigen ist. Innerhalb eines Aktors wird also immer nur genau eine Nachricht gleichzeitig verarbeitet. Für die Skalierung des Gesamtsystems muss das jeweilige Programm zusätzliche Aktoren starten. Da die Kommunikation nur über Nachrichten funktioniert, ist es nicht erforderlich, die Aktoren auf dem gleichen System auszuführen, damit sie miteinander kommunizieren können. Eine Verteilung über beliebig viele Rechnersysteme ist problemlos möglich.