saved
ink — state is a program
Hraness wrote this summary from a saved copy of the source. Quotations are taken word for word from the source.
gist
James Addison presents Ink, a typed language that compiles state, derived results and atomic changes together. Selected state can learn under authored objectives; a planner applies optimisations only with checked proofs. Targets include JavaScript, native Rust, Rust/Wasm and WebGPU, with a guide, reference, versioned performance studies (about 1.14×–1.20× on owned-graph projection) and an in-browser environment.
ideas
- State, keep, change and query compile as one program. Ink defines tables and other state, keep relationships that must stay true, atomic change updates and query reads, then emits implementations so derived totals do not drift when rows update.
- Meaning stays separate from implementation. The compiler checks proofs behind proposed transformations from a growing knowledge library, so rebuilding the same source with a richer library can yield a better implementation without rewriting the program.
- Learning is explicit in the language. Trainable state, adaptive queries and learn changes let applications train before deploy, adapt at runtime or keep learning while running, including freezing choices and specializing unused serving branches.
- Performance claims stay study-scoped. Published comparisons retain wins and regressions; speedup factors across different experiments must not be multiplied, and several measured specializations show only modest gains or losses against their baselines.
- Browser playground and multi-target emit. The environment page edits Ink and compiles to real targets with timings; application integration examples bind generated JavaScript modules with BigInt carriers for u64.
quotes
“State is a program. Compile it.”
“Ink separates your program's meaning from its implementation.”
“Their speedup factors should not be multiplied together.”