Thanks for this. It is just not feasible to prevent all illegal states in a system through types. For one: it is too costly and only very few customers are willing to pay for systems that are correct in the strict mathematical sense.
-
-
-
And second: are you still solving the customer’s problem? Or are you hunting for some mythical unicorn? Remember: Change is the only constant. Better design your system for that
End of conversation
New conversation -
-
-
Ignore type purists, make cool things with good tools!
Thanks. Twitter will use this to make your timeline better. UndoUndo
-
-
-
Definitely. Defensive programming has limitations. Take a step back, assume failure, figure out what that looks like. Avoiding bugs is important, but assuming bugs is critical.
Thanks. Twitter will use this to make your timeline better. UndoUndo
-
-
-
Thank you. You just helped me win an argument I was having with myself.
Thanks. Twitter will use this to make your timeline better. UndoUndo
-
-
-
In the words of the late, great
@joeerl: “Let it fail”Thanks. Twitter will use this to make your timeline better. UndoUndo
-
-
-
Wonder where to draw the line then... Are you saying it's okay if a program panics in some cases?
New conversation -
-
-
I know. But I can’t. I’ll probably have this condition checked.
Thanks. Twitter will use this to make your timeline better. UndoUndo
-
-
-
Also a couple of macros is often better than a couple of layers of indirection of generic types.
Thanks. Twitter will use this to make your timeline better. UndoUndo
-
Loading seems to be taking a while.
Twitter may be over capacity or experiencing a momentary hiccup. Try again or visit Twitter Status for more information.