Die großen Engpässe
der Programmierung
Von Fortran-Speicherlimits bis zum Kontextfenster des LLM — warum jede Ära denselben strukturellen Fehler begeht, dasselbe Muster zu seiner Lösung entdeckt, und trotzdem jedes Mal so tut, als hätte sie das Rad erfunden.
Dieser Essay untersucht die These, dass die zentralen Engpässe der Softwareentwicklung seit sechs Jahrzehnten einer wiederkehrenden Struktur folgen: eine knappe Ressource wird zunächst durch rohe Kraft bekämpft, dann durch eine Abstraktionsschicht virtualisiert — mittels Zerlegung, hierarchischem Caching und verzögertem Laden. Die Analyse stützt sich auf primäre Quellen (Cooley & Tukey 1965, Dean & Ghemawat 2004, Packer et al. 2023) und identifiziert die Grenzen dieser Analogie ebenso wie ihre erklärende Kraft. Der Ton ist akademisch, das Augenzwinkern ist inklusive — denn wer sechs Jahrzehnte denselben Fehler dokumentiert, darf auch mal lachen.
Einleitung: Der ewige Déjà-vu-Moment
Jede Generation von Softwareentwicklern stößt an eine unsichtbare Wand. In den Sechzigern war es RAM, der buchstäblich Geld kostete — IBM rechnete Speicher in Dollar pro Kilobyte ab, und das waren Dollar, für die man damals ein Auto hätte anzahlen können.1Vgl. die Preisgeschichte von Kernspeicher: ca. $1 pro Bit in den 1950ern, sinkend auf ca. $0.01 pro Bit Mitte der 1970er. Quelle: Computer History Museum, „Memory & Storage Timeline“. In den Achtzigern war es der Adressraum. In den Neunzigern die Bandbreite. Heute ist es das Kontextfenster des Large Language Models.
Die Probleme sehen verschieden aus. Aber wer genau hinschaut — und das ist die zentrale These dieses Essays — erkennt denselben Antagonisten in wechselnder Verkleidung. Und dieselbe Lösung, die ihn jedes Mal besiegt. Nur dass jede neue Generation so tut, als hätte sie diese Lösung gerade erst erfunden. Die Informatik leidet, so könnte man polemisch formulieren, an einer kollektiven Amnesie ihrer eigenen Architekturgeschichte.
Errata & Korrekturen zur Originalfassung
Cooley-Tukey & die 70er: Die Originalfassung ordnet den FFT-Algorithmus den 1970er Jahren zu und beschreibt ihn als „primär eine Antwort auf CPU-Knappheit“. Beides ist korrekturbedürftig. Das Paper von Cooley & Tukey wurde 1965 publiziert, die erste Demonstration erfolgte 1964 auf einem IBM 7094.2J. W. Cooley & J. W. Tukey, „An Algorithm for the Machine Calculation of Complex Fourier Series“, Mathematics of Computation 19(90), April 1965, S. 297–301. DOI Die primäre Motivation war nicht generelle CPU-Effizienz, sondern die Erkennung unterirdischer sowjetischer Atomtests im Kontext von Kennedys Science Advisory Committee.3Vgl. IEEE Milestone-Dokumentation: „The demonstration of the Cooley-Tukey algorithm showed that it was 100 times faster.“ Die Sensoren wurden tatsächlich im Umfeld der SALT-Verhandlungen platziert. ETHW
Turbo Pascal Units & UCSD Pascal: Die Originalfassung suggeriert, Borland habe mit Units ein neuartiges Konzept geschaffen. Tatsächlich war das Unit-System von UCSD Pascal inspiriert, das bereits auf 8-Bit-Maschinen separate Kompilierung ermöglichte.4„Units in Borland’s Pascal were similar to Modula-2’s separate compilation system. […] Turbo Pascal syntax for units appears to have been borrowed from UCSD Pascal.“ — Borland Pascal Wiki. Quelle Borlands Verdienst war die elegante Integration in eine populäre IDE — nicht die Erfindung des Prinzips.
Quellenapparat: Die Originalfassung enthielt keine einzige Quellenangabe. Für einen Artikel, der Dissertationsniveau beansprucht, ist das ein methodischer Kardinalfehler. Die vorliegende Überarbeitung ergänzt 14 Primär- und Sekundärquellen.
Sechs Dekaden, sechs Engpässe
Was folgt, ist eine notwendigerweise verdichtete Darstellung. Jede Dekade war komplexer, als eine Karte sie einfangen kann — aber das ist der Witz: Verdichtung ist selbst das Muster, das wir untersuchen. Hover über die Karten für erweiterte Analyse und Quellen.
Speicher & Rechenzeit
Fortran · Assembler · Overlay-LinkerProgramme lebten in wenigen Kilobyte. Jede Variable kostete echtes Geld. Der FFT-Algorithmus von Cooley & Tukey (1965) reduzierte die Komplexität diskreter Fouriertransformationen von O(n²) auf O(n log n) — und machte damit Berechnungen praktikabel, die zuvor Stunden manueller Arbeit erfordert hätten.2Cooley & Tukey 1965. Die erste Demonstration auf einem IBM 7094 war 100× schneller als bestehende DFT-Implementierungen.
→ Manuelle Ressourcenverwaltung & Overlay-SegmenteAdressraum & kognitive Komplexität
C · Turbo Pascal · frühe OOPDas 640-KB-Limit des IBM PC erzwang ein bizarres Puzzle: Conventional Memory, Upper Memory, Extended Memory, Expanded Memory — vier verschiedene Arten, an denselben knappen Speicher heranzukommen.5Die 640 KB Grenze war eine architektonische Folge des Intel 8088 mit 20 Adressleitungen (1 MB gesamt, 384 KB reserviert). Vgl. Wikipedia: Conventional Memory Gleichzeitig wuchsen Codebases über die kognitive Kapazität einzelner Entwickler hinaus. Turbo Pascal 4.0 (1987) antwortete mit Units — einem System separater Kompilierung, das Borland von UCSD Pascal adaptierte.4UCSD Pascal bot bereits separate Kompilierung; Borland übernahm und verfeinerte das Konzept für die PC-Welt.
→ Modularisierung & Information HidingNetzwerk-Latenz & Heterogenität
HTTP · CGI · XML · CORBA56k-Modems, Systeme die miteinander reden mussten, obwohl sie in verschiedenen Sprachen geschrieben waren. HTTP (Berners-Lee, 1991) war brutal simpel — und genau deshalb erfolgreich.7T. Berners-Lee, „Information Management: A Proposal“, CERN, 1989. HTTP/0.9 erschien 1991 als textbasiertes Protokoll. W3C CORBA versuchte dasselbe Problem mit akademischer Eleganz zu lösen und ertrank in seiner eigenen Komplexität. Die Lektion: Protokoll-Abstraktionen gewinnen durch Einfachheit, nicht durch Vollständigkeit.
→ Protokoll-Abstraktion & StandardsSkalierung & Zustandslosigkeit
Memcached · MapReduce · RedisHTTP ist zustandslos, Anwendungen nicht. Millionen Nutzer trafen auf Single-threaded Architekturen, die unter der Last kollabierten. MapReduce (Dean & Ghemawat, Google, 2004) war die kanonische Antwort: Zerlege das Problem in unabhängige Einheiten, verteile sie auf beliebig viele Maschinen.9J. Dean & S. Ghemawat, „MapReduce: Simplified Data Processing on Large Clusters“, OSDI 2004, S. 137–150. Google Research
→ Zustandsexternalisierung & horizontale SkalierungKoordination & Konsistenz
Kubernetes · React · Terraform · DockerMicroservices lösten den Monolithen und schufen ein neues Problem: Wie koordiniert man 200 Services, die alle gleichzeitig deployt, überwacht und skaliert werden müssen? Die Antwort war deklarative Orchestrierung. Nicht mehr „mach Schritt A, dann B“, sondern „so soll der Zielzustand aussehen — finde selbst heraus, wie du dahin kommst.“
→ Deklarative Orchestrierung & Self-HealingKontext & Semantik
RAG · MemGPT · Agentic AI · Long-ContextDas Kontextfenster des LLM ist das neue 640-KB-Limit. Lange Konversationen, große Codebases, mehrstündige Aufgaben — sie passen nicht in ein endliches Fenster. RAG externalisiert Wissen in Vektordatenbanken. MemGPT (Packer et al., 2023) verwaltet Kontext hierarchisch — und nennt die Analogie beim Namen: „LLMs as Operating Systems“.11C. Packer, V. Fang, S. G. Patil, K. Lin, S. Wooders & J. E. Gonzalez, „MemGPT: Towards LLMs as Operating Systems“, arXiv:2310.08560, Oktober 2023. arXiv
→ Semantisches Caching & Kontext-Virtualisierung
Jede Generation entdeckt dieselbe Wahrheit:
Eine Ressource ist knapp — und das System muss so tun, als wäre sie unbegrenzt verfügbar.
Das Meta-Pattern: Drei Mechanismen
Wenn man die sechs Dekaden übereinanderlegt, kristallisieren sich drei Mechanismen heraus, die in jeder Ära in derselben Kombination auftreten. Man könnte sie als die drei Säulen der Virtualisierung durch Indirektion bezeichnen:
Das Problem wird in Einheiten zerlegt, die kleiner als der Engpass sind. Overlay-Segmente passen in RAM. HTTP-Requests passen durch ein schmales Rohr. MapReduce-Chunks passen auf einen Node. RAG-Chunks passen in ein Embedding. Agentic Steps passen in ein Kontextfenster.
Was häufig gebraucht wird, bleibt nah. Was selten gebraucht wird, lagert weit weg. CPU-Cache → RAM → Disk. Hot Data → Redis → PostgreSQL. Working Memory → Episodic → External Knowledge Base. Die Hierarchie ist überall dieselbe.
Lade nur, was gerade gebraucht wird. Virtual Memory lädt Pages on demand. React rendert nur geänderte Komponenten. RAG holt nur die relevanten Chunks. Ein Agent liest nur die relevanten Dateien eines Repos. Prinzip: Defer until necessary.
Diese drei Mechanismen bilden zusammen das, was man als Virtualisierungstrias bezeichnen könnte: Die Illusion einer unbegrenzten Ressource, erzeugt durch die Kombination von Partitionierung, lokalitätsbasierter Hierarchie und bedarfsgesteuertem Laden. Es ist, als hätte die Informatik einen einzigen genialen Trick gelernt — und ihn dann sechzig Jahre lang vergessen und wiederentdeckt, vergessen und wiederentdeckt, in einer Endlosschleife, die selbst nach Refactoring schreit.
Synoptische Übersicht
| Ära | Engpass | Lösungsmuster | Kanonische Referenz |
|---|---|---|---|
| 1957–70er | RAM & CPU-Zeit | Overlay / Paging | Cooley & Tukey 1965; Overlay-Linker |
| 1980er | Adressraum / Kognition | Information Hiding | Parnas 1972; Turbo Pascal Units 1987 |
| 1990er | Bandbreite / Heterogenität | Protokoll-Abstraktion | HTTP 1991; Fielding (REST) 2000 |
| 2000er | Zustand / Last | Externalisierung | Dean & Ghemawat (MapReduce) 2004 |
| 2010er | Koordination | Deklarative Orchestrierung | Kubernetes 2014; React 2013 |
| 2020er | Kontextfenster | Semantisches Virtualisieren | Packer et al. (MemGPT) 2023 |
Grenzen der Analogie
Ein ehrlicher Essay muss die Schwächen seiner eigenen These benennen. Und die These vom „ewigen Meta-Pattern“ hat durchaus welche.
Erstens: Selektionsbias. Wer ein Muster sucht, findet es. Die hier dargestellten sechs Engpässe wurden ausgewählt, weil sie zum Muster passen. Engpässe, die anders gelöst wurden — etwa durch fundamentale Paradigmenwechsel statt durch Virtualisierung — fallen systematisch aus der Darstellung. Das Aufkommen von Garbage Collection etwa war keine Virtualisierung, sondern eine Automatisierung. Der Übergang von prozeduraler zu objektorientierter Programmierung war kein Caching-Trick, sondern ein epistemologischer Wechsel.
Zweitens: Die Analogie ist nicht isomorph. Zwischen einem Overlay-Linker und RAG-Chunking liegen nicht nur 60 Jahre, sondern qualitative Unterschiede. Overlay-Segmente sind deterministisch; RAG-Retrieval ist probabilistisch. Die Fehlercharakteristik ist fundamental verschieden: Ein fehlerhafter Overlay-Load führt zu einem Crash; ein fehlerhaftes RAG-Ergebnis führt zu einer halluzinierten Antwort. Die Kosten dieser Fehler sind inkommensurabel.
Drittens: Was erklärt die These eigentlich? Die Aussage „Jede Ära virtualisiert eine knappe Ressource“ ist möglicherweise so allgemein, dass sie trivial wird. Wenn jede Lösung für jedes Problem unter „Virtualisierung“ subsumiert werden kann, verliert der Begriff seine analytische Schärfe. Ein gutes theoretisches Framework muss nicht nur erklären, was passiert ist, sondern auch vorhersagen, was nicht passieren kann — und diese Falsifizierbarkeit bietet die These bislang nicht.
Dennoch: Auch wenn die Analogie nicht perfekt ist, hat sie heuristischen Wert. Sie zwingt dazu, bei jedem neuen Engpass die Frage zu stellen: Haben wir dieses Problem schon einmal gelöst? Und wenn ja, was war die Abstraktionsschicht? Allein diese Frage regelmäßig zu stellen, hätte der Informatik in den letzten sechs Jahrzehnten einige Umwege erspart.
Fazit & Ausblick
Die zentrale These dieses Essays lässt sich in einem Satz zusammenfassen: Simuliere Unbegrenztheit durch schichtweise Indirektion — zerlege in handhabbare Einheiten, cache das Häufige nah, lade das Seltene bei Bedarf. Dieses Muster taucht in jeder Dekade der Softwareentwicklung auf, in verschiedenen Verkleidungen, aber mit identischer Struktur.
Die nächste Wand steht bereits sichtbar am Horizont: die Energiekosten von KI-Inferenz, die Koordination tausender paralleler Agenten, semantische Konsistenz über Modell-Grenzen hinweg. Wer das Muster kennt, kann die Lösung antizipieren, bevor der Engpass zur Krise wird. Sie wird wieder aus einer neuen Schicht bestehen, einer neuen Hierarchie, einer neuen Indirektion.
Und sie wird sich wieder anfühlen, als hätte sie jemand gerade erst erfunden.
Quellenverzeichnis & Anmerkungen
© 2026 · FinCrime Watchdog · Rewritten Edition
Originaltext: Jürgen Schiller García (+ KI) · Kritische Überarbeitung mit Quellenprüfung
Programmiergeschichte · Architektur · Meta-Pattern












