#language-design
Wiki 14
- A Haskeller's case for Zig A long-time Haskell user evaluates Zig on three axes — domain expressiveness, type-system programmability, mean-free path — and concludes comptime gets you most of Haskell without GC
- Ability-guarantee tradeoff The more a language, format or tool can do, the fewer things it guarantees: Hillel Wayne's name for the tradeoff behind safe subsets
- CobaltC Speculative C-successor spec from the essay book The Wrong Memory: C syntax over Rust-style ownership, borrowing and inferred lifetimes
- How do I deal with memory leaks? Stroustrup's C++ FAQ answer — write code without leaks by hiding allocation in containers and resource handles, not by chasing leaks after the fact
- Language Choice for Agents The proposed inversion of language-pick economics once agents write most code — strong types, fast check loops, and compiler-error feedback favor Rust/Go over Python/TS
- Mean-free path of a language How many lines of code you can write before your mental model and the actual program diverge — borrowed from vacuum-system physics as a language-evaluation metric
- Memory Safety Absolutists Piotr Sarnacki's case that Fil-C and Rust are complements, and "Rust has unsafe" is a bad standard
- Patch → Port (the New Unit of OSS Contribution) Ronacher's MiniJinja Rust→Go port for 45 human-minutes and $60 — and the structural consequence that the OSS upstream-fix loop weakens as fork-and-port gets cheap
- RAII Resource Acquisition Is Initialization — bind resource lifetime to object lifetime so cleanup runs deterministically when the object goes out of scope
- Returning to Zig Anna Liberty left Zig for Rust over breakage and came back in 2026 over governance, not technique
- Ryelang Blog refaktor/rye project blog at ryelang.org/blog — language design notes, embedding tutorials, and capability-control writeups
- Signed vs Unsigned Sizes The language-design choice between signed and unsigned size types — the bug classes each enables, and the languages that picked each side
- Typed De Bruijn indices for LLMs Replace variable names with typed slot references (`@Type.n`) so naming-related LLM error modes — misleading names, reused names, lost references — become impossible
- Unsigned Sizes — A Five Year Mistake in C3 C3's creator on why defaulting sizes to unsigned was wrong, and why Go and Java got it right
Books 1
- Introduction to Compilers and Language Design Free one-semester compiler textbook taking a C-like language down to working x86 or ARM assembly