The axis you were already drawing
Posted 2026-08-28 05:00:00 ‐ 1 min read
Every language comparison draws one line. That line is hiding two more.
Draft scaffold — the diagram below is the finished piece; the prose around it is still to be written.
Scores and reasoning
| Language | Control | Safety | Cost to wield | Memory | Why |
|---|---|---|---|---|---|
| C | 0.95 | 0.10 | 0.35 | manual | Total control, no guarantees, and UB that invalidates reasoning about the whole program. |
| C++ | 0.95 | 0.25 | 0.75 | manual | RAII and smart pointers are real gains, but nothing is enforced; the surface area is enormous. |
| Zig | 0.95 | 0.40 | 0.45 | manual | Runtime safety checks and explicit allocators, but no borrow checker and no data-race protection. |
| Rust | 0.90 | 0.95 | 0.80 | manual | Alone in rejecting data races at compile time without a GC. Not 1.0: unsafe exists, and logic bugs remain. |
| Go | 0.45 | 0.60 | 0.20 | garbage collected | Memory safe and famously cheap to learn, but data races are possible and easy to write. |
| C# | 0.35 | 0.70 | 0.30 | garbage collected | More control than its reputation (structs, Span |
| JS | 0.10 | 0.45 | 0.15 | garbage collected | Safe from crashes, unsafe from nonsense: no data races because there are no threads to race. |
| Python | 0.03 | 0.50 | 0.10 | garbage collected | Cheapest to start; the type system asks nothing of you and catches nothing for you. |
Notes toward the article
- The single "low level ↔ high level" axis everyone draws is really
control. Nothing about the ordering changes when you rename it, which is why stage 0 and stage 1 share an x coordinate: it is the same axis, honestly relabelled. safetyis the thing that axis was hiding. Splitting it out is what makes C and C++ stop being the same point.- The dashed line is the folk model: control and safety trade off, pick one. Rust is visibly off it. So, for that matter, is Go — less dramatically.
costis where Rust does worst, and it is on the chart on purpose. A chart where the subject wins on every axis reads as advocacy, not measurement.- The finding worth writing up: cost tracks distance from the trade-off line — except for C++, which pays close to Rust's price without buying Rust's escape from the line.