Freiberuflicher Haskell-Entwickler Dr. Henning Thielemann


Ich entwickle für meine Kunden wissenschaftliche Software. Um was es da so geht, kann ich wahrscheinlich am einfachsten an meinen bisher bearbeiteten Projekten verdeutlichen:

Als wissenschaftlicher Mitarbeiter des Zentrums für Technomathematik an der Universität Bremen habe ich unter anderem

Zur allgemeinen Unterhaltung habe ich in Haskell einen Web-Server entwickelt, welcher andere WWW-Seiten in markante Dialekte oder Fantasiesprachen übersetzt. Das sogenannte "Parallelnetz" wird immer mal wieder in Presse und Rundfunk vorgestellt.

Stärken

Meine Stärken sind:

Technik

Funktionale Programmierung mit Haskell

Um wirklich diszipliniert programmieren zu können, bediene ich mich am liebsten der Programmiersprache Haskell. Die allermeisten gängigen Programmiersprachen (C/C++, Java, C#, Python, PHP, Perl, Ruby) sind imperativ, orientieren sich also im Groben daran, wie die Mikroprozessoren arbeiten. Funktionale Sprachen wie Haskell, OCaml, ML hingegen orientieren sich an der Mathematik, insbesondere an mathematischen Funktionen. Es ist daher möglich, Beweise zu führen, dass ein Programm bestimmte Eigenschaften aufweist oder bestimmte Fehler nicht enthalten kann. Diese Beweise führt man mit Hilfe des Typsystems und sie werden vor dem Fertigstellen eines Programmes vom Haskell-Übersetzer geprüft. Es ist (in gewissen Grenzen) also nicht möglich fehlerhafte Programme auszuliefern. Seine große Stärke spielt dieses Typsystem dann aus, wenn man in einem großen Programm eine ganz grundlegende Funktion ändert oder erweitert. So eine Änderung kann Anpassungen an ganz vielen Stellen des Programmes erfordern und mehrere Tage dauern, aber wenn am Ende der Typprüfer grünes Licht gibt, ist die Chance sehr groß, dass das Programm wieder einwandfrei läuft. In herkömmlichen Sprachen gehen solche großen Änderungen meistens damit einher, dass schon mal funktionstüchtige Teile auf einmal Fehler aufweisen, oder dass aus Angst vor Fehlern große Aufräumarbeiten im Programm ewig hinausgeschoben werden, und so bekannte Fehlerquellen bestehen bleiben und die Entwicklung neuer Funktionen immer schwerfälliger wird.

Freie Software

Bei freier Software geht es nicht um kostenlose Software, es geht auch nicht um Hobby-Software zweifelhafter Qualität. Es geht vor allem um Investitionsschutz. Ein Anwender setzt ein Programm nicht einfach mal so ein und morgen ein anderes. Vielmehr wird er sich, manchmal über Jahre, intensiv in die Programmbenutzung einarbeiten, das Programm für seine Ansprüche einrichten oder erweitern, falls es das zulässt, wird damit Dateien erstellen, die nur von diesem Programm verarbeitet werden können. Und dann geht der Programmhersteller pleite, oder verkauft seine Entwicklungsabteilung, oder der Hersteller ändert seine Strategie grundlegend.

Nehmen sie zum Beispiel Adobe InDesign. Über ein Jahrzehnt haben sich Anwender daran gewöhnt, haben damit Dokumente gestaltet und sich über Tipps und Tricks ausgetauscht. Dann führte Adobe ein Mietmodell mit Online-Zwang ein, womit das Programm für etliche Anwender unzumutbar wurde. Sie haben dann nur die Wahl: Friss oder stirb - Bleibe bei einer alten Offline-Version und werde von aktuellen Entwicklungen oder neuen Rechnergenerationen abgeschnitten, wechsle zur Konkurrenz und verliere den Zugriff auf alle deine bisher gespeicherten Dokumente oder ergib dich dem neuen Online-Zwang, und hoffe darauf, dass es keine weiteren Verschlechterungen geben wird.

Anderes Beispiel: Das Programm MuPAD ist ein Computeralgebrasystem, welches sich als preiswerte Alternative (ich glaube, etwa 150€) zu den großen Systemen Mathematica und Maple etablierte. Dann wurde es von MathWorks aufgekauft, in das furchtbare MatLab integriert und zum gut siebenfachen Preis verkauft, vergleichbar mit der Konkurrenz. Gespeicherte MuPAD-Sitzungen wurden auf einen Schlag unlesbar.

Bei freier Software läuft das anders. Beispiel StarOffice: Es hat mehrere Wechsel und Umbenennungen und Abzweige gegeben, womit alle Versuche von Firmen wie Oracle abgewehrt wurden, die Benutzer zu gängeln. Die mit StarOffice und seinen Nachfolgern erzeugten Dokumente lassen sich nach wie vor lesen und weiterverarbeiten.

Der langen Vorrede kurzer Sinn: Zum einen benutze ich für meine Arbeit fast ausschließlich freie Software. Das garantiert, dass meine Programme auch in vielen Jahren noch benutzbar sein werden. Zum anderen veröffentliche ich möglichst viele meiner Programme und Funktionsbibliotheken als freie Software. Andere Benutzer haben dann davon einen Nutzen, bringen aber auch Erweiterungen und Fehlerkorrekturen ein. Wenn ein Auftraggeber ein Bedürfnis an Schutz von Betriebsgeheimnissen hat, so lasse ich die auftragsspezifischen Teile meiner Programme für einen gewissen vereinbarten Zeitraum geschlossen.

Beratung

Ich muss nicht immer neue Projekte aus dem Boden stampfen. Ich helfe auch gerne in anderen Projekten aus.

Sie suchen für Ihre Aufgabe eine verlässliche Programmiersprache, welche Fehler vermeiden hilft und mit der man Programme langfristig warten kann? Sie haben von den Vorzügen funktionaler Programmierung gehört und erwägen einen Umstieg? Sie haben bereits einen Umstieg probiert, es tun sich aber größere Schwierigkeiten auf? Sie haben bereits ein Projekt in funktionaler Programmierung entwickelt, aber im Laufe der Zeit ist es sehr unübersichtlich geworden? Ihr Projekt läuft so gut, dass Sie Verstärkung für Ihre Entwicklung benötigen?

In all diesen Fällen sind Sie bei mir genau richtig! Das kann ich für Sie tun:

Erfahrungen

Bei mir können Sie auf Erfahrungen mit funktionaler Programmierung in Haskell seit 2003 zurückgreifen. In dieser Zeit habe ich etwa 100 Pakete auf Hackage veröffentlicht. Schon zuvor habe ich mich aber auf die Programmierung mit ausdrucksstarken sicheren Sprachen wie Modula-3 konzentriert. Meine Erfahrungen im Überblick:

Im allgemeinen bin ich an mathematischen Problemstellungen interessiert. Spezialisiert habe ich mich dabei auf:

Kontakt

Ihre Fragen können Sie frei von der Leber weg an richten.
Erstellt:2013-02-11 Henning Thielemann
Mit HSC verarbeitet seit:2013-02-11
Zuletzt geändert:2020-06-08, 17:37
Meinung des HTML-Prüfers: Valid HTML 4.0!
Überwachungszustand:Aktion UBERWACH!
Hier noch ein paar schwachsinnige E-Mail-Adressen zur Fütterung von SPAM-Adresssammlern. Die Adressen sind mit Hilfe von Markov-Ketten zufällig aus realen Namen zusammengewürfelt und existieren mit sehr großer Wahrscheinlichkeit nicht.