axelerator.de

Entdecke funktionale Programmierung mit Elm

4 Minuten
#elm
9 December 2023

Wenn Du mit funktionaler Programmierung liebäugelst oder in die Entwicklung von Single Page Applications (SPA) einsteigen willst, gibt es kein besseres Tool als Elm. Elm zeichnet sich als eine Sprache aus, die nicht nur die Entwicklung angenehm macht, sondern auch als perfekter Einstieg in die Welt der funktionalen Programmierung dient.


Statisch getypte Glückseligkeit

Einer der wichtigsten Vorzüge von Elm ist, man mag es kaum glauben, die statische Typisierung. Im Vergleich zu JavaScript bietet das entscheidende Vorteile. Der Compiler fungiert als treuer Helfer und fängt Fehler ab, bevor sie zur Laufzeit Schaden anrichten können. Was Elm auszeichnet, ist nicht nur die Typisierung selbst, sondern auch die unglaubliche Klarheit der Compiler-Meldungen.

Elm ist nicht nur eine weitere funktionale Sprache, sondern eine komplettes Werkstatt für die Erstellung von SPAs. Wenn wir in “React-Begriffen” denken, kombiniert sie:

  • TypeScript (Sprache)
  • NPM (Paket manager)
  • React (Rendering)
  • Redux (State Management)

Alles in einem einzigen Werkzeug.

Haskell logo Haskell wurde als Forschungssprache entwickelt und war als solche ausdrücklich dafür ausgelegt um experimentelle Funktionen und Syntax zu enthalten.
Das führt zu vielen verschiedenen “Stilen”, die es schwer machen, die Sprache schnell zu lernen.

Durch die Konzentration auf eine einzige Zielplattform (den Browser) ist Elm einfacher als seine funktionalen Allzweck-Pendants wie Haskell.

Im Vergleich zu anderen Sprachen, die funktionale Muster zusätzlich zu imperativen und/oder objektorientierten Mustern anbieten,

Lanugages like Ruby and JavaScript also allow but don’t enforce the functional style. Leading to the majority of code in these languages being in imperative.

zeichnet sich Elm dadurch aus, dass es durchgehend dem funktionalen Programmierstil treu bleibt. Das macht Sie zu einem idealen Kandidaten für Entwickler, die bereits mit konventionelleren Programmiersprachen vertraut sind vertraut sind und sich auf das Erlernen des funktionalen Ansatzes konzentrieren wollen.

Einfachheit

Die Eleganz von Elm liegt in seiner Einfachheit. Es ist eine vergleichsweise kleine Sprache. Konkret bedeutet das, dass es weniger Schlüsselwörter und weniger Konzepte gibt (keine Objektorientierung). Das bedeutet ganz allgemein weniger Wege, um dasselbe zu erreichen.

Natürlich hat das seinen Preis, und es gibt bestimmte “Meta-Konzepte”, die nicht so elegant abstrahiert werden können wie z.B. in Haskell (Elm hat z.B. keine Typklassen).

TspeScript logo
TypeScript’s TypeScript Motto lautet: “TypeScript” ist JavaScript mit einer Syntax für Typen.” Du musst also JavaScript beherrschen und dann noch mehr lernen, um von den die zusätzlichen Funktionen von TypeScript zu nutzen können.

Aber im Gegenzug ist es viel einfacher, “die ganze” Sprache zu lernen als andere Sprachen wie TypeScript.

Ich glaube, dass “Frontend-Code” einfach und dumm bleiben sollte. Besonders in Webanwendungen sollte die meiste komplizierte Zahlenspielerei sowieso im Backend erledigt werden. Und dort ist man frei, jede beliebige Sprache zu verwenden.

(Ich halte Vorstellung, das die gleiche Sprache im Front- und Backend das Non-plus-Ultra ist für überbewertet, aber das Thema reicht für einen separaten Blogbeitrag).

Unmittelbare Belohnung

Ein weiterer Grund, warum ich Experimente gerne in Elm protoype, ist, dass es einfach ist, etwas zu produzieren mit dem jeder interagieren kann. Der übliche Weg, Allzwecksprachen zu lernen, ist, mit Kommandozeilenanwendungen zu beginnen, die für normale Benutzer nicht zugänglich sind. Durch die Ausrichtung auf den Browser kannst Du mit nur ein paar Zeilen Code etwas bauen, das bunt und/oder interaktiv ist.

A Tour of Elm

Ich freue mich sehr “A Tour of Elm” vorzustellen. Ein Einsteigerkurs für diejenigen die noch keine Erfahrung mit funktionaler Programmierung oder SPAs haben. Am Anfang werden zunächst schnell die Grundlagen durchgehen und wesentliche Konzepte wie HTML, CSS und JavaScript, die die Grundlage für die SPA-Entwicklung vorgestellt. Der Kurs geht nahtlos in interaktive Lektionen über und bietet praktische Lektionen in verdaulichen Portionen. Und was noch besser ist, Du kannst sofort loslegen ohne lästige Software-Installation - alles ist direkt im Browser.

Fazit

Elm ist nicht nur eine Sprache, sondern auch eine spannende Erfahrung, die darauf wartet, erkundet zu werden. Egal, ob Du neu in der funktionalen Programmierung bist oder SPAs meistern willst, die Einfachheit und der Fokus von Elm machen Elm zum perfekten Begleiter.

Probier “A Tour of Elm” aus und fange an SPAs mit Spass und Sicherheit zu bauen.