Programmiersprache: Elixir 1.8 mit vielen Verbesserungen auf Infrastrukturebene

Mit besserer Kompilierzeit, beschleunigten Mustern und Funktionen zur Selbstprüfung des Systems beweren die Sprachentwickler ihr neues Release.

In Pocket speichern vorlesen Druckansicht 13 Kommentare lesen
Programmiersprache: Elixir 1.8 mit vielen Verbesserungen auf Infrastrukturebene
Lesezeit: 3 Min.
Von
  • Alexander Neumann
Inhaltsverzeichnis

Die Entwickler der Programmiersprache Elixir sind bestrebt, etwa alle halbe Jahre ein neues Release herauszubringen. So verwundert es nicht, das nun die Version 1.8 auf das im Juli 2018 erschienene Elixir 1.7 folgt. Das neue Sprachrelease enthält viele Verbesserungen auf Infrastrukturebene, die unter anderem dafür gesorgt haben, die Kompilierzeit zu verbessern, gängige Muster zu beschleunigen und Funktionen zur Selbstprüfung des Systems hinzufügen.

Elixir 1.8 definiert nun ein Calendar.TimeZoneDatabase-Verhalten, das es Entwicklern ermöglichen soll, ihre eigenen Zeitzonendatenbanken einzubinden. Durch die Definition eines expliziten Contracts für das Zeitzonenverhalten kann Elixir jetzt die DateTime API um Funktionen wie DateTime.shift_zone/3 erweitern. Standardmäßig wird Elixir mit einer Zeitzonendatenbank namens Calendar.UTCOnlyTimeZoneDatabase ausgeliefert, die nur UTC (Coordinated Universal Time) verarbeitet. Die Neuerung entstand vor dem Hintergrund, dass das DateTime-Modul in letzter Zeit immer langsamer geworden war, da Elixir keine API für Zeitzonendatenbanken zur Verfügung stellte.

Aufgrund der Arbeiten am Compiler über das vergangene Jahr hinweg sollte Elixir 1.8 nun durchschnittlich 5 Prozent schneller kompilieren können. Der Compiler scheint effizienteren Code bei Range-Checks in Guards (z.B. x in y..z), Charlist-Funktionen mit Interpolation (z.B. foo #{bar} baz') und beim Arbeiten mit Datensätzen über das Record-Modul auszugeben. Schließlich haben die EEx-Vorlagen Optimierungen erhalten, durch den sie kompakteren und schnelleren Code ausgeben können.

Elixir bietet nun eine ableitbare Implementierung des Inspect-Protokolls. Damit sollen sich auf einfache Weise Daten aus Datenstrukturen filtern lassen, wenn sie überprüft werden. Schließlich kann man mit Elixir 1.8 die Beziehung zwischen dem Code und der Aufgabe im Prozessverzeichnis verfolgen. Das geschieht über den Schlüssel $callers, der gut mit dem vorhandenen Schlüssel $ancestors übereinstimmen soll.

Diese Feature wird als "sehr mächtig" beschrieben. Denn es ermöglicht Instrumentierungs- und Monitoringwerkzeuge, um die Ereignisse im System besser zu verfolgen und in Beziehung zu setzen. Es lässt sich offenbar auch von Tools wie der Ecto Sandbox nutzen, die es ermöglicht, Tests gleichzeitig gegen die Datenbank durchzuführen, indem sie Transaktionen und einen Ownership-Mechanismus verwendet, bei dem jedem Prozess explizit eine Verbindung zugewiesen wird.

Die 2012 auf der Bildfläche erschienene Sprache läuft auf der Erlang Virtual Machine und soll sich besonders für verteilt arbeitende, echtzeitfähige Anwendungen eignen. Die Entwicklung erfolgt auf GitHub, wo Elixir unter der Apache License 2.0 zu finden ist. Weitere Informationen zum neuen Release erhält man im Blog-Beitrag.

Mehr Infos

Auf der parallel 2019, die von 19. bis 21. Februar aus gerichtet wird, wird ein Workshop zum Kennenlernen von Elixir angeboten. Dieser kann auch separat von der Hauptkonferenz zur Parallelprogrammierung gebucht werden. Nehmen Sie dafür bitte direkten Kontakt mit den Veranstaltern auf.

(ane)