I have worked in process control and high energy physics for the last 30 years.
When the PAW (physics analysis workstations) were converted from Fortran to C++ it was a total disaster, a bloated piece of crapware emerged that took more resources, ran at half speed if it didnt crash with a memory leak first.
I have stood on the bank of the river and watched the corpses floating by, the latest fads in languages back then, remember Pascal, Modula, Algol68 .... During that time Linux hackers were perfectly happy to write their C code with vi and make, perhaps with cscope and get reliable binaries that are maintanable.
The point about C is its a SIL (Systems Implementation Language), no one in their right mind would think about writing a kernel in C++, its an abomination. For those of us who need OO then C# and Java are great, look at Android.
The old languages that have survived the test of time have done so because they work for the niche they were intended for. C is brilliant at describing and using hardware interfaces and writing beautiful fast kernel code, and yes macros are great "ContainerOf" and "WaitEvent" are two that come to mind.
So cheers to C, Fortran (making a strong comeback), Lisp and Python. May C++ rot in hell as soon as possible with the rest of the crap, if I want OO I will use Java.