this post was submitted on 14 Jun 2024
657 points (92.8% liked)

Programmer Humor

19804 readers
951 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

founded 2 years ago
MODERATORS
 

Stop comparing programming languages

  • Python is versatile
  • JavaScript is powerful
  • Ruby is elegant
  • C is essential
  • C++
  • Java is robust
you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 10 points 6 months ago (7 children)

What is C essential for anymore these days? Genuine question btw.

I thought C++ was essential for microprocessor control, but that it depends and sometimes I gather people use C instead, but not always.

Use the language that the company hires you to know:-).

[–] [email protected] 27 points 6 months ago (2 children)

I do embedded. Its all C. You can't replace it.

[–] [email protected] 7 points 6 months ago (2 children)
[–] [email protected] 6 points 6 months ago (1 children)

Wait, that's like C with ~~extra~~ fewer steps

[–] [email protected] 5 points 6 months ago

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

[–] [email protected] 2 points 6 months ago
[–] [email protected] 6 points 6 months ago

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.

[–] [email protected] 25 points 6 months ago

Most of the Linux kernel is written in C

[–] [email protected] 16 points 6 months ago (1 children)

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.

[–] [email protected] 2 points 6 months ago (1 children)

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.

[–] [email protected] 4 points 6 months ago

I don't have anything against Rust, I'm just not very familiar with it

[–] 257m 13 points 6 months ago

any sort of FFI on a modern OS will need to be done through C

[–] [email protected] 12 points 6 months ago (1 children)

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.

[–] [email protected] 3 points 6 months ago

The majority of microwaves, fridges, etc. Still don't connect to WiFi. It's mostly the high end ones which do.

[–] [email protected] 6 points 6 months ago (1 children)

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.

[–] [email protected] 1 points 6 months ago

That's the kind of insight I was hoping for, thanks for sharing!

C is also just a fun language to code in. You know, aside from pointers ofc:-). Though I have never done more than dabble around personally.

[–] [email protected] 3 points 6 months ago* (last edited 6 months ago) (1 children)

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/

[–] [email protected] 1 points 6 months ago (1 children)

It isn't just a language, but it is a language - as it eventually gets around to saying, but it starts off by saying that it isn't, then later corrects itself to say that it is, etc. I feel like the focus of this ignores the historical context of what C was written to be for - at the time there was like Assembly, BASIC, Fortran (?), other long-dead languages like was it A and/or A* or whatever, there was a B language too! (developed by Bell Labs, if Google can be trusted these days), etc. - and C was developed to be better than those. So saying that like it lacks type conversions is very much missing the point - those were not invented yet. A lawn mower also lacks those, but it's okay bc it doesn't need them:-) I am probably nit-picking far too many points, I suppose to illustrate that the style of the article became a hindrance to me to read it b/c of those reasons. But thank you for sharing regardless.

[–] [email protected] 2 points 6 months ago (1 children)

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.

[–] [email protected] 1 points 6 months ago

Oh wow, good points!:-)