Aardvark and Bandicoot, Chapter 19
Thu 19 May 2016 by mskala Tags used: programming, math, philosophy, aardvark, bandicootIn which a Parable is Related and Betting Strategies are Considered
[first chapter] | [all in this series]
Aardvark: Friend Bandicoot, I heard an interesting story recently. Perhaps you might find it edifying.
Bandicoot: Oh, goody! I do like stories, Friend Aardvark.
A: That's good. The story is that three archers, Xavier, Yngwie, and Zachary, all shot arrows at a circular target painted on the side of a barn.
B: How do you pronounce "Yngwie"?
A: Like the musician. Anyway, his and Xavier's arrows both hit very near the edge of the target, right on the paint line defining the boundary, so they weren't sure how to score it.
B: What did they do?
A: Well, they talked about the situation at some length. They consulted books about archery rules, and took a poll of expert archers and sportswriters. They told each other illustrative stories about funny animals. They stayed out there talking for many hours, but late in the night, they agreed that in order to count as a hit, some measurable part of the volume of the arrow had to intercept the imaginary half-cylinder defined by the outermost plane of the barn wall and the innermost diameter of the paint line. By that rule, Xavier's arrow had hit the target and Yngwie's, which hit the painted line but did not penetrate inside the half-cylinder, was not a hit. What do you think of that?
B: Hm. I sort of think it might be fairer to use the outer diameter. But I guess it doesn't really matter as long as the rule is clear, and using the outer diameter wouldn't allow distinguishing the two arrows.
A: All right, so who won the archery contest?
B: Xavier, obviously.
A: Zachary won. His arrow hit the bullseye in the middle of the target.
B: Well, of course if you're going to leave out critical information like that, I can't be expected to guess it!
A: What would you say is the moral of this story? What should the archers have done differently?
B: They should have thought ahead and agreed on the rules in much more detail, in advance.
A: I think they should have practiced a bit more, until they were able to hit the target closer to the centre. Because here's the thing, Friend Bandicoot: hitting the target, at all, isn't much of a challenge for any archer who is even halfway serious. If you ever need to argue to sub-millimeter precision exactly what counts as hitting the target, then you're arguing about who has lost worst. The winner will be shooting bullseyes and near-bullseyes and for the winner there is no legitimate debate about merely hitting the target.
B: But the bullseye needs an exact definition just as much as the entire target does. How do we know Zachary really hit the bullseye, Friend Aardvark? If two archers both claim to have hit it, how do we know who really did?
A: There was no fourth archer. Zachary had, and was the only one who had, a credible claim of having shot a bullseye. He absolutely did outshoot Xavier and Yngwie, and we don't need an extremely precise definition of what that statement means, to know that it is true.
B: I don't see how we can possibly know something is true without knowing what it means.
A: Well, maybe it has more to do with caring too much about definitions. And, oh, as a software engineer you'll like this - it's a question of design smells. Suppose now you're going to bet on an archery contest. You don't know any of the competitors, but you have a chance to meet and talk to them a bit before choosing on whom you'll bet.
B: I'm not sure I want to bet on any of them. I don't know much about archery.
A: Let's say you're on a date and trying to impress a boy bandicoot or something. Opting out of the game isn't an option, you have to bet on some archer, but you get to choose which. That's not the real issue. The real issue, okay, you meet one archer and he tells you all about the exact rules for determining whether an arrow counts as having hit the target, including unusual edge cases such as what happens if the arrow is struck by a meteorite in mid-flight and only part of it ends up hitting the target.
B: What does happen in that case?
A: All competitors have to make a good-faith effort to help search for pieces of the arrow, and then if they can find fragments totalling at least half the arrow's pre-flight mass, and at least one fragment hit the target under the ordinary rules for hits, then it's a hit. But if working together they can't find at least half of the arrow, then it shall be deemed vaporized and the shooter gets to try again.
B: Well, that seems fair.
A: Anyway, the one archer tells you all about edge cases of the rules, like that one. Never happens to mention bullsyes at all. Another archer tells you, well, in the last 100 arrows I shot in competitions, 80 of them were bullseyes. But he can't give you any coherent account of what a bullsye actually is and what his claim really means, so maybe it shouldn't count. On whom will you bet?
B: The one who knows the rules.
A: I would bet on the one who can hit the bullseye. Knowing the rules isn't exactly a bad thing, but obsessing over them is a design smell. Paying a whole lot of attention to all the details of all the edge cases that good archers never encounter, doesn't inspire confidence that one really is a good archer. If you are really competent to achieve the goal, then the exact definition of the goal does not need to be spelled out in extreme precision; differences like the inside or outside edge of the paint line only matter when you're not really really hitting the target anyway. And I think that's why you're wearing those trousers and I'm wearing this sweater.
B: It's a good thing at least one of us cares about knowing rules, syntax, and definitions, because Friend Computer isn't going to accept your deliberate ignorance even if I pretend to. But I thought we were wearing these clothes just because they wouldn't fit if we swapped. Your neck is a fair bit thinner than mine, if you don't mind my saying, Friend Aardvark. Isn't that why?
A: That too, Friend Bandicoot. That too.
0 comments