Deklarative Software-Technologien

Last changed on November 19, 2019

Funktionale Programmiersprachen

Neben der Programmiersprache Haskell gibt es eine ganze Reihe anderer Sprachen, die mehr oder weniger eng mit Haskell verwandt sind. Die Programmiersprache ML stammt aus den 70ern und hat viele Kernkonzepte geprägt, die auch in Haskell zur Verfügung stehen, etwa first class functions, Typinferenz oder currying. Die Sprache wird aber in der Praxis wenig verwendet.

Eine Art moderne Variante von ML stellt die Programmiersprache F# dar. F# wird von Microsoft entwickelt und ist eine Sprache der .Net-Plattform und kann somit mit Sprachen wie C# oder Visual Basic zusammen verwendet werden.

Die Programmiersprache Elm ist eine Art vereinfachte Variante von Haskell. Sie unterstützt im Wesentlichen den Sprachumfang, den wir in der Vorlesung kennengelernt haben, aber viele moderne Konzepte von Haskell nicht. Elm ist als Einsteigersprache gedacht und wird genutzt, um Frontendanwendungen zu entwickeln. Daher wird die Sprache in JavaScript übersetzt.

Funktionale Programmiersprachen im Mainstream

Viele der Konzepte der funktionalen Programmierung haben mittlerweile Einzug in stärker verbreitete Programmiersprachen gehalten. Auf diese Entwicklung hatte die Programmiersprache Scala starken Einfluss. Die Sprache übersetzt in die JVM und kann daher sehr einfach mit Java zusammen genutzt werden. Scala wurde mit dem Ziel entwickelt, die Konzepte der funktionalen Programmierung stärker in der Industrie zu verbreiten. Zu diesem Zweck ist Scala eine Mischung aus funktionaler und objekt-orientierter Programmierung.

Dem Hybrid-Konzept von Scala sind in der Folge viele Programmiersprachen gefolgt. Beispiele für diese Entwicklung sind etwa die Programmiersprache Swift von Apple, die zur Programmierung von iOS- und MacOS-Anwendungen genutzt wird oder die Sprache Kotlin, die seit kurzem die Standard-Sprache zur Entwicklung von Android-Anwendungen ist.

Funktionale Programmierung in der Industrie

Der folgende Link sammelt Firmen in Schleswig-Holstein und Hamburg, die funktionale Programiersprachen einsetzen.

Die folgenden Links sammeln Firmen, die die entsprechenden Programmiersprachen einsetzen.

Programmiersprachen wie Scala sind im Vergleich dazu sehr viel stärker verbreitet, da man Scala zum Beispiel auch als leichtgewichtiges Java verwenden und auf viele der funktionalen Konzepte verzichten kann. Zu den Unternehmen, die Scala einsetzen, gehören zum Beispiel LinkedIn, Twitter, Foursquare, Netflix und AirBnB und in Deutschland zum Beispiel Otto und Zalando.

Programmiersprachenkonzepte im Mainstream

Viele Programmiersprachenkonzepte, die ihren Ursprung in Programmiersprachen wie ML hatten, haben inzwischen Einzug in Mainstream-Sprachen gehalten. Um dies zu illustrieren, hier ein paar Beispiel von Konzepten, die wir in der Vorlesung besprochen haben.

Weitere Ressourcen