Presenting Literate Programming (Level: Beginner)

Conference Day - 20. Februar
 
11:05
11:50
 
Technologien und Tools
 
Raum Alan Turing

Literate Programming fasst die Dokumentation mit dem Source-Code zusammen. Im Gegensatz zu Kommentaren im Source-Code überwiegt hier die Dokumentation, die Source-Code Fragmente enthält. Oft wird Literate Programming verwendet, um komplexe Software-Pakete zu dokumentieren. Neben dem Satzsystem TeX gibt es Dokumentationen für C-Compiler, eine MP3-Bibliothek und sogar einen Raytracer in Buchform.

Jedoch wird beim klassischen Literate Programming ein fertiges Programm dokumentiert. Die schrittweise Herleitung eines Programmes beschreibt es nicht. Das fertige Programm ist oft zu komplex für das Verständnis. Leichter fällt es, wenn in kleinen Schritten Programme aufgebaut und getestet werden. Bei der Erstellung eines solchen Systems ist Timm auf ein neues Format gestoßen, das er in diesem Vortrag vorstellt.

Das quelloffene Tool hex erstellt aus speziellen Markdown-Dokumenten sowohl Source-Code, als auch eine Slideshow im HTML-Format. Die Folien enthalten Source-Code Fragmente mit Notizen.

Durch die Beschränkung auf Folien bleibt der Code überschaubar: Auf jede Folie passt nur sehr wenig Source-Code. Ein intuitives Macro-System erlaubt es, große Funktionen auf mehrere Folien aufzuteilen. Include-Mechanismen und lokale Makros strukturieren große Projekte. Und da hex direkt Compiler aufrufen kann, ersetzt hex in einfachen Szenarien Build-Tools.

Die Generation kann nach jeder Folie abgebrochen werden. Nur der Source-Code bisher betrachteter Folien wird generiert. Da nicht definierte Fragmente keinen Fehler produzieren (sie werden aus dem generierten Source-Code ausgeblendet), bleibt das Ergebnis ausführbar. So erhält die Leserin oder der Leser eine direkte Rückmeldung zum bisher durchgearbeiteten Teil des Projekts.

In diesem Vortrag präsentiert Timm, welche Motivationen hinter hex stehen. Welche Probleme löst hex und welche nicht? Wie lässt sich ein einfaches Software-Projekt in einer beliebigen Sprache mit hex umsetzen? Er führt durch die Syntax und zeigt Schritt für Schritt die generierten Dateien.

Als Ausblick gibt es einen Einblick in die aktuelle Entwicklung einer integrierten IDE für hex und Meta-Fragmente. Natürlich ist hex mit hex geschrieben.

Ziel des Vortrags ist es, Teilnehmerinnen und Teilnehmer zu motivieren, außerhalb festgefahrener Strukturen zu denken. Literate Programming ist ein sehr alter Schritt, um eine andere Sicht auf Code zu erhalten. Durch das Aufteilen auf Folien können leicht Elemente aus Clean Code umgesetzt werden, ohne dass der generierte Code ineffizient wird. hex selbst ist klein und schnell und fällt selbst auf einem Raspberry Pi als Zwischenschritt kaum ins Gewicht. Vielleicht finden sich interessierte Nutzer? Das Projekt ist Open Source und liegt unter https://github.com/itmm/hex

Timm Knape

Timm Knape Softwaretechnik

Timm Knape programmiert seit über 30 Jahren. Angefangen mit C64 und Amiga, dann Mac und Bebox, PCs immer nebenbei mit halben Herz und ist er nun beim Rasberry Pi als Desktop angekommen. Aber ein Wechsel auf RISC-V steht bevor, sobald es günstige Boards gibt.

Nach dem Studium (Informatik und Mathe) hat er als Consultant in großen Telekommunikationsunternehmen und im Finanzsektor gearbeitet. Seit zwei Jahren arbeitet er als Senior Software Architekt für einen Hersteller von Event-Technology im Taunus. Hier begleitet er die Digitalisierung der Artikel sowohl in der Planung als auch in der Umsetzung. Vor langer Zeit hat er bei Ken Schwaber himself Scrum gelernt und setzt Projekte agil um.

Seit einem knappen Jahr hat er an seinem Code-Generierer hex gearbeitet und nutzt ihn für viele Projekte in C, C++, Assembler und JavaScript. Alles auf einem Raspberry Pi.

Nebenbei spielt er Gitarre und Kontrabass.