Task #1 08.01.2015, 00:00 Uhr

Funktional programmieren lernen

Laut Ju Gonçalves ist die wichtigste Aufgabe für Entwickler im neuen Jahr das Erlernen der Funktionalen Programmierung.
In der Unterzeile ihres Blogbeitrags formuliert Ju Gonçalves die spannende Begründung: "OOP cannot save us from the Cloud Monster anymore". Die erste Funktionale Programmiersprache war Lisp. Sie gibt es schon seit rund 60 Jahren. Galt immer als interessant, aber in der Praxis als zu langsam. Inzwischen sind Computer um Welten schneller geworden und die Vorzüge der Funktionalen Programmierung kommen überall zum tragen. Neben neueren FP-Sprachen wie Erlang, Scala, Haskell oder F# taugen auch altbekannte Sprachen wie JavaScript oder Java zur funktionalen Programmierung.
Aber warum soll OOP nicht mehr genügen? Ju Gonçalves sagt, die Krux liegt in der Komplexität, die OOP-Anwendungen erreichen, wenn man Parallelität einführt. FP-Sprachen seien dafür um vieles besser geeignet. Wichtige Eigenschaften aller FP-Sprachen sind:
  • First-Class Functions
  • High-Order Functions
  • Pure Functions
  • Closures
  • Immutable State
First-Class Functions meint, dass man Funktionen in einer Variablen speichern kann. High-Order Functions meint, dass Funktionen andere Funktionen zurückgeben oder Funktionen als Parameter übernehmen können. Pure Functions ändern keine Werte. Sie übernehmen lediglich Daten und geben wieder Daten aus. Liefert eine Funktion F wenn man ihr 2 übergibt 10 zurück, dann tut sie das immer, unabhängig von Zuständen, Threads, Reihenfolgen oder anderen Effekten. Closures meinen, dass man Daten innerhalb einer Funktion halten kann, die ausschließlich für eine spezifische Rückgabefunktion zugänglich sind. Immutable State meint, dass man den Status nicht ändern kann.
Ju Gonçalves bringt in ihrem Blogbeitrag JavaScript-Beispiele dazu und liefert weitere Gründe, warum es höchste Zeit ist, sich mit FP zu beschäftigen. Beispielsweise deshalb, weil auch typische OOP-Sprachen mit Lambda-Ausdrücken um FP-Fähigkeiten erweitert werden und man sich ein breites Wissen über FP aneignen sollte. [bl]



Das könnte Sie auch interessieren