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.
FerkiHN 2 days ago [-]
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.
scarface_74 20 hours ago [-]
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….
FerkiHN 12 hours ago [-]
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.
scarface_74 6 hours ago [-]
C is no more a raw access to the system and the APIs than calling the APIs from Perl was back in the day using the Win32 module.
I started programming in assembly in the mid 80s, C is a different level of abstraction
C is 50 years old, and deliberately kept smalm as a KISS language (unlike the almost-as-old nowadays-bloated C++).
There's simply not a lot happening to it - apart from being part of the root causes to 50% of all security vulnerabilities.
Although Gcc and the Linux kernel do have some 50 MLoC, noone would nowadays embark on writing such a large system using C from scratch.
Today, Java, C# or Rust would be much better choices for any large system. Heck, even C++ (with proper use of a selected sub-set of its features) would be a step up.
Dont get me wrong; I've been doing embedded development using C and C++ for a living for the last 25+ years. But, I'm learning Rust, and I love it, hoping it will take C's place and being a serious contender to Java, C# and even python for the use-cases where it would make sense.
Surely, getting a program through the compiler is much harder, but afterwards, it just works. I would suggest all seasoned C developers to give Rust a serious shot.
FerkiHN 1 days ago [-]
I agree with several points you made — Rust is indeed a powerful language, and I also use it in my projects. Its safety guarantees and modern tooling make it an excellent choice for many use cases.
That said, I think C still has a unique value, especially when you need full control over memory, binaries, and platform-specific behavior. It's minimal, with no hidden abstractions or magic — what you write is what you get. And that simplicity can be a feature, not a flaw.
C isn't always the right choice for large modern systems anymore, sure — but for certain domains like embedded, retro-style tooling, or bare-metal performance, it still shines. Plus, it's a great language to understand how things really work under the hood.
I see C and Rust not as enemies, but as tools with overlapping goals and different trade-offs. I use both — C when I want ultimate control, Rust when I want safety with fewer footguns.
ThePatientTiger 5 hours ago [-]
"being part of the root causes to 50% of all security vulnerabilities."
Truly an exaggeration. People really overestimate the danger of C.
"no one would nowadays embark on writing such a large system using C from scratch."
Come on, C is fast. C is not complicated. C has proven that it is reliable in recent 50 years. People don't like C because they can't do anything without their sweet language's garbage collector.
andreamonaco 2 days ago [-]
Many people still use C, I do for sure
FerkiHN 2 days ago [-]
Are you using it for embedded systems or regular software?
https://news.ycombinator.com/item?id=29591993
https://news.ycombinator.com/item?id=43632645
https://news.ycombinator.com/item?id=38632970
https://news.ycombinator.com/item?id=16967675
and many more ...
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 language offers many features that even surpass modern languages.
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….
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.
I started programming in assembly in the mid 80s, C is a different level of abstraction
https://jvns.ca/blog/2013/11/29/what-happens-when-you-run-a-...
There's simply not a lot happening to it - apart from being part of the root causes to 50% of all security vulnerabilities.
Although Gcc and the Linux kernel do have some 50 MLoC, noone would nowadays embark on writing such a large system using C from scratch.
Today, Java, C# or Rust would be much better choices for any large system. Heck, even C++ (with proper use of a selected sub-set of its features) would be a step up.
Dont get me wrong; I've been doing embedded development using C and C++ for a living for the last 25+ years. But, I'm learning Rust, and I love it, hoping it will take C's place and being a serious contender to Java, C# and even python for the use-cases where it would make sense.
Surely, getting a program through the compiler is much harder, but afterwards, it just works. I would suggest all seasoned C developers to give Rust a serious shot.
That said, I think C still has a unique value, especially when you need full control over memory, binaries, and platform-specific behavior. It's minimal, with no hidden abstractions or magic — what you write is what you get. And that simplicity can be a feature, not a flaw.
C isn't always the right choice for large modern systems anymore, sure — but for certain domains like embedded, retro-style tooling, or bare-metal performance, it still shines. Plus, it's a great language to understand how things really work under the hood.
I see C and Rust not as enemies, but as tools with overlapping goals and different trade-offs. I use both — C when I want ultimate control, Rust when I want safety with fewer footguns.
Truly an exaggeration. People really overestimate the danger of C.
"no one would nowadays embark on writing such a large system using C from scratch."
Come on, C is fast. C is not complicated. C has proven that it is reliable in recent 50 years. People don't like C because they can't do anything without their sweet language's garbage collector.
https://github.com/Ferki-git-creator/phono-in-terminal-image...
It's not ready yet, but can you please support it with a star like I did for you?