this post was submitted on 14 Jun 2024
720 points (100.0% liked)
Programmer Humor
22950 readers
948 users here now
Welcome to Programmer Humor!
This is a place where you can post jokes, memes, humor, etc. related to programming!
For sharing awful code theres also Programming Horror.
Rules
- Keep content in english
- No advertisements
- Posts must be related to programming or programmer topics
founded 2 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
I do embedded. Its all C. You can't replace it.
Zig?
Wait, that's like C with ~~extra~~ fewer steps
And I think they rewrote a bunch of C libraries in order to have a better cross-platform compiler for C and zig. Or something along those lines
Or Nim?
Inertia is a mofo. I did embedded programming for industrial automation almost thirty years ago, building upon and expanding an existing nightmare of C code... and I bet there's still some of mine running something out there to this day.
Most of the Linux kernel is written in C
Pretty much all of the command line coreutils programs I use daily are in C; cd, ls, pwd, touch, rm, etc. If I want to write some small utility I'll usually reach for a scripting language first like bash python ruby etc, but if it needs to be small and fast I'll use C instead.
Genuine question: if you're writing a new CLI utility, why not Rust? This is arguably where Rust has most excelled, most famously with ripgrep.
I don't have anything against Rust, I'm just not very familiar with it
any sort of FFI on a modern OS will need to be done through C
Used to be embedded systems mostly. Microwaves and the like. Although with the advance of the smart home I don't know I'd that's still true.
The majority of microwaves, fridges, etc. Still don't connect to WiFi. It's mostly the high end ones which do.
The thing with C is that it's almost always going to be the fastest high-ish level language and it has an extremely stable ABI. Self contained code written 30 years ago will likely compile with only minor (and sometimes no) tweaks today. You're lucky to go 3 years on C++ without something fairly big breaking due to changes in the underlying language and ABI.
This is a really good post about why C is so difficult to seriously consider replacing, or even to avoid by using a different language for certain projects: https://faultlore.com/blah/c-isnt-a-language/
I don't really like the title either, but the article does demonstrate how unfortunate it is that we're effectively locked in to using the ABI at some level of nearly every piece of software.
That said, there definitely were languages with better type systems prior to the invention of C. Pascal is a frequently-cited example.