Part of a trilogy of comparison sites: see also Eubeamgua (the BEAM) and C-lingua (systems languages).

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.

2026

Guji

Statically typed and functional-first, compiled to native code - optimizes for text processing, with first-class regex and grammars.

2009

Go

Statically typed and imperative - optimizes for simplicity, fast compiles, and easy goroutine concurrency.

1996

OCaml

Statically typed and functional - optimizes for correctness through type inference and pattern matching.

1990

Haskell

Statically typed and purely functional - optimizes for correctness, composability, and reasoning about code.

1987

Perl

Dynamically typed and multi-paradigm - optimizes for expressive text manipulation; there is more than one way to do it.

2015

Raku

Gradually typed and multi-paradigm - optimizes for expressiveness, with built-in grammars and rich operators.

2010

Rust

Statically typed and multi-paradigm - optimizes for memory safety and speed without a garbage collector.

1991

Python

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

575

questions that learn what you need to practice.

Timeline

35

moments tracing the lineage of these languages.

Feature Matrix

A near-exhaustive look at how each capability works in each language.