Learn languages by comparison
Eight languages,
side by side
Pick a task and see it written in all eight at once: highlighted examples lined up together, real code you can run, an adaptive quiz that learns what you miss, and a timeline of how they shaped each other.
Guji
Statically typed and functional-first, compiled to native code - optimizes for text processing, with first-class regex and grammars.
2009Go
Statically typed and imperative - optimizes for simplicity, fast compiles, and easy goroutine concurrency.
1996OCaml
Statically typed and functional - optimizes for correctness through type inference and pattern matching.
1990Haskell
Statically typed and purely functional - optimizes for correctness, composability, and reasoning about code.
1987Perl
Dynamically typed and multi-paradigm - optimizes for expressive text manipulation; there is more than one way to do it.
2015Raku
Gradually typed and multi-paradigm - optimizes for expressiveness, with built-in grammars and rich operators.
2010Rust
Statically typed and multi-paradigm - optimizes for memory safety and speed without a garbage collector.
1991Python
Dynamically typed and multi-paradigm - optimizes for readability and a batteries-included standard library.
Code Compare
22 tasks across all eight languages, with LSP-style coloring and live runs.
Regex Lab
Test one pattern across Perl, Python, and guji at once, then beat the challenges.
Adaptive Quiz
575questions that learn what you need to practice.
Timeline
35moments tracing the lineage of these languages.
Feature Matrix
A near-exhaustive look at how each capability works in each language.