AggressivelyPassive

  • 5 Posts
  • 184 Comments
Joined 1 year ago
cake
Cake day: June 10th, 2023

help-circle

  • That’s decades of legacy for you…

    I bet each step/arrow/decision had a good reason at some point, but most of them probably back when computers lived in caves and hunted their tapes using spears and rocks.

    I feel like we’re slowly reaching a point where the complexity is collapsing in on itself - just look at the absolute chaos a modern web app is.



  • Every system will get gamed by bad actors.

    At least in my case, I can’t come up with a system that doesn’t suffer from these problems, but still keeps corruption in check.

    For example, I was in a bidding process for my own software. Our contract has a legal time limit, afterwards it has to be renewed using the same bidding process as the first time. It makes perfect sense for us not to rewrite our software - it’s working just fine after all. But legally, we’re bidding on rebuilding the entire thing, have to compete with laughably low offers from all over Europe, and when we won the contract we decide, almost by accident, to keep using the old software, but on a very tight budget.

    The pragmatic thing would have been, to just extend our contract, but that could mean endless contracts to extremely high prices for software that just happens to be embedded deep enough to be irreplaceable.

    No good solution, really.









  • Again, did you actually read the comments?

    Is SQL an API contract using JSON? I hardly think so.

    Java does not distinguish between null and non-existence within an API contract. Neither does Python. JS is the weird one here for having two different identifiers.

    Why are you so hellbent on proving something universal that doesn’t apply for the case specified above? Seriously, you’re the “well, ackshually” meme in person. You are unable or unwilling to distinguish between abstract and concrete. And that makes you pretty bad engineers.






  • That’s exactly not the thing, because nobody broke the contract, they simply interpret it differently in details.

    Having a null reference is perfectly valid json, as long as it’s not explicitly prohibited. Null just says “nothing in here” and that’s exactly what an omission also communicates.

    The difference is just whether you treat implicit and explicit non-existence differently. And neither interpretation is wrong per contract.