Anmelden

Schlüsseltechnologie· Staffel 1· Folge 86

STP086: Literatur: Ein Plädoyer für schlanke Software

Donnerstag, 26. Februar 2026 · 1 h 29

MP3

Shownotes

<p>Die Erfahrung, dass das Plastikgehirn gelegentlich länger für die Dinge braucht, die wir ihm aufgeben, kennen wir alle. War das früher nicht schon mal besser? Oder sollte es nicht zumindest der Vergangenheit angehören? Oder täuschen wir uns und verklären die Vergangenheit…</p><h2>Shownotes</h2>Anhand von <a href="berthub.eu/articles/LeanSoftware_text.pdf"… Plea for Lean Software" (1995)</a> von Niklaus Wirth besprechen wir zwei wesentliche Fragestellungen. Zuerst einige Vorbeobachtungen:</p>
<ul>
<li>
<p>Frage 1: Warum ist Software (bzw. Produkte im Allgemeinen) immer weniger langlebig?</p>
<ul>
<li>COBOL-Software aus den 60ern ist immer noch im Einsatz, aber React-Apps von vor 5 Jahren sind hoffnungslos obsolet
<ul>
<li>siehe Vermutung, dass in der Frontend-Entwicklung Schnelllebigkeit von YouTube-Influencern getrieben wird</li>
<li>bei COBOL/Fortran-Systemen auch regulatorische Hürden (z.B. Steuerungsoftware für Atombomben in Fortran 77, weil ein <a href="infosec.exchange/@david_chisnall/1154637308549… auf neuere Versionen Tests der Software erfordern würde</a>, aber Atomwaffentests verboten sind)</li>
</ul>
</li>
<li>vgl. Erfahrung von ttimeless: Fensterbeschläge von vor 30 Jahren noch top, aber neuere von vor 5 Jahren tw. schon abgeranzt (Geplante Obsoleszenz? Survivorship-Bias?)
<ul>
<li>Wie schätzt man Qualität bei selten gekauften Produkten ab?</li>
<li>im Gespräch erwähnt: <a href="backblaze.com/blog/author/drivestatsteam/"… Drive Stats</a></li>
</ul>
</li>
<li>sich gegenseitig beschleunigende Marktmechanismen (Qualitätsschwund durch Sparmaßnahmen in der Produktion, Mode)
<ul>
<li><a href="reddit.com/r/BuyItForLife/comments/1106bml/why… dazu</a>: "Ich sah neulich eine alte Episode von 'Der Preis ist heiß' aus den 80ern, die UK-Edition mit [Bruce Forsyth]. Die Preise waren Dinge wie Mikrowellen, Fernseher, Möbelstücke und so weiter. Die Preise waren weit, weit höher, als was ich je geraten hätte. Wir sind mit der Vorstellung aufgewachsen, dass eine Mikrowelle weniger als 100 Pfund kosten sollte, obwohl sie unter Berücksichtigung der Inflation mittlerweile 400 kosten sollten. Alles ist scheiße günstig geworden."</li>
</ul>
</li>
<li>These von ttimeless: mehr Leute machen mehr Zeug machen mehr Altlasten (Xyrill erhöht um eine Coding-KI-Industrie und möchte sehen)</li>
</ul>
</li>
<li>
<p>Frage 2: Warum waren Computer in den 90ern schneller?</p>
<ul>
<li>welch Ironie, dass wir uns nach der Zeit zurücksehnen, in der der Autor unseres Textes sich über verschwenderische Programmierweisen aufregt</li>
<li>vgl. Frage im MDR: Wann kriegen wir wieder Akkulaufzeiten von einer Woche wie bei den alten Nokia-Handys?</li>
<li>offensichtlicher Einfluss: mehr Leistung, die sich nicht als konkrete Funktion äußert (z.B. höhere Auflösung erfordert mehr Videospeicher, moderne Konnektivität ist objektiv komplexer, als nur auf einen Anruf oder eine SMS zu warten)</li>
<li><a href="news.ycombinator.com/item?id=37538521">…;: "Ich war dabei bei den meisten dieser alten Maschinen und meiner Erinnerung nach waren sie <em>immer</em> langsam, weswegen es ein derart unerbittliches Rennen um das Upgrade auf eine schnellere Maschine gab, und warum für eine lange Zeit Leute jedes Jahr ihren alten Computer ersetzten. [...] Dieser Topos von 'wie konnten Dinge langsamer werden, damals war alles so schnell' ist eine fehlerhafte Erinnerung"</li>
<li><a href="news.ycombinator.com/item?id=37538305">… Perspektive aus demselben Thread</a>: "Weil wir erweiterbare anstatt zusammensetzbarer Software schreiben. Wir liefern nicht Funktionen aus, sondern Apps. Wieviele Instruktionen braucht man, um in Maschinensprache 1+1 auszurechnen? Wieviele Instruktionen braucht man, um die Suchleiste zu öffnen, den Taschenrechner zu finden und die Berechnung auszuführen?"</li>
<li>vgl. <a href="freakshow.fm/fs273-papst-von-china">Fr… Show 273</a> im Kapitel mit dem Nachruf auf Niklaus Wirth: in den 60ern vorherrschende Vorstellung unmittelbar bevorstehender Ablösung von Programmierern durch Computer, aber mehr Rechenleistung erfordert noch mehr Programmierer (vgl. <a href="de.wikipedia.org/w/index.php?title=Softwarekri…;, für den Verweis auf kombinatorische Explosion von Software-Komplexität siehe STP070)</li>
</ul>
</li>
<li>
<p>Komplexitätsquellen laut Wirth</p>
<ul>
<li>"verbesserte Benutzerführung und Funktionalität" laut Wirth keine gute Begründung
<ul>
<li>aber Wirth begründet das mittels seines eigenen extremen Fokus auf Basisfunktionalität ("Diese grundlegenden Aufgaben haben sich [... angesichts u. a. der] Ersetzung von aussagekräftigen Befehlswörtern durch hübsche Bilder [nicht geändert].")</li>
<li>Desktop-Metapher und Skeuomorphismus waren essentiell darin, Computersoftware einem breiten Publikum näherzubringen</li>
<li>vgl. Brooks (essentielle vs. versehentliche Komplexität), aber unterschiedliche Grenzziehungen</li>
<li>Wirth bevorzugt ziemlich explizit "simple" statt "easy"</li>
</ul>
</li>
<li>jede Funktion, die der Kunde haben will, wird eingebaut, ob sie sich nun sinnfällig in das ursprüngliche Design einfügt oder nicht
<ul>
<li>Komplexität durch Komplikationen</li>
</ul>
</li>
<li>monolithischer Systementwurf ("Jeder Kunde zahlt für alle Funktionen, aber nutzt nur wenige von ihnen.")
<ul>
<li>vgl. oben "wir liefern nicht Funktionen aus, sondern Apps"</li>
<li>Xyrill baut Systeme auch eher monolitisch, weil sich für ihn der Wartungsaufwand verringert, wenn alles in einer Codebase liegt</li>
</ul>
</li>
<li>Komplexität wird an sich als Funktionalität missverstanden: "Immer mehr scheinen die Leute Komplexität als Raffinesse zu interpretieren, was rätselhaft ist — Unverständliches sollte Argwohn erregen, nicht Bewunderung."
<ul>
<li>*hust* *hust* ✨KI✨ *hust* *hust*</li>
<li>kapitalistischer Anreiz: damit Nutzer in der eigenen Teergrube binden und Support und Beratung verkaufen</li>
</ul>
</li>
<li>gutes Design erfordert systematische Iteration auf dem ersten, offensichtlichen, überkomplizierten Entwurf
<ul>
<li>vgl. Antoine de Saint-Exupéry ("Es scheint, dass Perfektion nicht dann erreicht ist, wenn nichts mehr hinzuzufügen ist, sondern wenn nichts mehr wegzunehmen ist.")</li>
<li>aber: Zeitdruck ("akribische Ingenieursroutine zahlt sich kurzfristig nicht aus")</li>
<li>Wirth drischt hier stark auf die Kunden ein, die ständig neuen Klimbim wollen, was etwas aus der Zeit gefallen wirkt (bzw. nur etwas deplatziert; heute sind "die Kunden" die Werbeabteilung, die noch mehr Datenspuren sammeln will)</li>
</ul>
</li>
<li>deswegen auch extrem langsame Einführung von Techniken für methodisches Arbeiten (z.B. stark typisierte Programmiersprachen): "Methodisch korrektes Design [...] ist offenbar unerwünscht, weil auf diese Weise entwickelte Produkte zu viel Zeit bis zur Markteinführung brauchen."
<ul>
<li>Wirth beschwert sich, dass in den 90ern die Programmiertheorie der 70er (z.B. abstrakte Datentypen) erst langsam in Produktivumgebungen Einzug fand</li>
<li>passend dazu kommt zurzeit die Programmiertheorie der 90er (z.B. algebraische Datentypen wie in STP072, affine Typsysteme) erst langsam in die heutigen Produktivumgebungen, aber C hält sich immer noch hartnäckig</li>
</ul>
</li>
</ul>
</li>
<li>
<p>Wie heraus aus der Teergrube? Wirth bespricht sein eigenes <a href="de.wikipedia.org/w/index.php?title=Oberon_(Pro…)&oldid=258424717">Oberon System</a></p>
<ul>
<li>ursprüngliches Ziel: ein Betriebssystem inklusive Userspace, das kompakt genug ist, um als Lehrmaterial verwendet und in Lehrbüchern besprochen werden zu können</li>
<li>extreme Konzentration auf "Grundfunktionen" (z.B. keine grafische Oberfläche, nur Textinteraktion)</li>
<li>Implementation in einer typsicheren Programmiersprache mit Objektorientierung, um starke Modularität auf Codeebene zu ermöglichen
<ul> …

Anmelden oder registrieren

Jetzt

0:00 / 0:00