2026-04-09
We don't break user space
Linus Torvalds wird ein Satz zugeschrieben, der trockener kaum klingen könnte und gerade deshalb so gut ist: âWe don't break user space.â Kein Zukunftsgeflimmer, kein Produktsprech, kein Gerede von Disruption, sondern bloĂ eine knappe Regel mit erstaunlich viel Anstand. Gemeint ist im Kern, dass interne Ănderungen nicht einfach dazu fĂŒhren dĂŒrfen, dass drauĂen funktionierende Programme, Skripte und ArbeitsablĂ€ufe plötzlich kaputtgehen.
Das klingt zunĂ€chst nach einer rein technischen Maxime aus der Linux-Welt, ist aber eigentlich sehr viel allgemeiner. âUser spaceâ meint dort die Welt, in der Menschen tatsĂ€chlich arbeiten: Tools, Shells, Editoren, Dienste, Routinen, gewachsene Systeme. Und genau diese Welt ist es, die in vielen Projekten erstaunlich wenig Respekt erfĂ€hrt, sobald irgendwo jemand beschlieĂt, nun werde âendlich mal aufgerĂ€umtâ.
Der Reiz dieses Satzes liegt darin, dass er eine unangenehme Wahrheit ausspricht: Sobald Leute sich auf ein Verhalten verlassen, ist dieses Verhalten real. Es spielt dann nur noch begrenzt eine Rolle, ob eine Schnittstelle intern schön ist, ob ein Flag historisch gewachsen oder ein Dateiformat nicht mehr elegant wirkt. Irgendwo hĂ€ngt fast immer ein Skript daran, ein Build, ein Server oder schlicht ein Mensch, der sich einen Ablauf ĂŒber Jahre eingeprĂ€gt hat. Von innen sieht das schnell wie Altlast aus; von auĂen ist es oft einfach etwas, das zuverlĂ€ssig funktioniert.
Genau hier beginnt der Unterschied zwischen technischer Eitelkeit und technischer Reife. Es ist leicht, Dinge neu und sauber zu entwerfen, wenn man so tut, als gĂ€be es keine Vergangenheit. Schwierig ist es, ein System zu verbessern, ohne dabei die Kosten der eigenen Verbesserung nach auĂen abzuwĂ€lzen. Vieles, was als Modernisierung verkauft wird, ist in Wahrheit bloĂ eine Verlagerung von Aufwand: Innen wurde etwas hĂŒbscher, auĂen brechen Dokumentation, Gewohnheiten und Automatismen.
Darum ist KompatibilitĂ€t auch keine feige Tugend und kein Ausdruck von Ideenarmut. Sie ist Respekt vor fremder Zeit. Wer funktionierende Nutzung erhĂ€lt, schĂŒtzt nicht nur Code, sondern investierte Lebenszeit, eingeĂŒbte Handgriffe und oft genug ganze ProduktionsablĂ€ufe. Das ist unerquicklich, weil es MĂŒhe macht. Man muss ĂbergĂ€nge bauen, unschöne SonderfĂ€lle mitschleppen, Ersatzpfade anbieten und manchmal den eigenen Wunsch nach totaler Bereinigung zurĂŒckstellen. Aber genau darin liegt oft die eigentliche Ingenieursleistung.
NatĂŒrlich heiĂt das nicht, dass niemals etwas verschwinden darf. Jedes System braucht irgendwann Schnitte, sonst erstickt es an seiner eigenen Geschichte. Nur ist eben nicht jeder Bruch schon deshalb legitim, weil die neue Lösung dem Entwickler besser gefĂ€llt. Wenn man etwas Ă€ndern muss, dann möglichst mit BegrĂŒndung, Vorlauf und einem brauchbaren Weg von alt nach neu. Nicht jeder Bruch ist vermeidbar, aber die GleichgĂŒltigkeit gegenĂŒber seinen Folgen wĂ€re es oft schon.
Vielleicht gefĂ€llt mir dieser Satz deshalb so gut, weil er so wenig Theater macht. Er behauptet nicht, die Welt neu zu erfinden, sondern erinnert an etwas viel BodenstĂ€ndigeres: Wenn andere Menschen auf einem System aufbauen, entsteht Verantwortung. Das ist keine spektakulĂ€re Einsicht, aber eine, von der ein erstaunlich groĂer Teil der Softwarewelt profitieren wĂŒrde.