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.