Why the C programming language still rules

The C language has been a software development staple for five decades. Here’s how it stacks up against C++, Java, C#, Go, Rust, and Python in 2019

No technology sticks around for 50 years unless it does its job better than most anything else—especially a computer technology. The C programming language has been alive and kicking since 1972, and it still reigns as one of the fundamental building blocks of our software-defined world.

But sometimes a technology sticks around because people just haven’t gotten around to replacing it. Over the last few decades, dozens of other languages have appeared—some explicitly designed to challenge C’s dominance, some chipping away at C from the side as a byproduct of their popularity.

It isn’t hard to argue C needs replacing. Programming language research and software development practices all hint at how there are far better ways to do things than C’s way. But C persists all the same, with decades of research and development behind it. Few other languages can beat it for performance, for bare-metal compatibility, or for ubiquity. Still, it’s worth seeing how C stacks up against big-name language competition in 2018.

C vs. C++

Naturally, C is compared most commonly to C++, the language that—as the name itself indicates—was created as an extension of C. The differences between C++ and C could be characterized as extensive, or excessive, depending on whom you ask.

While still being C-like in its syntax and approach, C++ provides many genuinely useful features that aren’t available natively in C: namespaces, templates, exceptions, automatic memory management, and so on. Projects that demand top-tier performance—databases, machine learning systems—are frequently written in C++ using those features to wring every drop of performance out of the system.