And here we go again. :) LOL
On 1/9/20 5:37 PM, Brian K. White wrote:
On 1/9/20 6:48 PM, Ken Pettit wrote:
On 1/9/20 3:34 PM, John R. Hogerhuis wrote:
Yeah. That's one point of view.
What if we could have remove a lot of those obstacles for him ahead
of time so he never even encountered them?
IMO, there's a lot to be said for things that "just work".
Not only that, but it creates a lot less "Call center" calls trying
to debug why loading this program or that program always crashs my
machine (or my VirtualT). While I understand the purist's point of
view of "don't touch my data and let me decide", I side with John in
just making sure it works because that is really what you wanted to
do anyway.
It's not your place to tell me what I wanted to do.
It's not being a purist to hold this tenet, or, if it is, then it's no
criticism to be a purist about it. Pick any other bad thing and say
"those silly anti-malaria purists...". Or less dramatic "purists who
say that 1+2=4 is *always* wrong..." The implied charge has no bite.
I
can't think of any situation where someone was trying to load an
ASCII .BA file just so they could crash their machine.
Serendipitous! As it's not your job to try to think of any situation
like that. How lucky is that?
Thinking of everything in infinity that might be possible, is
impossible, which is why it's never valid to take that approach in the
first place. That's why we have scopes and separations of concern etc.
Let a dedicated separate cleaner-upper utility attempt to do things
like that, when a user specifically asks for it, by actively using the
tool. Then you can never be guilty of breaking anything or injecting
your own infuriating unwelcome problems. You don't have to worry about
doing the impossible (getting it right 100% of the time forever in all
future situations in decades to come), nor have to settle for having
it on your name that you did something while knowingly not bothering
to get it right 100% of the time.
The separate util doesn't have to worry about being so impossibly
perfect. It doesn't make the implied promise that a storage device
does. Whatever a generic processing util promises to do, it doesn't
run itself without being asked on every transaction. It only runs when
asked, and the user can tolerate imperfection in it, because they can
choose not to run it.