Linear Flow
Fehler und Sonderfälle verlassen früh. Der Happy Path läuft ohne Umwege von oben nach unten.
Pureline ist ein opinionated Coding Style für linearen Kontrollfluss, explizite Absicht, kompakte Formatierung und kleine Einheiten. Pureline minimiert nicht Zeichen, sondern unnötigen Code.
public Result process(Request request) {
if (!request.valid()) {
return Result.invalid();
}
if (!access.allowed(request.user())) {
return Result.denied();
}
var session = sessions.open(request.user());
return executor.execute(session, request);
} Der Maßstab ist nicht, wie clever Code geschrieben werden kann, sondern wie schnell ein anderer Mensch Ablauf, Zuständigkeiten und Grenzen versteht.
Fehler und Sonderfälle verlassen früh. Der Happy Path läuft ohne Umwege von oben nach unten.
Blöcke, Namen und Seiteneffekte zeigen, was passiert. Nichts versteckt sich hinter Kurzschreibweisen.
Keine Zeremonie, kein Boilerplate, keine künstlich vertikale Formatierung. Jede Zeile trägt etwas bei.
Funktionen und Typen sind klein genug, um sie auf einen Blick zu verstehen und gefahrlos umzubauen.
Module, Ressourcen und Nebenläufigkeit haben einen klaren Besitzer und einen klaren Lebenszyklus.
Pureline standardisiert Prinzipien, nicht Syntax. Der Core gilt überall, die Profile übersetzen ihn in idiomatische Regeln: Go behält seine Error Guards, Crystal seine Postfix-Guards, Rust sein Result und seinen Ownership-Gedanken.
.java Modernes Java ohne Enterprise-Zeremonie.
.js const-first, Semikolons, Braces, async/await.
.ts Starke Grenzen, inferierte Interna.
.go Idiomatisches Go, das bereits linear denkt.
.cr Eigene Identität, expliziter Kontrollfluss.
.ev Aktuelles Emvus-Design: method, Result, scoped, Data Classes.
.rs Idiomatisches Rust: Ownership, Result, rustfmt.
22 Kernregeln für Kontrollfluss, Namen, Struktur, Formatierung und Architektur.
Links Pureline, rechts Avoid: Der Regler zeigt, wie viel Lärm wegfällt, wenn Fehlerfälle früh das Haus verlassen.
public Result handle(Request request) {
if (request != null) {
if (request.valid()) {
if (access.allowed(request.user())) {
return executor.execute(request);
} else {
return Result.denied();
}
} else {
return Result.invalid();
}
}
return Result.empty();
} public Result handle(Request request) {
if (request == null) {
return Result.empty();
}
if (!request.valid()) {
return Result.invalid();
}
if (!access.allowed(request.user())) {
return Result.denied();
}
return executor.execute(request);
} Regler ziehen
Die komplette Pureline-Spezifikation als Markdown, als feste Referenz für Menschen und als Kontext für KI-Assistenten. Dazu gibt es für jede Sprache einen eigenen Auszug mit Core und dem passenden Profil.
Komplette Spezifikation 49 KBAlle Kapitel, Core und alle Sprachprofile. Tipp: Lege die Datei in den Projektkontext deines KI-Assistenten (z. B. als CLAUDE.md oder AGENTS.md).
pureline-1.5-core.md 14 KB Java pureline-1.5-java.md 17 KB JavaScript pureline-1.5-javascript.md 16 KB TypeScript pureline-1.5-typescript.md 17 KB Go pureline-1.5-go.md 16 KB Crystal pureline-1.5-crystal.md 17 KB pureline-1.5-emvus.md 25 KB Rust pureline-1.5-rust.md 24 KB Jede Zeile soll das Programm entweder voranbringen oder diese Bewegung leichter verständlich machen.
Keine Zeremonie. Keine künstliche Komplexität. Kein Code, der sich selbst im Weg steht.
Pureline standardizes principles, not syntax. Jede Sprache bleibt idiomatisch.