Dein letzter Login ist schon eine Weile her.

Bitte überprüfe, ob alle Angaben in Deinem Profil noch aktuell sind.


12.09.2018
von Jan-Dirk
in IT-Talents

Was ist Funktionale Programmierung?

und wann setze ich sie ein?

"Mit funktionaler Programmierung ein besserer Entwickler werden". Viele Artikel rufen aktuell dazu auf, der funktionalen Ordnung zu folgen. Ist der funktionale Programmierstil für Dich geeignet? Für welche Programmiersprachen lässt es sich anwenden? Muss eine hochwissenschaftliche Sprache wie Haskell verwendet werden? Diese Fragen beantwortet unser Artikel.

Lesezeit: ca. 3 Min.

Bewerten

Themen auf dieser Seite:

IT-Talents.de ist Deine Plattform für Förderung und Weiterbildung während des IT-Studiums!
Fördermöglichkeiten ansehen


Woher kommt der funktionale Programmiertrend?

Vor einigen Jahren kam der Ruf nach Objektorientierter Programmierung auf. Nach dem Erscheinen von PHP 5 war ein guter Zeitpunkt, die Qualitätsstandards für PHP-Code neu zu setzen. Weg vom freien Programmieren und Spaghetticode und hin zu einer besseren Wartbarkeit. Alles wurde zu Objekten.

Heute ist es die Evolution von ECMAScript, bekannter unter dem Namen (funktionales) JavaScript, die eine Trendwende mit sich bringt. Die 2015 veröffentlichte Version ES6 bringt unzählige Verbesserungen. Angular, React und Vue sind die neuen Frontend-Frameworks für Webprojekte und Apps. JS-Bibliotheken wie jQuery gehören zum alten Eisen. Dieser Wandel bringt erneut den Ruf nach einer besseren Codestruktur mit sich.

Was ist Funktionale Programmierung?

Ein Programmierparadigma das in den 1930er Jahren entwickelt wurde und sich auf mathematische Grundlagen stützt. Moment, machen das nicht alle Programmiersprachen?

´´´´
var x = 1;
x = x + 1;
´´´´

Ein Code-Beispiel, das Mathematiklehrer zum Verzweifeln bringt. Obwohl x = x + 1 in Algebra und Arithmetik unmöglich ist, findet dieser Code in tausenden Programmen Verwendung. In einer funktionalen Programmiersprache ist diese Codezeile hingegen illegal.

Reine Funktionen

Rein funktionale Programmiersprachen erfordern reine Funktionen (engl. Pure Function). Eine reine Funktion

  • verwendet einen Eingabewert,
  • gibt den gleichen Ausgabewert zurück,
  • hat keine Seiteneffekte,
  • beachtet die Unveränderbarkeit von Variablen.

Seiteneffekte

Einfache Seiteneffekte sind ein console.log oder das Speichern einer Variable in die Datenbank. Hoppla, werden manche Entwickler denken. Ich kenne keine Alternative. Es geht nicht darum, console.log zu verbieten, sondern Berechnung und Speicherung nicht in ein und derselben Funktion zu vermischen.

Unveränderbarkeit

Die Unveränderbarkeit (engl. Immutability) von Variablen ist ein Verbot, das sich nicht auf reine Funktionen beschränkt. Variablen werden in funktionalen Programmiersprachen grundsätzlich nicht geändert. Stattdessen wird eine Kopie für den geänderten Wert erstellt.

Rekursion statt Schleife

Da die Unveränderbarkeit einfache Zähler in Schleifen betrifft, verwendet die Funktionale Programmierung kein for, while, do und repeat. Anstelle dieser Schleifenkonstrukte wird Rekursion verwendet:

´´´´
function sumRange(start, end, acc) {
if (start > end)
return acc;
return sumRange(start + 1, end, acc + start)
}
´´´´

Funktionen höherer Ordnung

Funktionen höherer Ordnung (engl. Higher Order Functions) können eine Funktion als Parameter verwenden. So ist es möglich, eine reine Funktion zur Berechnung in einer ebenso reinen Funktion zur Speicherung eines Datensatzes zu verwenden.

Auf IT-Talents.de kannst Du Dich mit dem Who-is-Who der IT-Branche vernetzen!
Jetzt Top-Unternehmen anschauen


Warum funktional programmieren?

Was zuerst wie unnötiger Aufwand klingt, ist nicht nur wesentlich sauberer. Es vereinfacht die Fehlersuche und das Schreiben von Unit Tests. Nicht zuletzt erhöht es die Wartbarkeit des Codes immens.

Die multiparadigmatische Programmiersprache JavaScript entwickelt sich rasant. Die Versionen 2016, 2017 und 2018 zeigen die Evolution der Scriptsprache deutlich. Die oft kritisierte Fehlertoleranz wird von Version zu Version der Notwendigkeit sauberer Codestrukturen und Programmierparadigmen weichen.

Einsatzgebiete für die Funktionale Programmierung

Neben funktionalem JavaScript und rein funktionalen Programmiersprachen wie Haskell sind auch C#, Python, Java und PHP für den Einsatz funktionaler Programmierung geeignet. Für Einsteiger wie Umsteiger lohnt sich ein Blick auf die junge Programmiersprache Elm, die zu JavaScript, Haskell, OCaml, F# oder Clojure kompiliert.

Wenn Du willst: IT-Talents.de ist Dein Headhunter! Unser Team macht sich für Dich auf die Suche nach dem passenden Arbeitgeber. Bequem und persönlich.
Jetzt JobScout anschauen


Funktionale Programmierung lernen mit Elm

Sich auf jeden Programmiertrend und alle neuen Sprachen zu stürzen ist weder möglich noch sinnvoll. Ein kleiner Exkurs in eine rein funktionale Sprache wie Elm hilft jedoch, seinen Programmierstil zu verbessern. Code wird lesbarer, verständlicher und wartbarer.

Ein gute Übung ist es, ein kleines Programm oder einen Programmteil mit Elm neu zu schreiben. Nach dem Refactoring kann der Quellcode mit dem kompilierten und dem alten Code verglichen werden. Die Vereinfachung des Codes ist deutlich sichtbar. Viele Programmierer haben mit Elm einen großen Sprung gemacht. Einige sind bei Elm geblieben.

Um den Umgang mit Python zu erlernen empfehlen wir dir diesen Python Komplettkurs.

Fazit

Wer die verschiedenen Programmierparadigmen zu nutzen weiß, kann besser entscheiden welche Codestruktur für ein Projekt und die meist vorgegebene Sprache geeignet ist. Kein Ansatz ist für jede Aufgabenstellung passend. Erfahrene Programmierer, die in der Konzeptionsphase die richtige Entscheidung treffen, erzeugen wartbaren Code und werden Jahre später noch gerne an dem Projekt arbeiten.

Eine Software zur Verwaltung von Objekten, die in Beziehung zueinander stehen wird mit der objektorientierten Herangehensweise am besten gelingen. Eine umfangreiche Benutzeroberfläche, die über viele ähnliche Funktionen verfügt, würde damit im Chaos enden. Hier ist die Funktionale Programmierung genau richtig.

Aktuelle Aktionen:

Programmierwettbewerb August 2019

500€ Preisgeld und Feedback


Sei dabei und entwickle Deine eigene intelligente Einkaufsliste!
Jetzt coden!

Programmierwettbewerb August/September 2019

500€ Preisgeld und Feedback


Sei dabei und rette mit Deinem Code die Erde vor der Invasion der Aliens!
Jetzt coden!

IT-Stipendium August 2019

1200€ Förderung für IT-Talente


Sei dabei und sichere Dir beim IT-Stipendium im August 2019 bis zu 1200€ Förderung!
Jetzt bewerben!

IT-Talents ist ein Netzwerk nur für IT'ler. Auf unserer Plattform kannst Du Dich als registriertes Mitglied mit wenigen Klicks auf die Jobs unserer Partnerunternehmen oder auf IT-Projekte für Studierende bewerben. Darüberhinaus führen wir Wettbewerbe durch und vergeben IT-Stipendien.

Jetzt Mitglied werden.

Verwandte Artikel

Was ist eine E-Mail und wie funktioniert sie?

19. Aug 2019 in IT-Talents

Mittlerweile haben sich E-Mails auf der ganzen Welt durchgesetzt und lösen Briefe, Faxe und Telegramme immer mehr ab. …

weiter

Was ist Docker?

13. Aug 2019 in IT-Talents

Docker bietet Entwicklern die Möglichkeit, dass ihre Arbeiten, wie entwickelte Softwares oder geschriebene Codes auf …

weiter

Was ist TensorFlow?

26. Jul 2019 in IT-Talents

Programmierer nutzen TensorFlow als Framework um verschiedene Modelle für das maschinelle Lernen zu entwickeln. …

weiter

Was macht ein IT-Auditor?

17. Jul 2019 in IT-Talents

Was genau macht eigentlich ein IT-Auditor? In diesem Artikel schlüsseln wir nicht nur die Verantwortlichkeiten eines …

weiter

Was ist E-Commerce?

13. Jul 2019 in IT-Talents

E-Commerce, auch Internethandel oder Onlinehandel genannt, ist der Fachbegriff für jegliche Ein- und Verkaufsvorgänge, d…

weiter

E-Commerce Manager - der Beruf, die Aufgaben und das Gehalt

05. Jul 2019 in IT-Talents

E-Commerce, also der Handel im Internet, nimmt eine immer größere Bedeutung in der heutigen Gesellschaft ein. Dadurch w…

weiter

Was macht ein Kaufmann/Kauffrau im E-Commerce?

03. Jul 2019 in IT-Talents

Der Onlinehandel boomt und macht derzeit einen Großteil der Wirtschaft aus. Mit dem Ausbildungsberuf Kaufmann/frau im …

weiter

Was ist SAP PM?

15. May 2019 in Software

SAP PM bietet eine umfassende Palette von Business-Softwarelösungen, damit Unternehmen ihre Geschäftsmodelle optimieren u…

weiter

Was ist SAP EWM?

14. May 2019 in Software

Die reibungslosen Prozesse im Bereich der Lagerlogistik sind von fundamentaler Bedeutung für Unternehmen. Aus diesem …

weiter

Schnell-Login für unsere Mitglieder

Tipp: Halte Dein Profil aktuell.

Lass' uns wissen, falls sich etwas Neues bei Dir ergibt.

Tipp: Vervollständige Dein Profil für noch bessere Karrierechancen.

Bist Du Schüler, Student oder bereits berufstätig? Teile uns Deinen aktuellen Status mit, damit wir Dir sinnvolle Aufgaben anbieten können.

Jetzt Status angeben

Wann stehst Du der IT-Branche zur Verfügung?

Bitte Monat und Jahr angeben.

{{ perspectiveForm.availableFrom.$error.dynamic }}

Neuer Versuch

Wo möchtest Du durchstarten?

{{ location.geolocation.name }}×
Bitte mindestens ein Ort angeben.

Als {{currentUser.status.title}} bist Du bereit für:


Lade Beschäftigungsarten

Bitte wähle den Zeitpunkt, Ort und min. eine Beschäftigungsart aus.

You have voted!
Schliessen
Vote for:
stars
Vote
You have not rated!