Choosing a programming language for that project you’re working on is a fairly straightforward decision: it needs to be fast, easy to use, and it must come with enough bells and whistles to keep you from re-inventing the wheel every time you want to do something.
Looking at this criteria, aside from the fast bit, the C language may not be the first one that pops into your head. After sitting down with Ben Klemens, the author of 21st Century C, I am now looking at C as a more practical and enticing alternative than I would have thought possible.
21st Century C sets a precedent in presenting C as a language that is a lot easier to use, and has more library support than many people think. If you are not up to date on the latest that C has to offer you may not be aware of the simplicity and elegance of the language. These strengths are backed by the C99 and C11 standards, but mainly they are built up on the development of libraries and modern tools for building and multi-threading in C.
In my interview with Ben he talks about the inclusion of libraries and what that means to modern C programming at the 9:53 mark. There is quite simply a vast array of libraries out there that every developer has access to. As Ben points out at the 10:50 mark, looking at GitHub we can find something on the order of 150,000 C projects. It is important to note that packing up many of these projects as libraries can involve a bit more work than just building the project, but just having all those projects as resources can save a lot of time and minimize redundant efforts.
Of course what is new in modern C programming is only half the picture. The other half involves all the parts of C programming that can be largely ignored or at least downplayed. As Ben points out at the 8:03 mark in our discussion, today’s programmer can even go so far as to question the usage of malloc and other time tested memory management techniques.
The full interview with Ben is available in the following video.