35
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
this post was submitted on 28 Oct 2024
35 points (100.0% liked)
TechTakes
1416 readers
170 users here now
Big brain tech dude got yet another clueless take over at HackerNews etc? Here's the place to vent. Orange site, VC foolishness, all welcome.
This is not debate club. Unless it’s amusing debate.
For actually-good tech, you want our NotAwfulTech community
founded 1 year ago
MODERATORS
the C reactionaries[*] I know definitely aren’t ok, but that’s not a new condition. the cognitive load of never, ever writing bugs takes its toll, you know?
[*] and I feel like I have to specify here: your average C dev probably isn’t a C reactionary, but the type of fuckhead who uses C to gatekeep systems development definitely is
You (group A) think C is simple, that it can be thought of as portable assembly, that it teaches you how computers actually work, and that it's easy to avoid memory safety errors with good programming discipline, and is therefore fine.
You (group B) think C is deceptively complex, is far removed from current-day real world hardware semantics, abstracts memory in an outdated and overly simplified manner, and that it's very hard for even professionals to write programs that are correct to the extent of equivalent programs in memory safe languages, therefore C shouldn't be use for new software development.
I think C is deceptively complex, is far removed from current-day real world hardware semantics, abstracts memory in an outdated and overly simplified manner, and that it's very hard for even professionals to write programs that are correct to the extent of equivalent programs in memory safe languages, which are some of the features that make C so fun and exciting. Like rawdogging a one night stand!
We are not the same.
Yeah that's the property of C that ensures it will never go away. If you keep telling young men (which most programmers starting out are) that this language is so dangerous, so scary, of course they'll start using it. There's all sorts of rationalizations going on - it's portable, it's performant, it's what the computer is really like - to justify basically driving a fast car without a seatbelt for the sheer thrill of it.
Now to be fair, C really is quite close to what the machine is really like, if by C you mean B and by machine you mean PDP-7.
It's also highly portable in the sense that all twenty or thirty well-formed, standard-compliant and nontrivial C programs ever written can be compiled to a mind-bogglingly huge variety of hardware and OS targets and even work correctly on some of them.
Past a certain point it's a little bit like learning to type on a typewriter. On one hand it forces you to think about certain types of mistakes and forces you to avoid making errors. On the other hand it gives you a whole bunch of trained habits that are either useless or actively harmful once you're working with better tools.
I always suspected that I wasn't a REAL MAN™, but I didn't know that me learning programming through C++ and being like "well this shit sucks, what the fuck, there has to be a better way" was one of the first symptoms.
and like all C things, the specificities of pointer mechanics might mean any one of a number of things and they're all correct
The original statement was clearly meant to dereference a pointer to an object of type "reactionary," but I expected it to return maybe a Yarvin or at least a Catturd
the thrill of UB: you try to dereference a C reactionary but get a lambda calculus neoreactionary instead