Funktionale Sprachen: F# in der Enterprise-Entwicklung

F# ist eine statisch typisierte Functional-­first-Sprache mit Features und Idiomen sowohl für funk­tionales als auch für objektorientiertes Programmieren.

Artikel verschenken
In Pocket speichern vorlesen Druckansicht 5 Kommentare lesen
F# in Enterprise-Entwicklungen
Lesezeit: 20 Min.
Von
  • Roman Sachse
Inhaltsverzeichnis

Funktionalen Programmiersprachen haftet in den Köpfen vieler Softwareentwickler noch immer etwas Esoterisches an. Entwickler, die sich mit solchen Sprachen beschäftigen, benützen Sätze wie: "Eine Monade ist nur ein Monoid in der Kategorie der Endofunktoren." Sie interessieren sich mehr für theoretische Konzepte und Diskussionen zu statischen Typen als dafür, funktionierende Geschäftssoftware zu schreiben. Microsoft hat bei der Einführung von F# in .NET nicht gerade dazu beigetragen, dieses Bild zu ändern. Insbesondere am Anfang wurde F# als Sprache für mathematische Anwendungen oder für das Bearbeiten großer Datenmengen gepriesen. Zusätzlich hat Microsoft die Sprache bisher recht stiefmütterlich behandelt.

Obwohl in den letzten Jahren pragmatische funktionale Sprachen wie Elm, Elixir, Clojure und auch F# stärker in den Fokus rückten, sind die klassische objektorientierte Programmierweise und Sprachen wie Java, C# oder PHP immer noch der Standardweg, Software zu schreiben. Ein Grund dafür ist, dass funktionale Konzepte auch in diesen Sprachen immer mehr Einzug halten und die Notwendigkeit wegfällt, sich grundsätzlich mit einer funktionalen Sprache auseinanderzusetzen. Dies ist sehr schade, da funktionale Denkweisen wie die grundsätzliche Unveränderlichkeit von Daten und unidirektionale Datenströme innerhalb einer Anwendung viele Probleme objektorientierter Anwendungen lösen, aber in Sprachen, die diese Konzepte nicht in ihrer DNA haben, nur sehr schwer oder umständlich umzusetzen sind.

Mehr zum Thema Funktionale Programmierung

Zuerst gilt es, mit einigen Buzzwords aufzuräumen. F# ist eine statisch typisierte Functional-first-Sprache mit Features und Idiomen sowohl für funktionales als auch für objektorientiertes Programmieren. Die Sprache hat ein sehr mächtiges statisches Typsystem, das in den meisten Fällen in der Lage ist, den Typ eines Ausdrucks oder Wertes ohne die Angabe von Typparametern zu inferieren. Das bedeutet, dass es häufig nicht notwendig ist, die Typen bei Benutzung anzugeben. Der Compiler kann diese aus dem Kontext ableiten.