JOEL v0.1.0 is here! →
JOEL is a polymodal
programming language
JOEL is a fast, incrementally adoptable all-in-one programming language. Use it for systems programming, AI/ML, Web3, UI development, workflows, and more. Choose [Interpreted] for fast development or [Compiled] for maximum performance — all from a simple file header.
What is JOEL?
Polymodal Execution
Choose [Interpreted] for fast development or [Compiled] for maximum performance — all from a file header.
Cross-Platform
Compile to native binaries, WASM, EVM, or Solana. One codebase, multiple targets.
Gradual Types
Start with dynamic types, add static types as needed. Type inference throughout.
Ownership-Lite
Rust-inspired memory safety without the complexity. Automatic memory management with zero-cost abstractions.
Async/Actor Model
Built-in concurrency with actors and async/await. Perfect for distributed systems and Web3.
Modern Syntax
Clean, readable syntax inspired by Rust, Python, and JavaScript. Pattern matching, modules, and more.
Why JOEL?
1
Language
7+
Domains
4
Targets
∞
Possibilities
Quick Examples
Hello World
[Interpreted]
fn main() {
print("Hello, JOEL!")
}Systems Programming
[Compiled]
fn fibonacci(n: int) -> int {
if n <= 1 {
return n
}
return fibonacci(n - 1) + fibonacci(n - 2)
}
fn main() {
print(fibonacci(10)) // 55
}Smart Contracts
[Compiled]
#target: EVM
actor Wallet {
balance: int = 0
fn deposit(amount: int) {
self.balance += amount
}
fn withdraw(amount: int) {
if amount <= self.balance {
self.balance -= amount
}
}
}UI Components
[Compiled]
#target: WASM
component Button {
label: str
onClick: fn()
fn render() -> Element {
return <button onClick={self.onClick}>
{self.label}
</button>
}
}Get Started
- Install JOEL — One command to get started
- Write your first program — See Quick Start
- Explore the docs — Learn about syntax, features, and examples
JOEL — One Language, All Layers 🚀