30 Megabyte. Das wars.

Warum Sean Barrett (nothings/stb) immer noch in einer IDE von 1998 arbeitet

Moderne Softwareentwicklung im Jahr 2025: IDEs, die zweistellige Gigabytes verschlingen. Build-Systeme, die mehr RAM brauchen als unsere ersten Computer Festplattenspeicher hatten.

Projektverzeichnisse vollgestopft mit config.json, settings.yaml, .eslintrc, tsconfig.json, package.json, docker-compose.yml, bevor auch nur eine Zeile eigentlicher Code existiert. Das ist 'normal.'

Und wer glaubt, Clang sei ein schlanker, moderner Compiler, soll mal versuchen, das Ding manuell zu bauen. Viel Spaß mit den 200+ CMake-Flags und LLVM als Abhängigkeit.

Das ist der Stand der Technik. Das ist... alternativlos?

Falsch.

Der Auslöser

Es fing mit Sean Barrett an. Falls der Name nichts sagt: Er ist der Kopf hinter stb (https://github.com/nothings/stb), einer Sammlung von Header-Only-Libraries, die in der Gamedev- und Embedded-Welt quasi Kultstatus haben. stb_image.h allein dürfte in Millionen von Projekten stecken.

Und dieser Mann? Entwickelt in Visual Studio 6.0. Von 1998.

Nicht als Retro-Projekt. Einfach so. Als sein daily driver.

Meine erste Reaktion: Warum zur Hölle tut jemand sich das an? Meine zweite Reaktion: Ich muss das ausprobieren.

Das Experiment

Die ISOs zu finden war trivial, Anna's Archive sei Dank. Zwei Disk-Images, Windows 11 mit neuestem Kernel als Host. Was soll schon schiefgehen?

Die Installation startete, ein paar Warnungen poppten auf, ein paar DLLs fehlten angeblich. Klassiker. Ich brach das Setup ab.

Aber: Die Dateien existierten bereits auf dem Dateisystem.

Also: Direkt starten. Doppelklick auf MSDEV.EXE.

Es funktionierte. Einfach so:

Visual Studio 6.0 auf einem modernen Windows-System

Keine Kompatibilitätsmodus-Trickserei. Kein Fummeln an Registry-Keys. Keine Stack-Overflow-Recherche mit obskuren Workarounds. Eine 26 Jahre alte IDE startete auf einem aktuellen Windows 11 und lief.

Und das bei einer Größe von 30 Megabyte. Das ist weniger als ein durchschnittliches NPM-Paket. Das ist weniger als manche einzelne Header-Datei in modernen Frameworks. Das ist weniger als der Electron-Wrapper einer simplen To-Do-App.

Und nebenbei liefert es:

hello 1998

New -> Leeres C-File. Klassiker:

#include  

int main(void) {
    printf("Hello, 1998!\n");
    return 0;
}

Build drücken.

Kompiliert. Läuft. Überraschend? Eigentlich nicht. Es ist ANSI C. Das kompiliert auf einem Toaster, solange der einen C-Compiler hat. Der Standard ist von 1989 und funktioniert heute noch überall.

Warum funktioniert MSDEV.EXE überhaupt?

Weil es Win32-API Native ist:

Was ist passiert?

Die Frage, die sich aufdrängt: Was ist in den letzten 26 Jahren schiefgelaufen?

Visual Studio 2022? Minimum 20 GB. JetBrains CLion? Ähnliche Größenordnung. Und selbst leichtgewichtige Alternativen wie VS Code werden mit Extensions schnell zum Multi-Gigabyte-Monster. Und wir editieren ja eigentlich nur Text!

Klar, moderne IDEs können mehr. Language Server Protocols, Container-Integration, AI-Assistenten, Cloud-Synchronisation. Aber brauche ich das alles, wenn ich einfach nur C-Code kompilieren will?

Sean Barrett sagt dazu: 'things, maybe they've gotten better... but you know... probably not.' Und wenn man sich seine Arbeit anschaut, die Qualität und Effizienz seines Codes, dann liegt er wohl nicht ganz falsch.

... na und?

Dieses kleine Experiment hat etwas in Perspektive gerückt:

Komplexität ist nicht kostenlos.

Jedes Feature, jede Abstraktion, jede zusätzliche Schicht hat einen Preis. In Speicher, in Startzeit, in kognitiver Last. Mehr Lines of Code mehr Bugs.

Und irgendwann muss man sich fragen: Kaufe ich mir damit tatsächlich Produktivität, oder nur das Gefühl von Produktivität?

Manchmal ist die Antwort auf die Frage 'Wie löse ich dieses Problem?' nicht 'Welches Framework installiere ich?', sondern 'Brauche ich überhaupt eins?'

Sean Barrett weiß das. Jetzt weiß ich es auch ein bisschen besser.