3 ms·
C might not be strictly necessary as a language one would write in. But all of those problems that C++, Rust or Zig solve - these all are discussed in terms of
by vkazanov 3y ago
C might not be strictly necessary as a language one would write in.
But all of those problems that C++, Rust or Zig solve - these all are discussed in terms of C. Toolchains, OSes, concepts of static and dynamic linkage are all defined in terms of whatever few abstractions C provides.
And sometimes all you have is a good old C compiler. Because C is everywhere.
It is not necessary to know the language but it sure is useful to see beneath and beyond.
- williamcotton 3y agoWith C, if you can understand the lifetime of variables on the stack, how to manage pointers to the memory allocated on the heap, etc, it'll help with learning Rust, Zig, etc. Implementing your own malloc/free, memory arenas, reference counting, vtables, etc, and doing so all in C will lead to a concrete understanding of how these features work in other languages and ultimately to more intuitive designs and implementations.
- lifthrasiir 3y agoI heartily agree. The best take I have ever seen was due to John Regehr: https://blog.regehr.org/archives/1393 https://blog.regehr.org/archives/1393