Ich habe Webentwicklung gemacht, als sie noch nach Tabellen aussah. Als man Layouts mit GIF-Spacern baute und Websites in Netscape Navigator und Internet Explorer 6 gleichzeitig „funktionieren“ mussten. Ich war auf der Seite der Java-Applets im (verlorenen) Krieg gegen Flash. Habe Regex-Magie in Perl gesehen, die keiner mehr erklären konnte. Und Framesets gebaut, die sich selbst in den Wahnsinn verschachtelten.
Ich habe XML gesehen, wie es alles regeln sollte – bis es sich in seiner eigenen Grammatik verhedderte und durch JSON ersetzt wurde, weil es einfach lesbarer war. Ich habe miterlebt, wie Buttons erst knubbelig wurden, dann glassy, dann flat, dann fast verschwanden. Als Schriften noch als PNGs exportiert wurden, weil Webfonts noch ein Gerücht waren.
Und heute? Schreiben wir mit Tailwind plötzlich wieder Styles direkt im Markup – ist das wirklich Fortschritt oder eine kompakte Formsprache mit Verfallsdatum? Drehen wir mit TypeScript-Generics manchmal so viele Schleifen um uns selbst, dass wir die ursprüngliche Modellidee aus den Augen verlieren? Und wie viel Projektzeit geht in CI/CD-Setups, die zwar zuverlässig deployen – aber auch komplexer sind als die Anwendung selbst? Oder Snapshot-Tests, die jeden Button-Text festnageln – aber nie den Fehler abfangen, der den Nutzer wirklich trifft…
Ich habe viele Paradigmen kommen und gehen sehen. Was bleibt, ist Klarheit: Trennung von Zuständigkeiten. Einfache Datenflüsse. Verständliche Architektur. Entscheidungen, die man auch drei Monate später noch versteht. Und Systeme, die den Alltag tragen, nicht nur die Demo.
Die Toolauswahl ist heute größer – und schwerer denn je. Ich habe über die Jahre viele Lösungen gesehen, die viel versprochen, aber wenig gehalten haben. Genau das hat meinen Blick dafür geschärft, was langfristig funktioniert.
Wer heute schnell entwickeln will, braucht keine neue Mode – sondern Struktur, die trägt.