Vererbung: Ein versehentlicher Performance-Hack

2025-05-08

Simula erfand die Vererbung nicht für Code-Wiederverwendung oder Erweiterbarkeit, sondern um Probleme mit seiner einfachen Garbage Collection und intrusiven Listen zu lösen. Simulas Garbage Collector war zu einfach, um mit Zeigern auf Stack-Variablen umzugehen; um Abstürze zu vermeiden, wurden verschiedene Methoden der Parameterübergabe verboten, was die Ausdruckskraft einschränkte. Um intrusive Listen effizient zu verwenden, erfand Simula die „Präfixierung“ (Vererbung), die es Objekten ermöglichte, Listenknoten direkt zu enthalten und so zusätzliche Speicherzuweisung zu vermeiden. Daher war Vererbung zunächst eine Performance-Optimierung, keine Grundlage der OOP.

Entwicklung