36
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
36 points (100.0% liked)
TechTakes
1377 readers
174 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
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.
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.
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.
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.