3 ms·
I think it is okay to accept liberally as long as you combine it with warnings for a while to give offenders a chance to fix it.
by esafak 10mo ago
I think it is okay to accept liberally as long as you combine it with warnings for a while to give offenders a chance to fix it.
- dotancohen 10mo agoThe Python 3 community was famously divided on that matter, wrt Python 3. Now that it is over, most people on the "accept liberally" side of the fence have jumped sides.
- hdjrudni 10mo ago"Warnings" are like the most difficult thing to 'send' though. If an app or service doesn't outright fail, warnings can be ignored. Even if not ignored... how do you properly inform? A compiler can spit out warnings to your terminal, sure. Test-runners can log warnings. An RPC service? There's no standard I'm aware of. And DNS! Probably even worse. "Yeah, your RRs are out of order but I sorted them for you." where would you put that?
- esafak 10mo ago> how do you properly inform? Through the appropriate channels; in-band and out-of-band.
- immibis 10mo agoa content-less tautology
- diarrhea 10mo agoRandomly fail or (increasingly) delay a random subset of all requests.
- Melonai 10mo agoThat sounds awful and will send administrators on a wild goose chase throughout their stack to find the issue without many clues except this thing is failing at seemingly random times. (I myself would suspect something related to network connectivity, maybe requests are timing out? This idea would lead me in the completely wrong direction.) It also does not give any way to actually see a warning message, where would we even put it? I know for a fact that if my glibc DNS resolver started spitting out errors into /var/log/god_knows_what I would take days to find it, at best the resolver could return some kind of errno with perror giving us a message like "The DNS response has not been correctly formatted", and then hope that the message is caught and forwarded through whatever is wrapping the C library, hopefully into our stderr. And there's so many ways even that could fail.
- SahAssar 10mo agoSo we arrive at the logical conclusion: You send errors in morse code, encoded as seconds/minutes of failures/successes. Any reasonable person would be able to recognize morse when seeing the patterns on a observability graph. Start with milliseconds, move on to seconds and so on as the unwanted behavior continues.
- psnehanshu 10mo agoWarnings are ignored. It's much better to fail fast.
- wolrah 10mo agoWarnings only work if the person receiving them is either capable of and motivated to do something about it, or capable of motivating the person/people capable of doing something about it. A weak warning that's just an entry in a scrolling console means nothing to end users and can be ignored by devs. A strong warning that comes out as a modal dialog can still be ignored by devs and then just annoys users. See the early era of Windows UAC for possibly the most widespread example of a strong warning added after the fact.