Skip to content
Ridgun
English

Why Ridgun

What Ridgun does differently.

Ridgun takes ideas from Haskell, Rust, Go, Erlang and the array languages, and puts them in one place: code laid out as tables, parallelism in the syntax, and memory freed without a garbage collector or a borrow checker. Here is how it compares, and where other languages are still ahead.

Ridgun compared with widely used languages
RidgunRustGoHaskellCPythonErlang / Elixir
MemoryFreed after last use, decided by the compiler; shared values counted; regions. No collector, no lifetimes to write.Ownership and borrowing, checked at compile time; lifetimes in the code.Garbage collector.Garbage collector.Manual (malloc and free).Reference counting plus a cycle collector.Garbage collector per process.
ParallelismIn the syntax: || lines form a dependency graph; ||map, ||filter; agents and channels.Threads and async in the language; data parallelism through libraries.Goroutines and channels.Threads, sparks and STM, through libraries and the runtime.Threads and OpenMP, through libraries and compilers.Threads limited by the GIL in the usual build; processes for parallel work.Lightweight processes and messages.
Code layoutA function is a table: signature as header, one clause per row, arguments in columns. stable format keeps them aligned.Free layout; rustfmt.Free layout; gofmt.Layout-sensitive; community formatters.Free layout; several formatters.Indentation-sensitive; community formatters.Free layout; mix format for Elixir.
TypesStatic, declared in signatures; algebraic data types; generics written A..Z; tensors with their shapes checked at compile time.Static, inferred inside functions; traits.Static; generics since 1.18.Static, inferred; type classes.Static, weak.Dynamic; optional hints.Dynamic; optional checking.
What you shipA static ELF64 executable for x86-64 or ARM64, written by the compiler itself: no C toolchain needed.A native executable, through LLVM and a system linker.A native, usually static, executable.A native executable, through a C toolchain.A native executable.Source run by an interpreter.Bytecode run by the BEAM virtual machine.
Project filebuild.rg, written in Ridgun.Cargo.toml (TOML).go.mod.A .cabal file or stack.yaml.Makefiles, CMake and others.pyproject.toml (TOML).mix.exs (Elixir), rebar.config (Erlang terms).
Written in itselfYes: compiler, project tool, libraries, web framework and this site.Yes.Yes.Mostly (GHC).Compilers mostly in C and C++.No: the main interpreter is in C.Compiler yes; the virtual machine is in C.

Where others are ahead today

Ridgun is young. These are the gaps we know about, and what is planned for each.

Ridgun todayThe languages abovePlanned
LibrariesThe standard libraries, the Solstice web framework and its addons, all in the package area.Large package registries built over many years.Libraries from the community, published through the package area.
Editor toolingSyntax colours and formatting for VS Code, Emacs and gedit.Language servers, debuggers, profilers.A language server.
StabilityVersion 0.9: the syntax still changes between releases.Stable releases with long-term compatibility.Version 1.0 freezes the syntax.
Proven speedSteady gains between releases; no published comparison yet.Years of published benchmarks.Benchmarks against C, published with their code.

The fastest way to judge is to try it: get started in a few minutes, or read the book in your language.