Spokes.wiki Search About
Defined Term mechanism updated Thu Aug 06 2026 00:00:00 GMT+0000 (Coordinated Universal Time)

Memory management model

How a language decides that memory is no longer needed. The corpus’s eight sources take three positions, and each one is argued from a different fear.

Manual. c gives the programmer allocation and release and checks nothing. Its own site names portability, interoperability, efficiency and stability as the strengths, and those are what the position buys: no runtime to carry, no pauses, and an ABI everything else in this list interoperates through. The cost is the class of bugs — use-after-free, double free, buffer overrun — that the other two positions exist to eliminate.

Traced garbage collection. go, php, clojure, elixir and V8 under nodejs all collect automatically. The tradeoff is standard and none of the front pages discuss it: throughput and pause behaviour become runtime properties rather than program properties. elixir is the interesting variant, because BEAM collects per process — a heap per lightweight process means a collection pauses one actor, not the system, which is how a garbage-collected language ends up making latency claims.

Compile-time ownership. rust is the only source here that refuses both: memory safety “without a garbage collector or runtime”, enforced by the ownership and borrowing rules at compile time. The claim it makes is not merely that this is safe but that safety and the absence of a runtime are compatible, which the other two positions had treated as a trade.

What the split actually predicts

Where a language sits here decides more than memory. It sets whether the language can run with no runtime at all (embedded, kernels, other languages’ extensions), which is why c and rust share a deployment space the others cannot enter. It sets the tail-latency story, which is why elixir‘s per-process collection is a concurrency claim as much as a memory one. And it is the single decision most visible in a language’s syntax, since ownership and borrowing show up in every rust signature while a GC shows up nowhere.

Nothing in this corpus measures any of it. Each claim comes from the project that makes it.

A date for the whole idea (added 2026-08-06). lisp records garbage collection as an invention of 1962 or earlier, by an MIT graduate student, Daniel Edwards. Every GC row in this wiki descends from that, and it is the oldest dated fact the corpus holds.

programming-language · rust · c · go · elixir · lisp · concurrency-model · synthesis