Software is, by its very nature, trying to carve out some Happy Path(s) in an utterly mind-bendingly explosively large state space. Even if you only have S and K combinators as your programming primitives, you aren't safe from this truth if you want to make any useful software. Heck, even basic math operations are empirically impossible to always get right as you can see from more than half a century of bugs.
This means, I feel, that any software which seems to "work" is to some degree just getting lucky. That's why we have bugs that come up seemingly at random, and those bugs can be of arbitrary trouble. That's why we have security problems, why there is pretty much literally no such thing ever (and I mean ever, as in the entire life of the universe) as an actually secure (and very useful, non simplistic) computer system.
In my mind that is the truth in the Douglas Adams, '"that's just life" and we are powerless to do anything about it' sense.
But since I use software day in day out, and even worse I have to use software to make more software, I feel like I get to be reminded every 73.2 seconds about how true this is. About how tentative and fragile and fake and broken and sorta ethically intellectually bankrumpt (I am keeping that typo and coining it) the entire venture is.
I wish I were smart and rich and influential enough to be able to advance & further the cause of tackling this problem. Of making formal methods useful. Of making property based testing easy. Of even just making our debugging story something that isn't a forehead slapping banana peel slipping keystone cops litany of hopelessly bad UX.
No comments:
Post a Comment