GitHub, The ReadME Project 18.07.2022, 10:17 Uhr

Funktionale Programmierung wird zum Mainstream

Laut GitHub findet die Funktionale Programmierung ihren Weg in immer mehr Codebasen.
(Quelle: GitHub.com)
Funktionen - Codeabschnitte, die eine bestimmte Aufgabe innerhalb eines Programms immer wieder ausführen können, ohne dass der Code immer wieder neu geschrieben werden muss - sind ein Standardbestandteil der Programmierung. Man könnte zum Beispiel eine Funktion schreiben, die den Umfang eines Kreises zurückgibt, wenn man seinen Durchmesser angibt, oder eine Funktion, die ein astrologisches Zeichen auf der Grundlage des Geburtsdatums einer Person zurückgibt. Aber wie Cassidy Williams in ihrem Leitfaden zur funktionalen Programmierung für The ReadME Project schreibt, geht es bei der funktionalen Programmierung um mehr als nur das Schreiben von Funktionen. Es handelt sich um ein Paradigma, bei dem das Schreiben von Programmen mit "reinen Funktionen" im Vordergrund steht: zustandslose Funktionen, die immer denselben Wert zurückgeben, wenn sie dieselbe Eingabe erhalten, und keine "Seiteneffekte" erzeugen, wenn sie ihre Ausgabe zurückgeben. Mit anderen Worten: Reine Funktionen ändern keine vorhandenen Daten und modifizieren auch keine anderen Teile der Anwendungslogik. Würde unsere Umfangsfunktion zum Beispiel eine globale Variable ändern, wäre sie nicht rein.
Die Ursprünge der funktionalen Programmierung reichen bis in die Anfänge der Programmiersprachen zurück, als in den späten 1950er Jahren LISP entwickelt wurde. Doch während LISP und seine Dialekte wie Common LISP und Scheme jahrzehntelang eine treue Anhängerschaft hatten, verdrängte die objektorientierte Programmierung die funktionale Programmierung in den 1970er und 1980er Jahren. Im Jahr 2010 erwachte das Interesse an der funktionalen Programmierung wieder, als Entwickler mit immer größeren Codebasen arbeiten mussten. Scala und Clojure brachten die funktionale Programmierung in die Java Virtual Machine, während F# das Paradigma in .NET einführte. Gleichzeitig wuchs das Interesse an der Anwendung funktionaler Programmiertechniken in objektorientierten Sprachen wie JavaScript, Ruby und Python. "All diese Sprachen unterstützen zunehmend Funktionen, die es einfacher machen, einen funktionalen Stil zu verwenden", sagt Richard Feldman, Autor von Elm in Action. "Fast jede Sprache ist zunehmend multiparadigmatisch."
Der Grad und die Art der Unterstützung für funktionale Programmierung variiert von Sprache zu Sprache, aber ein bestimmtes Merkmal ist zum Standard geworden. "Das, was sich anscheinend durchgesetzt hat, sind Funktionen höherer Ordnung - Funktionen, die eine andere Funktion annehmen oder zurückgeben", sagt Tobias Pfeiffer, Backend-Ingenieur bei Remote. "Damit können Sie Funktionsblöcke erstellen, um Probleme elegant zu lösen.
Wie so vieles in der Softwareentwicklung hängt auch die Zukunft der funktionalen Programmierung weitgehend von den Open-Source-Gemeinschaften ab, die um funktionale Sprachen und Konzepte herum aufgebaut werden. Ein Hindernis für die Akzeptanz rein funktionaler Programmierung ist zum Beispiel, dass es viel mehr Bibliotheken gibt, die für objektorientierte oder imperative Programmierung geschrieben wurden. Von Mathematik- und wissenschaftlichen Berechnungspaketen für Python bis hin zu Web-Frameworks für Node.js - es hat wenig Sinn, all diesen vorhandenen Code, der gängige Probleme löst, zu ignorieren, nur weil er nicht im funktionalen Stil geschrieben ist.
Um dieses Hindernis zu überwinden, muss sich die Gemeinschaft der funktionalen Programmierer zusammentun, um neue Bibliotheken zu entwickeln, die es Entwicklern leichter machen, sich für funktionale Programmierung zu entscheiden als für Ansätze, die anfällig für Seiteneffekte sind.
Mehr dazu lesen Sie in diesem Beitrag von Klint Finley (The ReadMe Project) auf GitHub.


Das könnte Sie auch interessieren