SuperJ Manual
User-facing how-to guides for working with SuperJ. (Browse the SDK API with superj doc --list / superj doc <class-fqn>.)
Contents
- Overview (one-page visual) — a single self-contained HTML page demonstrating the language at a glance: the arena memory model, the systems-reach features, the kept/dropped-from-Java ledger, and the performance numbers. Open it in any browser.
- Getting Started — what SuperJ is, why it's "super" Java (not a subset), the design philosophy, and a first build.
- Language Reference — the Java → SuperJ deltas in one scannable page: what's identical, what's removed, what's changed, what's new, and a quick syntax table.
- Building the fastest web server in the world — a step-by-step tutorial: write an HTTP server on the built-in stack (the shipped
demo/sj/demo/WebServer.sj), compile it to a single native binary, run it, and load-test it withwrk. - The Build System — the Cargo-inspired build tool (the self-hosted
superjitself):superj new/build/run/check/test, theBuild.sjmanifest, path & git dependencies, workspaces, profiles, build hooks, and feature flags. - Writing & Running Tests — the
sj.testunit-test framework:@Test/@Ignore, theAssertsvocabulary,superj test, and the golden-output suite. - Concurrency: A Thesis — why SuperJ has no threads, why that's correct rather than limiting, and the three impossibility results (undecidable deadlock freedom, FLP, CAP) that make total-order event systems the right primitive instead of shared mutable state.
- Memory Safety & Security — why SuperJ doesn't have a borrow checker: the one class of bug it makes impossible isn't worth the permanent per-line tax for most software, and determinism is the stronger correctness property (every bug reproducible and fixable) versus memory safety's narrower guarantee (one bug class impossible).
- Ecosystem — why "no Rust crates" misses the point: SuperJ is an LLVM language, so the compiled C-ABI core of every LLVM language's ecosystem (crypto, compression, numerical kernels, parsers) links via
nativefor free; the source-ergonomic layer (derive macros, async desugaring) doesn't cross any language boundary, not even to C.