Type System
Static + HM Inference
Type Inference + Runtime Optimization
Model ideas with a tiny, expressive syntax. Keep strict static guarantees. Run it on Truffle with room for serious tooling and optimization work.
Type System
Static + HM Inference
Runtime
GraalVM Truffle
Interop
Direct JVM Access
Source Focus
Jot stays compact enough for fast iteration while keeping hard constraints in place. You get expressive syntax, precise type feedback, and runtime headroom.
Sharp compile-time feedback
Catch invalid assumptions before execution without sacrificing iteration speed.
Runtime profiling runway
Truffle internals leave room for performance work as the language evolves.
example.jot
fn fib(n: Int) -> Int {
if n <= 1 { n }
else { fib(n-1) + fib(n-2) }
}
print(fib(10))step 01
Jot source is translated into a compact AST designed for readable diagnostics.
step 02
Inference resolves most types while still enforcing strict compile-time guarantees.
step 03
Truffle nodes profile execution patterns and specialize hot paths over time.
step 04
Your program runs with JVM ecosystem access and room for runtime-level tooling.
Hindley-Milner inference preserves type rigor without cluttering every function signature.
Built on GraalVM Truffle to keep optimization and tooling pathways open from the start.
A compact standard surface area designed to scale with modules, not accidental complexity.
Use existing JVM libraries and deployment infrastructure without losing language ergonomics.
HM inference assigns type variables to expressions, then unifies constraints to discover one consistent type shape across a program.
In practice this means most function signatures can stay implicit while still giving compile-time errors and principled polymorphism.
Truffle starts from a generic AST and observes real execution behavior, such as stable operand shapes and call-site patterns.
Nodes rewrite themselves into specialized versions for hot paths, and can deoptimize back to safe generic behavior when assumptions break.
Jot is actively developed and not production-stable yet. APIs and language details may shift as we validate the core design and tooling story.
Next focus: LSP, package story, profiling docs.
Install
curl -fsSL https://jotlang.dev/install.sh | bash
jot --version
jot run hello.jotVerify install with `jot --version`
Continue with the docs for module layout and tooling