Hi there,
today we had a simple but interesting discussion because a user complained about our software refusing to generate his Excel file because the name he typed in was .txt. Software threw an error "ValueError: Invalid extension for engine blablabla : '.txt'. Might not have been the most understandable error message but whatever. So far so good.
The uninteresting part in this specific example: It would take 1 minute to catch this error and rename the input to .xlsx. That's what I call "robustness" approach. The "being exact approach" would be to insist on the user input being used as intended. And every component insisting of getting correct inputs before it.
The interesting general question: What is your opinion on how software should handle things like that in general? Especially deeper in the stack. If we build software on top of software on top of dependencies on top of dependencies. Should we always insist our software to be used precisely? Which things should be catched and handled? There are extreme cases in both directions. But what is a good rule of thumb
Poll is how you would handle our situation (I chose the "robustness" approach). Tell me your thoughts on this general topic in the comments.
robustness50.0%
exactness50.0%
18 votes \ poll ended