typestar

Languages

Odin

A C alternative emphasizing data-oriented design, explicit control flow, and simplicity.

Practice Odin

27 steps across 1 tours, from the basics to complete programs.

The tours

First released
2016
Created by
Bill Hall (gingerBill)
Typing
Static and explicit; three declaration operators do most of the talking
Snippets target
dev-2026-02
File extensions
.odin

What it is for

Odin is a systems language shaped by real-time graphics work: data-oriented by temperament, C-compatible by design, and pragmatic about what programmers in games and tools actually reach for. Fixed arrays support swizzling like shader code, matrices are built in, bit sets are first-class, and the vendor collection ships bindings for raylib, SDL, Vulkan, and friends in the box.

The language keeps Go's legibility without a garbage collector: one loop keyword, explicit error values instead of exceptions, and no hidden control flow anywhere. Memory is managed through an implicit context that every procedure carries — swap the allocator at one call site and everything beneath it follows, with a temp allocator for scratch work you free in one sweep.

The flagship user is JangaFX, whose EmberGen real-time volumetric VFX tool is written in Odin and used across film and game studios — the language's designer works there, and the language is shaped by that production pressure. It is a smaller world than Rust's or Go's, but a focused one: people building interactive software who want C's directness without C's ceremony.

Where it came from

Bill Hall — gingerBill — started Odin in July 2016, initially as a demonstration that a better C was possible without becoming C++. The early influences are visible and acknowledged: Pascal's clarity, Go's spelling, Wirth's restraint, and the data-oriented design culture of game development rather than the abstraction culture of enterprise software.

The language grew in public through years of steady monthly dev releases rather than versioned ceremony, with the compiler self-contained atop LLVM and a standard library split into core (data structures, algorithms, OS) and vendor (curated third-party bindings). The context system, distinct types, and explicit overload groups arrived as deliberate answers to C's sharpest edges.

JangaFX built EmberGen on Odin from 2019 onward, giving the language a commercial anchor and its designer a day job stress-testing it. Odin today remains pre-1.0 by version number but production-proven in practice, with a community that prizes the language staying small enough to hold in one head.

What it is like to type

Odin types around its three declaration operators: := to declare and infer, a lone : to declare with a type, and :: to bind constants and procedures alike — the double colon lands constantly. Braces are Go-like with no semicolons, case needs no break, and identifiers run snake_case with PascalCase types. The characteristic clusters are :: and := and the .Name of implicit enum selectors; the rest is steady lowercase words with core:fmt's percent verbs in the strings.

Practice Odin

27 steps across 1 tours, from the basics to complete programs.

Official documentation

Other languages