t3n 54

Erlang: Die Programmiersprache, die Whatsapp antreibt

Seite 2 / 2

Für Erlang gibt es zu den meisten gängigen Persistenztechnologien die entsprechenden Treiber. Man kann also wie gewohnt flexibel je nach Anwendungsfall zwischen den NoSQL Datenbanken auswählen. Hier sollte man als Einsteiger aber nicht allzu schnell auf altbekannte Wege zurückgreifen, denn Erlang hat darüber hinaus auch eigene Datenbanksysteme in petto. Beispielsweise Mnesia, das aufgrund seiner Performance, seines Speicherverbrauchs und Reifegrads unbedingt in Betracht gezogen werden sollte.

Erlang, der ewige Underdog unter den Programmiersprachen?

Um- oder Einsteiger werden schnell mit dem speziellen ­Charakter konfrontiert, der Erlang innewohnt. Andere Platt­formen beispielsweise tendieren überwiegend dazu, Standards wie HTTP durch Frameworks zu abstrahieren und zu kapseln. Als ­Erlang-Entwickler wird man dagegen dazu bewogen, sich mit den Basistechnologien auseinanderzusetzen. Das fühlt sich zunächst grober und rauer an, denn man findet sich eher beim Durch­blättern einer RFC (Request For Comment)-Spezifikation wieder, als beim Konsumieren eines hübschen Framework-­Tutorials.

Das Resultat dieser Vorgehensweise ist jedoch ein tiefes Verständnis der Technologien, die man im Entwicklungsalltag verwendet. An dieser Stelle könnte man als Entwickler befürchten, dass man dazu gezwungen wird, tonnenweise Quellcode zu ­produzieren und dass die Entwicklung und das Refaktorisieren an sich sehr aufwendig werden. Genau das Gegenteil ist aber der Fall. Die Erlang-Sprache selbst ist sehr sparsam und gibt einem das OTP-Toolset an die Hand, welches Lösungen und Muster, sogenannte Behaviours, für die gängigsten Problemstellungen ­liefert.

Vielleicht liegt es an dieser von manchem Anwender sicherlich empfundenen Sperrigkeit, dass Erlang bis heute in Deutschland keinen hohen Bekanntheitsgrad besitzt. Während sich die Verbreitung in Grenzen hielt, hat sich Erlang über die Jahre immer wieder als eine stabile und „battle-proven“ Alternative bewiesen. Multicore-CPU-Architekturen, Ausfallsicherheit, Parallelität im Web: Diese topaktuellen Themen werden von Erlang besser adressiert als von den meisten anderen Plattformen. Das einzige also, das einem an Erlang altbacken vorkommen könnte, wäre die Programmiersprache an sich – die auf den ersten Blick nicht wirklich zugänglich aussieht.

Besonderheiten der ­Sprache

Das liegt nicht nur an der Lexikalik und der Syntax, sondern auch an den Besonderheiten von funktionalen Programmiersprachen. In Erlang wird der Code grundlegend anders strukturiert, als viele Entwickler es aus objektorientierten oder prozeduralen Sprachen kennen. Beispielsweise werden anstelle von Schleifen Tail-Recursions verwendet oder mit Pattern Matching Nachrichten den Funktionen zugewiesen oder Datengruppen definiert. Die Tail-Recursion wird in funktionalen Sprachen oft als Ersatz von Iterationen verwendet. Im Gegensatz zu einer naiven Rekursion steigt der Speicherplatzverbrauch nicht mit jeder weiteren Rekursion und ist somit sowohl funktional integer als auch effizient. Das Pattern Matching bedient sich der Symbolik und Struktur von Argumenten, um diese aufzulösen und ist dabei sehr intuitiv.

Natürlich ist Erlang auch keine Silverbullet, mit der sich alle Probleme lösen lassen. Grundsätzlich wird das Number Crunching, also das Verarbeiten von vielen Zahlen, als eine Schwäche von Erlang angesehen. Einerseits trifft das zu, da es Technologien gibt, die dies effizienter meistern – andererseits gilt das nur für Berechnungen, die sich nicht parallelisieren lassen. Bei einer Vielzahl von kleinen, nicht sequentiellen Berechnungen können die Stärken in der Parallelverarbeitung wieder überwiegen.

Die größte Schwäche von Erlang ist jedoch die Demographie: Während Unternehmen frisch gebackene Java-Entwickler in der Regel direkt von den Universitäten akquirieren können, gibt es vergleichsweise wenige Erlang-Entwickler auf dem Markt. Damit fällt nicht nur das Staffing besonders schwer, auch die Abhängigkeit von Personal oder einzelnen Dienstleistern und damit auch das Risiko steigen an.

Elixir: Erlang wird attraktiv

Mit Elixir könnte sich das allerdings in Zukunft ändern. Die funktionale, nebenläufige Programmiersprache Elixir kompiliert genau wie die Sprache von Erlang sogenannten Beam-Bytecode, welcher auf der Erlang VM ausführbar ist. Somit profitiert Elixir von den Vorteilen der Basistechnologie und Laufzeitumgebung Erlangs, ist jedoch modern und zugänglich – insbesondere für eine breite Masse von Ruby-Entwicklern, die von der ähnlichen Konzeption bei höherer Geschwindigkeit und Skalierbarkeit angezogen wird. Die Unterschiede zwischen Erlang und Elixir verdeutlicht das folgende Code-Beispiel:

Hello World in Erlang

-module(hello). -export([hello_world/0]). hello_world() -> io:fwrite(„Hello, World!\n“).

Hello World in Elixir

defmodule MyModule do def hello do IO.puts „Hello, World!“ end end

Ein Vergleich der Unterschiede zwischen Elixir und Ruby findet sich bei Github. Bei den Hilfestellungen, die es für den Ein- oder Umstieg gibt, hat sich die Elixir-Community ebenfalls ordentlich in Schale geworfen. Kein Vergleich zur wenig attraktiven Dokumentation von Erlang selbst: Mit Podcasts und bunten, einsteigerfreundlichen Web-Tutorials findet man schnell Zugang. Die Einstiegsbarriere der Erlang-Sprache wurde mit dem Release von Elixir also weitestgehend ad acta gelegt. Schon heute setzen Unternehmen wie Pinterest oder die Marketing-Software Moz auf Elixir, die im Juli 2018 veröffentlichte v1.7 der Sprache wurde fast 300 Millionen Mal heruntergeladen.

In diesem Zusammenhang kommt auch das von Chris McCord entwickelte Phoenix-Framework zur Geltung, das derzeit in einer stabilen v1.3 verfügbar ist: ein in Elixir programmiertes Webframework für die Erlang VM, das sich für die Erstellung leistungsfähiger und hochverfügbarer Webanwendungen anbietet. Phoenix lehnt stark an Ruby on Rails oder Django aus ­Python an und bietet deshalb einiges an Wiedererkennungswert. Selbst Java-Entwickler dürften das eine oder andere Server-Side-MVC-Framework kennen und ihre Muster dort wiederfinden.

Fazit

Die stark wachsende Elixir-Community rückt Erlang immer weiter ins Rampenlicht. Es bleibt also zu erwarten, dass IT-Entscheider nicht mehr lange die demographischen Risiken befürchten müssen und stattdessen von der Stabilität, Skalierbarkeit und Entwicklungsgeschwindigkeit des Erlang-Ökosystens profitieren können. Trotz Elixir und Phoenix bietet es sich für ein möglichst tiefes Verständnis der Core-Technologie an, zunächst mit der Erlang-Sprache und dem OTP-Framework zu starten. Für Interessierte steht eine Vielzahl von stabilen Entwicklungsumgebungen zur Auswahl. Falls sich jemand im Emacs zu Hause fühlt, empfiehlt es sich, dort auch Erlang zu entwickeln. Hübscher geht es jedoch mit Intellij, Sublime oder Eclipse. Für die Verwaltung von Abhängigkeiten und das Durchführen von Testfällen stellt Erlang einen eigenen Werkzeugkasten zur Verfügung.

<strong>Frank Hinkel 
Frank Hinkel 

ist Geschäftsführer der Neozo GmbH & Co. KG und realisiert Projekte mit dem Schwerpunkt leichtgewichtige und skalierbare Softwarearchitekturen.

<strong>Jean Michel Malatray 
Jean Michel Malatray 

arbeitet bei SSI Schäfer Shop GmbH als Full-Stack-Entwickler. Sein Schwerpunkt ist die Entwicklung von E-Commerce-Systemen auf Basis von Micro-Services und Self-Contained-Systems.

Startseite
  • Seite:
  • 1
  • 2

Bitte beachte unsere Community-Richtlinien

Schreib den ersten Kommentar!

Du musst angemeldet sein, um einen Kommentar schreiben zu können.

Jetzt anmelden

Hey du! Schön, dass du hier bist. 😊

Bitte schalte deinen Adblocker für t3n.de aus, um diesen Artikel zu lesen.

Wir sind ein unabhängiger Publisher mit einem Team bestehend aus 65 fantastischen Menschen, aber ohne riesigen Konzern im Rücken. Banner und ähnliche Werbemittel sind für unsere Finanzierung sehr wichtig.

Danke für deine Unterstützung.

Digitales High Five,
Stephan Dörner (Chefredakteur t3n.de) & das gesamte t3n-Team

Anleitung zur Deaktivierung