C is boring technology. Occasion to make the news are rare. I hack things in C when some tools I use crash or is missing features. Or to learn how somethings work.
Just like if you want some basic HTML form attached to a database that's guaranteed to run everywhere, you write in PHP, if you want a simple Linux (and BSD) cli app, you write it in C. Both are dangerous tech (as in no guardrails), but you'll be set for decades with minimal maintenance.
The C programming language, on the contrary, is interesting if you have experience. I always create new things that have different uniquenesses. I recently created a notes program for Windows with GUI in C language, 67kb in size.
The C language offers many features that even surpass modern languages.
That’s not because of the “C language”. That’s because of the Windows API.
BTW, wait until you really start digging into the Windiws API and realize that there are 8 or 9 ways to define a “string” based on which API you’re calling and you have to convert back and forth….
Totally fair point — Windows API is definitely a big part of what makes these small apps possible.
But still, C gives you a kind of “raw access” to the system that higher-level languages often abstract away. That’s exactly what I enjoy:
You write code — and it’s exactly what gets compiled. No magic layers.
I agree that Windows API has its “quirks” (especially around strings — TCHARs, WCHARs, LPWSTRs… I’ve seen them all ), but that’s where C teaches you to be explicit and careful.
So while the power partly comes from the platform (like WinAPI), I’d still say it’s C that gives you the control to use that power effectively.
And hey — C might be old, but it still builds tools that last decades. That’s something I respect.
Just like if you want some basic HTML form attached to a database that's guaranteed to run everywhere, you write in PHP, if you want a simple Linux (and BSD) cli app, you write it in C. Both are dangerous tech (as in no guardrails), but you'll be set for decades with minimal maintenance.