Wettbewerbsvorteil F#

Sie wissen dass Funktionale Programmierung ein relevantes Thema in der Software Entwicklung ist, aber Sie haben bisher gewartet es auszuprobieren?

Ja C# bietet Funktionale Ansätze, wird aber niemals das bieten können, was eine vom Kern her echte Funktionale Sprache bietet.

Und genau dies macht den Unterschied, denn Werkzeuge prägen die Denkweise und Herangehensweise beim Lösen von Problemen. Ja genau, es geht um Problemlösungen, die F# Syntax ist nebensächlich und übrigens viel einfacher als C#. Die Denkweise beeinflusst die Architektur, den Design und vieles wird einfacher!

F# ist voll kompatibel mit der .NET Umgebung, sie müssen also nichts über Bord werfen, kein Risiko, ja Sie haben F# bereits seit 2010 auf Ihren Computern installiert im Visual-Studio. F# ist voll von Microsoft unterstützt, ist Open Source und Multiplatform!

Ich kenne F# seit 2009 und wende es seit 2011 fulltime für alles an. Davor C# seit .NET 1.1 und C++, PASCAL, ADA, LISP, C, Assembler. Ich habe Informatik studiert und mir mit 12 Jahren das Programmieren selbst beigebracht. Ich weiss wovon ich rede. Ich biete eine erfahrene sauber aufgebaute Einführung in die praxisnahe Funktionale Programmierung mit F# für .NET an.

Da ich selber von C# auf F# umgestiegen bin, kenne ich die Stolpersteine und räume diese aus dem Weg für einen glatten Einstieg. Ich denke nach meinem Kurs werden Sie nicht mehr zögern F# einzusetzen. Und ich denke, falls bei Ihnen schon jemand F# ausprobiert hat und zur Seite gelegt hat, weil man “das alles in C# auch machen kann“, dann liefere ich genau die nötigen fehlenden Facts. Das Zentrale ist nicht die Sprach Syntax von F# die offensichtlich anders ist, es ist die Denkweise und die Konzepte der Funktionalen Programmierung.

Und nein, es ist kein Hype, keine Bubble die bald platzen könnte, die Grundlagen der Funktionalen Programmierung wurden schon in den 30-er Jahren gelegt und mathematisch bewiesen! Und warum ist es dann heute so neu, dass man das jetzt lernen soll? Die Zeiten sind vorbei, wo ein Computer nur einen Prozessor hatte und Speicher ist heute massig vorhanden. Und um diese neuen Gegebenheiten bestens in Ihren Software Produkten nutzen zu können, ist die Funktionale Programmierung (FP) die ideale Methodik. Und an den Schulen und Universitäten wird es bisher leider nur kurz überflogen. Denn bisher wollte man auf dem Arbeitsmarkt ausschließlich Software Entwickler mit Kenntnissen in Objektorientierter Programmierung (OOP). Und F# kann übrigens auch OOP, wie gesagt voll kompatibel zu .NET. Also wird OOP nicht über Bord geworfen, sondern echtes FP kommt hinzu!

Und wie immer ist man zu beschäftigt, um Neues anzuwenden?

Are you too busy to improve?

Bild Referenz: https://hakanforss.wordpress.com/2014/03/10/are-you-too-busy-to-improve/

Ich sage es Ihnen, das ist es Wert! Wenn Sie Ihrer Firma einen Wettbewerbsvorteil verschaffen wollen und produktiver und effektiver, robuste Software Entwickeln wollen in der .NET Welt, dann ist das der beste Weg.

Und sollte ich Sie noch nicht ganz überzeugt haben, dann lesen Sie bitte was andere Anwender von namhaften Firmen zu F# sagen http://fsharp.org/testimonials/

Mehr zu den Vorzügen von F# können Sie auf meinem Deutschsprachigen Blog lesen http://FunctionalSoftware.NET/warum-fsharp/

Kompakte F# Schulungskurse

Vorsprung durch Wissen!
Es ist nicht genug zu wissen – man muss auch anwenden.
Es ist nicht genug zu wollen – man muss auch tun.
— Johann Wolfgang von Goethe
 

 



Über mich

Mein Name ist Roman Bossart, in diesem Blog hier schreibe ich über Software Entwicklung mit Funktionaler Programmierung.

Ich bin Gründer und Inhaber von Bossart Analytics – Calibration Model und beschäftige mich mit Machine Learning und Software Entwicklung und lebe in der Schweiz nahe St. Gallen.

Unter folgenden Links finden Sie weitere Informationen:
Kontakt
Impressum
Twitter
StackOverflow


Warum blogge ich

Ich schreibe dies einerseits für mich als Zusammenfassung und als Dank an die motivierende innovative F# Community und für alle die, die an der neuen “Software Revolution” vorne dabei sein und teilnehmen wollen. Ich glaube die Softwareentwicklung macht nun endlich nach Jahrzehnten einen grossen Schritt in die richtige Richtung. Wir brechen aus, aus der OO-dominierten Sackgasse. Viele Sprachen haben funktionale Aspekte aufgenommen. Wer dies gut findet, der findet und erkennt noch viel mehr Möglichkeiten und Denkansätze, wenn er eine reine Sprache einsetzt, die ihre Funktionalen Wurzeln im Stammbaum seit 1973 weiterpflegt. Ich habe es erlebt und möchte diese Erfahrung und Wissen mit euch teilen.

Viele bloggen während sie etwas lernen, mit der Motivation ihre neuen Teil-Erkenntnisse stückweise zu dokumentieren. Dieser Blog ist eine Zusammenfassung von mir, der viele Teil-Lern-Puzzles schon hinter sich hat. Dies ergibt den Vorteil keine Abwege und Sackgassen-Erkenntnisse zu enthalten. Ein abgestimmtes Gesamtbild das sich auf die wichtigsten Fakten konzentriert und alle Kernpunkte und deren Essenz beleuchtet alles ganz pragmatisch und praxistauglich.

Das schöne ist, wenn man (fast) von Anfang an dabei ist und beobachtet wie das Aufkommen und Ausbreiten der F# Sprache, deren Anwender, Anwendungen und Tools, Bibliotheken und Open-Frameworks voranschreitet, dass man alles stückweise mitbekommt und die Zeit hat alles was neu ist zu lesen und auszuprobieren. Somit hat man einen nahezu kompletten Überblick was es gibt. Startet man heute ist so vieles schon da und man weiß nicht recht womit man starten soll. Also kein systematischer Aufbau, kein roter Faden den man folgen kann und so ohne Umweg die neue Welt von F# entdecken kann.

Dies will ich hier tun und beschreibe den geradlinigen Weg, der die typischen Problempunkte schon zu beginn anspricht und klarstellt, so dass der Einstieg und Anwendung glatt und scharf# geschliffen ohne Unfälle von statten geht.


Wer schreibt hier?

Damit Ihr wisst, von wem die Texte und Tipps stammen, wie ich geprägt bin, und wie und warum ich F# gefunden habe und nicht mehr loslasse.

Seit Ende der 80-er Jahre entwickle ich Software objektorientiert (ADA, PASCAL, C++, C#) und 2009 habe habe ich F# für mich entdeckt.

Es kam so, ich war 2008 von LINQ (mit C#) so begeistert, dass ich mich eines Tages fragte woher es kommt. Dabei bin ich auf Microsoft Research gestossen, aus dieser Schmiede kam es. Und was noch viel interessanter war, diese Leute arbeiten an einer neuen Sprache, es war Microsoft F#, May 2009 Community Technology Preview die man sich zum Visual-Studio 2010 Beta dazu installieren konnte. Meine Begeisterung steigerte sich mit F#, denn durch das interaktive Ausprobieren, konnte man schnell Vorschritte beim Erlernen machen. Nicht erst ein Testprogramm schreiben zu müssen, um seine Code Fragmente auszuprobieren. Und es kam noch besser, es ist ja nicht nur die Sprache selbst, es ist auch das ganze .Net Framework, dass man so auch interaktiv Ausprobieren kann. Dies war früher nie möglich in C#, heute mit LINQPad und Konsorten geht das ja.

Ich kann so heute ganz glücklich auf mehrere produktive Jahre Erfahrung mit exklusiver F# Entwicklung zurückblicken.


F#, d.h. die Funktionale Programmierung, die ich vom Prinzip und Anwendung bereits seit 1984 von LISP kannte, konnte ich nun auch auf das .NET Framework anwenden, das ich schon seit 2002 (.NET 1.0) kenne. Im Gegensatz zu LISP macht F# nicht soviel Klammerungen nötig, was mir ganz gut gefällt.

Und das aller Beste an F# ist, man hat FP + OOP + .NET + interaktiv, in Script-Form und in kompilierter Form. Der Code ist kompakt, leserlich, wenig fehleranfällig und beschränkt sich auf das was man tun will. Und dies alles auch noch als Open Source (ja der komplette Compiler! Spaßeshalber von jemandem einmal als FOSLYN bezeichnet mit Anspielung auf ROSLYN) auf allen wesentlichen Plattformen wie Windows, Mac, Linux, Android, iOS (iPhone/iPad), JS/HTML5, GPU, FreeBSD.


Pro-Tip : Also wenn ihr auf LINQ, LINQPad oder PowerShell nicht verzichten könnt, dann müsst ihr unbedingt (zwangsmäßig) F# ausprobieren! Denn da kommt alles und noch viel mehr zusammen und alles ist aus einem Guss. Ich schreibe das hier, weil niemand später sagen soll, “Das hätte man mir doch früher sagen sollen! Da hätte ich mir viel Zeit und Mühe gespart.” So ich habe es gesagt / geschrieben.