Visitenkarte Patrick Krusenotto
1 Funktionale Programmierung
Die Funktionale Programmierung stellt aus meiner Sicht die Zukunft der Softwareentwicklung dar, denn die übelste Fehlerquelle in Entwicklung und Betrieb von Softwareprodukten ist die fehlerhafte Verwaltung innerer Zustände. Funktionale Programmierung sperrt Zustände aus den Abläufen aus und stellt Berechnungen als Komposition von Funktionen dar. Viele in der Mathematik etablierte Instrumente lassen sich auf so entstandene Programme anwenden, um deren Eigenschaft zu untersuchen und nachzuweisen.
Aus diesen Gründen und weil die Funktionale Programmierung großen Spaß macht, sobald die ersten Hürden genommen sind, habe ich ein Buch dazu veröffentlicht:
Krusenotto, Patrick M., Funktionale Programmierung und Metaprogammierung : Interaktiv in Common Lisp*, Wiesbaden, 1.Aufl., 2016
Es gibt mehrere Veröffentlichungen zu diesem Buch. Dieses Youtube-Video ist ganz nett gemacht trifft ungefähr den Kern der Sache.
1.1 Errata
Formale und inhaltliche Fehler sammle und veröffentliche ich hier.
1.2 Links
1.3 Website zu Common Lisp
Diese Website bietet verschiedene einführende Artikel zu Common Lisp und Metaprogrammierung. Lisp und seine Dialekte unterscheiden sich von konventionellen Programmiersprachen dadurch dass sie aufgrund der Homoikonizität direkte Metaprogrammierung ermöglichen.
Es ist erstaunlich, dass dieses Merkmal kaum Niederschlag in anderen Programmiersprachen gefunden hat. Immerhin hat das moderne Julia, das ähnlich wie das von Apple in den 90ern entwickelte Dylan semantisch mit Common Lisp verwandt ist, genau wie dieses ein Makro-Feature eingebaut. Ob die Anwender dieses intensiv nutzen, bleibt abzuwarten.
2 Informatik
Seit ca. 1980 schreibe ich Software in verschiedenen Programmiersprachen und für unterschiedliche Anwendungen. Zuerst in Z80-Assembler dann in μLisp, 80x86-Assembler, Pascal, Fortran, Intel 8051, C++, Dylan, C, Perl und schließlich Common Lisp. Aktuell elerne ich Haskell.
Themen meiner Arbeit, die mich geprägt haben, waren Schach, Steuerungen für CNC-Maschinen und chemische Reaktoren, Treibersoftware für Feldbus-Systeme, MS-Windows, Software für analytische Geometrie, Compilerbau und Künstliche Intelligenz.
In jüngerer Zeit befasse ich mich viel mit der Erstellung von DSLs, die ich beruflich für Untersuchungen von Massendaten (neudeutsch "big data") einsetze. Diese DSLs basieren auf Metaprogrammierung in Common Lisp, die ich auch in meinem Buch erläutere.
3 Mathematik
Ich habe großes Interesse an Mathematik und sie hat mich über Jahrzehnte inspiriert und transpiriert :-). Aktuell beschäftige ich mich vermehrt mit Statistik und Wahrscheinlichkeitstheorie.
4 Bildnis