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.
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.
Die Basics
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.
URL dieses Artikels:
https://www.heise.de/-4783839
Links in diesem Artikel:
[1] https://www.heise.de/ratgeber/Funktionale-Programmiersprache-Elixir-Pragmatisch-und-leicht-zu-erlernen-4779465.html
[2] https://www.heise.de/ratgeber/Wissenschaftliches-Rechnen-Julia-fuer-die-Datenanalyse-4780150.html
[3] https://www.heise.de/ratgeber/Einfuehrung-Funktionale-Programmierung-mit-Haskell-und-Idris-4780835.html
[4] https://www.heise.de/ratgeber/Programmieren-Ein-Einstieg-in-Raku-4781707.html
[5] https://www.heise.de/ratgeber/Statistiksprache-R-Inhaltsanalyse-von-Texten-4782344.html
[6] https://www.heise.de/ratgeber/Funktionale-Sprachen-F-in-der-Enterprise-Entwicklung-4783839.html
[7] https://www.heise.de/ratgeber/Programmieren-Ein-Einstieg-in-Quantum-Computing-4835748.html
Copyright © 2020 Heise Medien