Pureline

Code without
noise.

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.

Pureline.java
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);
}

Fünf Worte. Ein Maßstab.

Der Maßstab ist nicht, wie clever Code geschrieben werden kann, sondern wie schnell ein anderer Mensch Ablauf, Zuständigkeiten und Grenzen versteht.

Linear Flow

Fehler und Sonderfälle verlassen früh. Der Happy Path läuft ohne Umwege von oben nach unten.

Explicit Intent

Blöcke, Namen und Seiteneffekte zeigen, was passiert. Nichts versteckt sich hinter Kurzschreibweisen.

Minimal Noise

Keine Zeremonie, kein Boilerplate, keine künstlich vertikale Formatierung. Jede Zeile trägt etwas bei.

Small Units

Funktionen und Typen sind klein genug, um sie auf einen Blick zu verstehen und gefahrlos umzubauen.

Clear Ownership

Module, Ressourcen und Nebenläufigkeit haben einen klaren Besitzer und einen klaren Lebenszyklus.

Ein Core. Viele Sprachen.

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.

Was Pureline konkret verändert.

Links Pureline, rechts Avoid: Der Regler zeigt, wie viel Lärm wegfällt, wenn Fehlerfälle früh das Haus verlassen.

AVOID4 Ebenen · 2× else
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();
}
PURELINE1 Ebenen · 0× else
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

Paste. Check. Clean.

Der Checker prüft Java, JavaScript, TypeScript, Go und Crystal direkt im Browser. Kein Upload, kein Server. Jede Diagnose verweist auf eine stabile Regel-ID aus der Spezifikation.

Checker öffnen
$ pureline check
PL-CF-002 error Avoid else after a terminating branch. Line 48: } else { Suggested fix: Remove the else block and continue with the happy path.
PL-CF-001 warning Control flow nested 3 levels deep. Line 21: if (access.allowed(user)) { Suggested fix: Invert the outer condition and return early.
PL-GO-007 warning os.Open without defer Close(). Line 12: file, err := os.Open(path) Suggested fix: defer file.Close()

Nachschlagewerk

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 KB

Alle Kapitel, Core und alle Sprachprofile. Tipp: Lege die Datei in den Projektkontext deines KI-Assistenten (z. B. als CLAUDE.md oder AGENTS.md).

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.