02:28:33
Core insight: C survives due to its unmatched toolchain maturity and long-term stability, but newer languages like Odin offer cleaner abstractions for specific use cases.
Ryan Flurry (RAD Debugger) advises against starting with C: "Beginners should first learn Python/JavaScript. C's implicit behaviors (array decay, integer promotion) require foundational context."
Ginger Bill (Odin creator) adds: "Most C resources teach poor practices. Handmade Hero remains the gold standard for learning modern C paradigms."
Key criticism: Newer standards (C17/C23) prioritize "modernization" over C's core philosophy.
Bill's stance: "C23's auto
and typed enums misunderstand why people use C. We need fewer features, not more."
Ryan's view: "The spec matters less than real-world compiler behavior. Most code uses extensions anyway."
malloc
/realloc
APIs are fundamentally flawedRyan's macro workaround: "For default parameters, I wrap structs in variadic macros. Not ideal, but beats C++'s complexity."
Bill's critique: "Compilers misuse UB for 'optimizations' that break developer expectations. We need platform-specific definitions instead of blanket UB."
Ryan agrees: "The spec should reflect real-world compiler behavior. Today's UB is often tomorrow's implementation-defined nuance."
Ryan's assessment: "Odin solves C's syntax pain points (pointer declarations, slices) while avoiding Rust/Zig's complexity. For new projects needing native tooling, it's the strongest contender."
Bill's long-term view: "Odin's survival no longer depends on me. Conservative feature growth ensures maintainability by the community."
Final verdict: C remains indispensable for legacy systems, but languages like Odin offer better ergonomics for greenfield projects where toolchain control is possible.