On the history and justification of the C programming language
... as if all development of C stopped with the first ANSI standard?<p>C99 and C11 are great languages. VLAs, anonymous structs, variable initializers, atomics... they&#x27;re not the C of the 80s and 90s. They still have the usual warts but the tooling is great and support is coming along for the newest features to most platforms.<p>While the spirit of, &quot;trust the programmer,&quot; might have been a historical accident there is some merit for its usefulness. Our chief problem as programmers is managing data: taking some source inputs, performing a transformation, and sending the output somewhere. That&#x27;s true of video games, web applications, embedded sensors, etc. As a high-level language, C is one of the few that gives the programmer some control over how memory is mapped to the target platform and allows them to build the appropriate abstractions on that hardware.<p>It&#x27;s also a loaded weapon... humans make mistakes and inevitably those mistakes make it into our programs. When working in a language like C one must conduct ones self accordingly.<p>I&#x27;m a fan of FP and ML-style languages. I&#x27;m looking forward to a day when we can have our cake and eat it too. It&#x27;d be nice to be able to define how memory should be handled for a particular application at the granularity of the target platform while still getting the safety guarantees.<p>I like where Blow is going with his Jai language. It&#x27;d be neat to see more research in this area.