Donald Knuth, eine der einflussreichsten Persönlichkeiten der Informatik und insbesondere der Programmierwelt, teilte 2008 in einem ausführlichen Interview tiefgehende Gedanken über die Entwicklungen und Herausforderungen der Softwareentwicklung. Dabei sprach er über den Aufstieg von Open-Source-Software, die Problematik der aktuellen Multicore-Architekturen, die eingeschränkte Verbreitung des literaten Programmierens sowie seine Sicht auf moderne Softwaremethoden und das Zusammenspiel von Hardware und Algorithmen. Knuth gilt als einer der Wegbereiter der Open-Source-Bewegung, auch wenn er selbst diese Rolle nie explizit beanspruchte. Er betonte, dass die Freigabe von TeX als Open Source primär darauf zurückzuführen war, proprietäre Implementierungen zu vermeiden und um eine Korrekturmöglichkeit des Codes zu erlauben. Für ihn sind dies Fenster, durch die die heutige Open-Source-Gemeinschaft ihre Stärke zieht.
Überraschend sei für ihn die enorme Erfolgsbilanz dieser Bewegung nicht, doch sieht er noch ein großes ungenutztes Potenzial, vor allem da sich die Wirtschaft zunehmend von Produktorientierung weg hin zu dienstleistungsbasierten Modellen bewegt. Open-Source-Programme könnten dabei besser als kommerzielle Pendants sein, da sie tausende von individuell anpassbaren Binärversionen für spezifische Nutzer-Konfigurationen bieten könnten. Das vermeidet Verschwendung, die durch universelle ausführbare Dateien, die ineffiziente Synchronisationsbefehle enthalten, entstünde. Trotzdem räumt Knuth ein, dass es Softwareprodukte wie Adobe Photoshop geben wird, die durch Marken, Funktionalität oder Einfachheit einen Vorsprung gegenüber freien Alternativen behalten. Das Interview räumte auch mit einem weitverbreiteten Mythos auf – der Legende, Knuth habe einen Programmierwettbewerb mit einem Programm gewonnen, das bereits beim ersten Kompilierversuch fehlerfrei lief.
Tatsächlich nutzte Knuth damals noch Kartenstapel und stapelverarbeitete Computersysteme, während die Konkurrenz zeitgeteilte Systeme bediente und aufgrund der überlasteten Hardware nicht rechtzeitig fertig wurde. Für ihn ist die Methode des sofortigen Kompilierens mit kleinen Code-Inkrementen und der Nutzung von Unit-Tests nur in bestimmten Situationen sinnvoll, wenn man sich in völlig unbekanntem Terrain befindet. In den meisten Fällen empfindet er diese Herangehensweise als Zeitverschwendung, da viele Schritte unnötig sind und das sogenannte „Mocking“ keine Rolle spielt. Ein bedeutendes Thema ist die Multicore-Technologie, die Applikationen zwingt, auf Parallelität ausgelegt zu sein. Knuth zeigt sich gegenüber diesem Trend skeptisch und spricht von einer Art Innovationsstau auf Hardwareseite, bei dem man Softwareentwickler für das Auslaufen des Moore’schen Gesetzes verantwortlich machen wolle.
In den letzten 50 Jahren habe er tausende Programme geschrieben, doch nur sehr wenige hätten durch Parallelität merklich profitiert. Dies gelte auch für TeX, das seiner Meinung nach keinen Vorzug von Multicore-Systemen ziehe. Obwohl wichtige Anwendungen wie Grafik-Rendering oder Simulationen Multi-Prozessor-Architekturen benötigen, seien solche Projekte sehr speziell und müssen laufend an neue Hardware angepasst werden. Er befürchtet zudem, dass Multithreading als allgemeine Lösung ähnlich scheitern könnte wie Intels Itanium-Projekt, bei dem geeignete Compiler nicht realisiert wurden. Angesprochen auf die Verbreitung des literaten Programmierens, eines Konzepts, das Knuth selbst als essentiell für sein Schaffen beschreibt, resümiert der Wissenschaftler, dass diese Methode trotz deutlich besserer Softwarequalität nicht die Massen erobert hat.
Literates Programmieren erfordere eine Kombination aus Programmier- sowie Schreibfähigkeit, zwei Fertigkeiten, denen nur wenige Menschen gleichzeitig gerecht werden. Sie bleibt somit ein eher persönliches Werkzeug, das für die meisten Entwickler zu aufwendig erscheint, obwohl es Knuth für komplexe Projekte wie den MMIX-Simulator unabdingbar war. Als nachträglichen Lichtblick sieht er, dass Teile der CWEB-Konventionen mittlerweile als Basis in vielen Linux-Distributionen vorinstalliert sind. Auch hinsichtlich der Werkzeuge, die Knuth nutzt, gewährt das Interview Einblicke. Er arbeitet mit einem analogen Ansatz, startet alle Notizen mit Bleistift und Papier, bevor er die Texte in Emacs in TeX-Syntax eintrage.
Zur Umsetzung von Algorithmen nutzt er CWEB, eine von ihm entworfene Kombination aus Programmcode und Dokumentation, die hervorragend mit Debuggern wie GDB harmoniert. Für graphische Darstellungen nutzt er MetaPost, Photoshop oder Illustrator. Seine Arbeitsumgebung ist dabei vorwiegend Ubuntu Linux auf einem Laptop ohne Internetzugang, was ihm maximale Kontrolle über seine Daten ermöglicht. Besondere Vorlieben zeigt er für das Terminal-Tool rxvt gegenüber beliebten Alternativen wie GNOME oder KDE, ergänzt durch spezielle Tastaturkürzel und maßgeschneiderte Emacs-Mode-Settings. In Bezug auf die Zukunft von The Art of Computer Programming (TAOCP) zeigt sich Knuth pragmatisch.
Die Arbeit an Band 4, der in mehreren Heften erscheinen wird, nimmt viel Zeit in Anspruch, denn er filtert eine Masse an relevanten Informationen aus zahlreichen Quellen und hält sich von zu viel akademischem Einzelexpertise fern, die für praktische Anwendungen kaum Bedeutung haben. Aussagen über Fertigstellungstermine müssen daher mit Vorsicht betrachtet werden, da neue Erkenntnisse und das Bedürfnis, alle wesentlichen Fakten abzudecken, den Fortschritt beeinflussen. Er erinnert dabei humorvoll daran, dass der Ausblick für Band 5 mit „2015“ ursprünglich schon mehrfach angepasst wurde und ein zentrales Prinzip beim Programmieren gilt: Diese Zahl könne sich auch noch verschieben. Die persönliche Gesundheit war während des Interviews ebenfalls ein Thema. Knuth berichtete offen von seiner Krebserkrankung und erklärte, dass er trotz der Diagnose gesund und aktiv bleibe.
Er nimmt die verbleibende Zeit dankbar an und sieht es als seine Aufgabe, seine umfangreichen Forschungsarbeiten und Aufzeichnungen weiterhin zu verarbeiten und zu publizieren. Abschließend gibt Knuth sehr reflektierte Ratschläge an junge Entwickler. Er warnt davor, Moden und Trends blind zu folgen, auch wenn moderne Praktiken wie Extreme Programming gewisse positive Aspekte wie Teamarbeit und gegenseitiges Code-Lesen enthalten. Besonders kritisch äußerte er sich über den übermäßigen Fokus auf wiederverwendbaren Code. Stattdessen hält er „re-editierbaren“ Code für weitaus sinnvoller, da er Anpassungen erlaubt und keine undurchsichtigen Black Boxes schafft.
Seine Haltung ist grundlegend selbstbestimmt: Jeder solle das tun, was für den eigenen Stil am besten passt, ohne sich um Dogmen zu sorgen. Das Interview mit Donald Knuth aus dem Jahr 2008 ist ein wertvolles Zeugnis eines der wichtigsten Denker der Informatik, der sowohl die historische Entwicklung reflektiert als auch den Blick auf gegenwärtige Herausforderungen und zukünftige Aussichten offenlegt. Seine Gedanken zu Open Source, Multicore-Systemen, Softwareentwicklung und literatem Programmieren sind heute mindestens so relevant wie damals und bieten wertvolle Orientierung für Entwickler, Forscher und Technologen weltweit.