I ran across a copy of 21st Century C (ISBN 1491903899) this afternoon. I hadn’t heard of the book, but the title was intriguing. I wrote more C in the 20th century than the 21st, so my ideas regarding C (sans ++) are out of date. (I’ve written a fair amount of C++ this century, but I have only written C under duress and with difficulty.)
I’ve only skimmed through the book so far, but one thing I like about it is that the first 100 pages are devoted to tools, not the C language per se. There’s a lot more to using any language than the language itself, and I find it harder to learn about tools than languages. It’s hard to know what tools to learn, and what features of those tools to learn first.
5 thoughts on “21st Century C”
As a junior developer ‘rediscovering’ C due to day job demands (I never really learnt it properly TBH), I’m pretty excited about both the promise and my initial experience reading this book. Would really appreciate any kind of a review from a seasoned C developer in order to increase confidence in what seems to be a fairly strongly opinionated book.
Along those lines I’m finding Grenning’s Test Driven Development for Embedded C really useful; TDD is usually neglected by C programmers, particularly those that work in the embedded world, which is really C’s sweet spot these days. The book is fairly easy going and is also more about tools (Unity and CPPUnit) than the language itself.
Ben Klemens has a great blog too at:
(the archives have a long series of C tips that were the basis for the book)
and an interesting stats package written in C:
So much errors in this book !
Back in the 80’s we did a study on SW productivity…and we used other types of engineers in the process (mechanical and electronic for instance).
If you examine (even to this day) an electronic engineer debugging a circuit, they use devices with complexities exceeding the circuit in question by at least 2 orders of magnitude.
We concluded (then) that SW need much more productive tools to be effective.
Strangely enough, HW has become so much more complex (via FPGA to ASIC to full custom SOC) that it now suffers from the ratio being unbalanced in the other direction.
SW on the other hand has progress via IDE, automated inspection (for memory leak, syntax, cross module functionality etc), and modularization (particularly in the web development space and things like .NET) to become much better.
All is getting better…and yet I look at our programmers and see them type character-by-character…hardly productive, and something if I saw the HW team doing I’d be worried about (gate by gate??)
So I understand to some degree and agree with the author that C in the next century SHOULD be about a whole lot about tools!