Conversation
Notices
-
@newt @m0xEE @diresock
> the best way would be to nuke C as it is now.
It is neither desirable nor possible to do this. If you dislike C, you are free to write something else, but this approach is stupid. "I don't like it, just burn it." CADT for language design. "Welp...didn't win the lottery, time to kill myself."
> Look, the C standard
A standard is not a language. A standard is a description of expected behavior.
Category 5 (ISO) cable has eight wires, four twisted pairs, it is unshielded, the connectors are copper, tolerances for crosstalk, etc. IEEE 802.3 specifies the cables and connectors and distances and voltages you can put on the line. If I get a spool of cable and some RJ45s and I cut the cable at 101m, it's past the expected tolerance, I might run into interoperability problems, it might slow down the link, it might work fine. The standards didn't create that cable, though, the standard describes some attributes, and the cable may or may not have them. If I buy a cable, though, I will be very upset if the cable's casing is made of some sugar-based polymer and it attracts rats and the cable's vendor says "Look, the standard lists properties for the shielding, this complies with the standard. Your building is invalid if it has rats in it, what happens if a rat eats the cable is undefined behavior" then I will grab his neck and throttle the son of a bitch. If I find out that he brings a box full of rats to people's offices to see if the rats go inside in order to make sure that people comply with the "No rats in the building" then I'm not buying cable from him, he's a lunatic.
Likewise, if I run into one of these stupid bugs in clang or gcc and I then meet the person whose bright idea the bugs were, then I will catch a charge, and given that clang looks malicious, I will not be using it. gcc is not looking so hot. I intend to use a good compiler when possible, I would like compilers to not become worse.
I mean, fuck's sake, freedom of speech: you do not prevent someone from speaking or someone else from listening. That doesn't mean that all ideas conveyed are good, just that it's wrong to forbid them. If someone says something shitty and retreats into "But freedom of speech!" it's a non-sequitur: the question isn't whether they should be prevented from saying something shitty, but whether what they said is shitty or not. "Not everything that is lawful is honorable." Not everything that's *legal* is good, a lot of shitty things are (and should be) legal, because it is impossible to prevent shitty behavior and a system of law that attempts to will still have shitty behavior but everyone will be miserable. A standard doesn't prevent shitty compiler behavior. A standard is not a language. It's a list of expected behaviors. "Meet these minimum tolerances."
A standard for a compiler is a set of behaviors the compiler can be expected to evince. The purpose is for interoperability: if you keep your code within these boundaries, then a compliant compiler will do the same thing with the code, produce a binary that does what you want, etc. A standard is not a language. Nothing but Mastodon complies with the ActivityPub spec (because it's written based on whatever Mastodon does) but this does not mean that Pleroma is not an ActivityPub server.