12 ms·
RFC 9225: Software Defects Considered Harmful
- bombcar 5y agoI think the same argument that is used against "GOTO considered harmful" applies here - deep down, at the machine level, every single decision that is made by the code is simply just a bug. Pretending that "higher level code" avoids the bug because you don't see it is just tricking yourself. At the base level, code is just 0, 1, and bug.
- spc476 5y agoFrom my quotes file: "Every program has at least one bug and can be shortened by at least one instruction---from which, by induction, one can deduce that every program can be reduced to one instruction which doesn't work." Proof: http://en.wikipedia.org/wiki/IEFBR14 http://en.wikipedia.org/wiki/IEFBR14
- amelius 5y agoTautological headlines considered harmful.
- falcor84 5y agoI personally find these to be a lot more positive than those following Betteridge's law.
- adhesive_wombat 5y agoHarmful or not, they pay a lot of salaries.
- mostertoaster 5y ago“As it is assumed that there is an even distribution of bugs through all software, it is safe to consider any piece of software to be bug free once a certain number of bugs have been found” Lol genius. Anyone else ever do that thing where you write some good code and it works the first time you test it, but somehow that makes you feel less confident. Other times you write some crap code and it has several immediately found bugs but weirdly you emotionally feel more confident in that code because you “fixed” the bugs.
- lordnacho 5y ago> Anyone else ever do that thing where you write some good code and it works the first time you test it, but somehow that makes you feel less confident I did this yesterday. I was writing a variation on a function to draw some stuff in the terminal. When I ran it, it worked fine, no crash or anything like that. Turns out I wasn't running the new version of the function.
- gnat 5y agoWhen I was a larval programmer, I collected the different types of bugs I found as I debugged my code. This category was my favourite. I once progressively commented out more and more of a file, trying to find the bit with a bug, until the whole thing was commented out and no source was being compiled yet the original buggy behavior was still there and only THEN did I figure out I was editing a different file than I was compiling. Echoes of this original sin have shown up repeatedly throughout my life, to be point where it's one of the first things I check when my corrective measure has no effect on problematic behavior.
- lordnacho 5y agoWhat are the other categories?
- the_af 5y agoI've been hit enough times with this bug, now it's one of the first things I test. Just printing something in order to check I'm editing the right file, even before trying to fix the actual bug!
- salawat 5y agoNot really a bug though. That's operator error. This week I've seen multiple people stumbling over that, and it's gotten to the point I question whether people understand filesystems anymore. Half the reason for them is to provide an abstraction that maps a spacelike addressable quality to data to be operated on. It's an extension on the more general concept of namespaces. What's the difference between data HERE and data THERE. different path. Even with stuff like git or other VCS's where you fudge the spacelike mapping with an extra layer of time-like addressing... This is the content HERE from 3 revision's ago vs. the content HERE now vs the content over THERE either now that or 3 revisions ago... I have to train people to break them of the habit/hubris of thinking they are "smarter" or more "accurate" at computation than the computer is. If you take the meaning of compute to be "creatively navigating to a solution in a problem space, humans win hand down. If you define it as reliably doing the same thing over and over again, give up. The silicon has you beat. Always check your assumptions against what the machine is actually doing. Checklist if necessary. That puts you on a footing where you can actually outdo the computer in both realms. Or don't and be reminded once again of why being human is the most pitiable form of cognitive logic, where it takes hard work just to ensure a consistent response to similar classes of stimulus over time, and where remembering and recalling things is totally non-trivial. In the quest for staying alive in a dynamic world doing it's best to kill us, our brain does great. In a world in which it'd be nice not to be reminded by my equipment of my own idiocy on a regular basis, not do much.
- pornel 5y agoExcellent. Now instead of saying "this doesn't work" I can say "this software is in violation of RFC 9225".
- ganzuul 5y agoTBH it had me going. "Well, I guess we finally need to define this in an RFC." "Maybe this will helps against TLA spies hiding backdoors in critical infrastructure." "Surely automatic theorem proofing could help with this." And "Oh..." I have had a terribly humorless day. The dryness made me chuckle in some deep hidden place.
- mitchs 5y agoI've been a fan of saying that things need to be compliant with RFC 1925 section 2.1. (It Has To Work.)
- actinium226 5y ago"Headlines abusing 'Considered Harmful' Considered Harmful"
- bigmattystyles 5y agoI'd just say: 'Considered Harmful' considered harmful
- a1369209993 5y ago""Considered Harmful" Essays Considered Harmful"[0][1] 0: http://meyerweb.com/eric/comment/chech.html http://meyerweb.com/eric/comment/chech.html 1: https://news.ycombinator.com/item?id=9744916 https://news.ycombinator.com/item?id=9744916
- oaiey 5y agoApril 1st. Love it.
- logicallee 5y agoPlainly, this document is the response to my complaint that my ability to make money from my art (poetry, music, etc) through Patreon supporters was improperly removed, similar to the closure of my Stripe account. The document is written as though it's just a joke like, haha, of course all software is going to have bugs, it's just a bug bro. This is false. Software generally doesn't have these kinds of bugs by the time it ships and gets to be the top service in its category. I am unhappy to read such a glib dismissal of serious, repeated issues that impact my ability to put food in my mouth. 0 out of 10.
- ganzuul 5y agoSorry to hear that you have had this experience, but a lot of us can use the levity right now.
- deleted 5y ago[deleted]
- hermitdev 5y ago> Plainly, this document is the response to my complaint that my ability to make money from my art (poetry, music, etc) through Patreon supporters was improperly removed, similar to the closure of my Stripe account. I'm not sure how you arrive at this conclusion seeing as how none of the authors work for Patreon or Stripe. We're laughing at this because it's obvious satire and tongue-in-cheek, and we're laughing at ourselves. No one here that's a programmer strives to produce buggy code, quite the opposite. Frankly, your attack on programmers at large is quite offensive and unnecessary. We're fallible human beings, the same as you (unless you're a bot, but I'm assuming you're a person). I've personally been woken up overnight 3 times this week to address defects in code I support. Do you think I want that, enjoy it, or celebrate it? Of course not. My full time job is to make the software I work on better: more reliable, faster and use less computing resources to do the work. > I am unhappy to read such a glib dismissal of serious, repeated issues that impact my ability to put food in my mouth. 0 out of 10. No one here is dismissing your issues.
- boogies 5y ago
- bee_rider 5y agoCan the publication of a document which is very obvious be considered a sort of light joke? Is this an April Fools? This seems like the ideal sort of April Fools to be put in an RFC: * Harmless * Technically correct * Hypothetically I guess it might be useful to have a specific rule related to something obvious if you are arguing with a real super-pedant.
- smegsicle 5y agothey post one every year, iirc one classic: A Standard for the Transmission of IP Datagrams on Avian Carriers https://datatracker.ietf.org/doc/html/rfc1149 https://datatracker.ietf.org/doc/html/rfc1149
- brian_herman 5y agoI read that as avian flu carriers.
- waqf 5y agoI don't think anyone's yet written an RFC for IP over viral DNA … you can be the first!
- maxbond 5y agoYes, there are April Fools RFCs every year, and they're usually pretty great. https://en.wikipedia.org/wiki/April_Fools%27_Day_Request_for_Comments https://en.wikipedia.org/wiki/April_Fools%27_Day_Request_for... There are some other great ones like "TCP/IP over Carrier Pidgeon" and "Scenic IPv6 Routing"
- formerly_proven 5y agoWhere I come from scenic IPv6 routing is the default, not an extra option.
- can16358p 5y agoAFAIK there was an actual implementation of the IP over avian carriers that carried actual packets, with quite a few dropped ones.
- deleted 5y ago[deleted]
- AdmiralAsshat 5y agoI look forward to the final draft after corporate lobbying has made their suggested alterations: "Software Defects Considered Harmful Unless Fixing Them Requires Pulling Resources Away From Delivering New Features"
- bombcar 5y agoSee we solved this by filing the missing feature as a highest priority bug. Everyone's happy and it's Agile. Or Algae. I forget which.
- commandlinefan 5y ago> a highest priority bug The 70th this week, in fact…
- flenserboy 5y agoApple's been using this rule with the Finder for decades.
- sumtechguy 5y agoCan you get that on the backlog and we can run it through intake?
- hermitdev 5y ago> "Software Defects Considered Harmful Unless Fixing Them Requires Pulling Resources Away From Delivering New Features" "Software Defects Considered Harmful Unless Fixing Them Enables Charging Customers For An Update" Fixed that for you.
- codetrotter 5y ago> Best Current Practises > 1. Authors MUST NOT implement bugs. This, of course, is achieved by writing the software in Rust. Writing software in Rust avoids, not only memory corruption type bugs, but indeed it is impossible to implement any sort of defect, as long as you write your software in Rust. /ducks
- vlowther 5y agoInstructions unclear, now suffering from waterfowl infestation. I think some of them are geese.
- rurban 5y agoThis of course is achieved by writing software in a safe language. would be nice if Rust someday would join this group. their bug tracker speaks otherwise, and their docs and specs ditto.
- gnufx 5y agoOK, hands up all those who were about to post something similar.
- wongarsu 5y agoAlternatively write your software in Go. Go is not only memory safe, it's also easy. So easy that it's basically impossible to write bugs in any Go program.
- jart 5y agoAlternatively write your software in Java. Java is not only memory safe, it's also approved by your corporate overlords. So authorized that it's basically impossible to write bugs in any Java program, except for ones like Mad Gadget vulnerability and Log4j.
- 8n4vidtmkvmk 5y agolog4j was a feature, not a bug.
- giomasce 5y agoThe combination of this and RFC 8962 is going to create a lot of trouble...
- xbar 5y agoGot me.
- ChrisMarshallNY 5y agoAh ... April The First ...
- mdeeks 5y agoBlockchain can help with this. We can record all defects on the blockchain and have tamper proof evidence of those who consistently fail to adhere to this RFC. It will encourage developers to write bug proof code everywhere. Employers can further encourage developers to stop writing bugs by docking the gas fees from their paycheck. This works doubly so on devs who are blockchain "non-believers" because they desperately will not want to contribute to the heat death of our planet. (Those people clearly don't get the bigger picture. The colossal waste of energy will obviously be offset by the fact that code throughout the world will no longer have bugs and people will be more efficient.) This seems like it could be the one of the best thing to ever happen to the software industry in decades and has no possible chance of unintended consequences.
- voidr 5y agoWe can also trade bugs as NFTs and it wouldn't even be the most ridiculous use of NFTs.
- smrtinsert 5y agoFinally, I've known about this for years.
- a_shovel 5y agoSoftware defects are not harmful. Backwards long jumps are just a bounds-checking error, and without them, it would take over five minutes to beat Super Mario 64. The A-Button Challenge wouldn't be possible at all if it weren't for bugs. Bugs are an important part of the software ecosystem and should be included whenever necessary.
- jart 5y agoYes! A speedrunner. Bugs are an endless source of amusement. Except when it's ones like Pokemon Yellow https://youtu.be/RswDekKF3TQ?t=68 https://youtu.be/RswDekKF3TQ?t=68 or Zelda Link to the Past https://youtu.be/6s0L0kkFwd8?t=166 https://youtu.be/6s0L0kkFwd8?t=166 With Yellow it's kind of interesting because it's not so much a speedrun as he's reprogramming raw memory probably using a carefully designed sequence of joystick movements. I heard airline ticket sales women used to do that with Sabre terminals back in the day. If you have a TAS then you can even exploit the video game so hard that it gets replaced with another video game like in Mario 3 https://youtu.be/oWbwmxVpqVI?t=163 https://youtu.be/oWbwmxVpqVI?t=163
- rjmill 5y agoAre you saying "It's not a bug, it's a feature"? Because that's rude.
- topspin 5y agoSomeone, somewhere is going to unironically cite this RFC as a compliance requirement. In fact, I might do that just to see what happens.
- rablackburn 5y agoI think there’s a few of us who have already memorised the number so we’re ready on Monday…
- eclipticplane 5y ago> Closed -> Wontfix, label:not_a_bug per RFC 9225 there are no bugs
- Noumenon72 5y agoOnly happy little accidents.
- layer8 5y agoJust be careful to not declare your product RFC 9225 compliant. It might become a regulatory requirement though.
- oneepic 5y agoRFC 9226: Software Considered Harmful
- virgulino 5y agoRFC 9226: Bioctal, Hexadecimal 2.0 https://news.ycombinator.com/item?id=30883799 https://news.ycombinator.com/item?id=30883799
- walnutclosefarm 5y agoI rather like that one. I hated the ABCDEF convention for hex - although to be fair, I hated hex generally, much preferring octal.
- lkrubner 5y agoRegarding this: “ As an example of the detrimental effects of bugs in physically hard to reach systems: the [NASA] Deep Impact spacecraft [DEEPIMPACT] was rendered inoperable due to a fault in the fault-protection software, which in turn triggered endless computer reboots. Mission control was unable to recover the system from this error condition because no engineers were available on-site. The commute was deemed infeasible due to a lack of reasonably priced commercial transport options in that region of the solar system.” I think this means that software bugs will be acceptable once there is low cost commercial transportation to every part of the solar system? Has a cost/benefit analysis been done to determine which option is cheaper, eliminating all software bugs versus introducing low cost commercial transportation to every part of the solar system? Is it possible that actively promoting the creation of bugs, while funding remediation efforts for those bugs, including all efforts but especially including low cost commercial transportation to every part of the solar system, would have side effects that would actually pay for the remediation efforts?
- anotherevan 5y ago“There are two ways to write code: write code so simple there are obviously no bugs in it, or write code so complex that there are no obvious bugs in it.” — Tony Hoare
- lvxferre 5y agoTL;DR: of the article: "Don't do bugs. Bugs are bad mkay?" Now gib me a Nobel for the summary above, please. Preferably the one for Saving Mankind.
- a-dub 5y agofor those who are unfamiliar, the acm risks mailing list is a pretty entertaining read and comes in digest form.
- throwbigdata 5y agoAbout time!
- junon 5y ago"It is assumed IANA operates flawlessly." Genuine chuckle.
- deleted 5y ago[deleted]
- dreamcompiler 5y agoLast year I wrote a program to modify HN in /etc/hosts to resolve to 0.0.0.0 every April 1, but it had a bug. Dammit!
- mirekrusin 5y agoWhy would we cut the branch we're sitting on?