Agentische Programmierung funktioniert am besten, wenn lesbare Software sowohl Menschen als auch LLMs hilft, ein System
zu verstehen, zu ändern, zu verifizieren und zu übergeben. Moderne Browser und modernes Java bieten bereits starke
native Primitive. Wir setzen sie direkt ein.
Kernthese
Frameworks haben viele Probleme gelöst, aber auch verstecktes Verhalten, Konventionsschichten und Abstraktionstiefe
eingeführt. Für viele Anwendungen bieten moderne Plattformen bereits genug native Fähigkeiten.
Expliziter Kontrollfluss
Requests, Zustandsänderungen und Rendering-Pfade bleiben sichtbar.
Wir können Verhalten nachvollziehen, ohne mehrere versteckte Framework-Schichten zu durchqueren.
Eine einzige Quelle der Wahrheit
Zustand und Verträge liegen an einer klaren Stelle.
Das reduziert Drift und macht reaktive Updates leichter nachvollziehbar.
Nativ vor Framework
Wir bevorzugen, was die Plattform bereits gut kann.
Das eigentliche System bleibt in unseren eigenen Quelldateien sichtbar.
Frontend
Native Browser-Komponenten
Der Browser bietet bereits ein natives Komponentenmodell. Custom Elements, Shadow DOM, JavaScript-Module und
verwandte native Werkzeuge wie Template Literals und HTML-Templates geben uns wiederverwendbare UI-Bausteine, ohne
eine große Framework-Runtime hinzuzufügen.
Custom Elements bieten wiederverwendbare UI-Einheiten über die eingebaute window.customElements-Registry des Browsers.
Shadow DOM bietet native Kapselung für DOM und CSS.
JavaScript-Module machen Abhängigkeiten durch Imports und Exports explizit.
Template Literals und das HTML-<template>-Element unterstützen direkte und lesbare View-Konstruktion.
Typsicheres JavaScript mit JSDoc gibt einfachen .js-Dateien klarere API-Verträge und leichte Typprüfung.
Eine einzige Quelle der Wahrheit hält den Zustand zentral und vermeidet verstreuten UI-Drift.
Reaktive Programmierung über Subscriptions, Zustandsänderungen und JavaScript Proxy hält das Rendering am Modell ausgerichtet.
Backend
Native Java-Systeme
Die Java-Plattform bietet bereits eine starke Basis für Webanwendungen. Für diese Art von Projekt liefern der JDK
HttpServer, einfaches JDBC und Virtual Threads bereits eine starke native Grundlage. Wenn ausgehende
HTTP-Aufrufe nötig sind, steht java.net.http.HttpClient als native Plattform-Option bereit.
JDK HttpServer hält HTTP-Einstiegspunkte lokal und sichtbar.
java.net.http.HttpClient ist ein moderner nativer HTTP-Client, der ohne weitere Framework-Runtime verfügbar ist.
Manuelles Routing macht URL-Behandlung und Request-Fluss im Projektcode explizit.
Einfaches JDBC hält den Datenbankzugriff nahe am tatsächlichen SQL und Schema.
Virtual Threads werden von der Java-Runtime selbst verwaltet.
Structured Concurrency ist die bevorzugte native Wahl, wenn koordinierte nebenläufige Arbeit nötig ist.
LLM-Entwicklung
Warum das gut mit LLM-gestützter Entwicklung funktioniert
Mehr echter Code passt in den Kontext
Wichtige Logik lebt in lokalen Quelldateien.
Die Implementierung ist nicht hinter Framework-Lebenszyklen und generierten Schichten versteckt.
Abhängigkeiten sind sichtbar
Der Systemgraph ist leichter zu inspizieren.
JavaScript-Module, manuelles Routing und direkte Konfiguration zeigen, wovon das System abhängt.
Patches bleiben lokal
Änderungen berühren weniger Dateien mit klareren Seiteneffekten.