Coin Tossing Bof

Inspired in some strange way by AbsenceOfEvidenceIsNotEvidenceOfAbsence.


Thought experiment: At the next OOPSLA, there's a BOF where up in the front of the room, 25 people are flipping all heads. They are all flipping one-handed, with much the same gesture each time. They each flip 100 times, getting no tails.

In the next BOF room, there are 25 people reporting on their bad experiences with multiple inheritance.

One hypothesis is that there are 25 highly-skilled people in the first room, and 25 numbskulls in the second...


This is the wrong analogy.

Imagine that in one room, there are 25 people playing the violin. They are all playing very badly. Each of them has been practicing hard for several weeks, or even months.

In the next room, there are 25 people reporting on their bad experiences with multiple inheritance.

I am not a fan of multiple inheritance, but something that requires skill should not be compared with coin-flipping.


Actually, coin flipping can be done with skill; with sufficient practice, one can flip a coin so that it flips an even or odd number of times. Thus, one can control the result by ensuring that the coin is oriented right before flipping, and doing a very consistent flipping motion.

I've heard of a "RockScissorsPaper?"-style game played by pairs of people: Both flip a coin at the same time. One bets that they will match; the other bets that the coins will end up on different sides. The result is a mix of strategy (a la RockScissorsPaper?), skill, and luck. (If both players are very skilled, there's little luck involved.)

On the other hand, 2500 perfect flips by skill...Well, that's as hard to believe as a perfect game of pac man:
 http://www.wired.com/news/news/culture/story/20607.html?tw=hf199929


How many people have to flip the coin heads-every-time before you figure out that something is wrong here? How many people have to have trouble with multiple inheritance before you figure out that something is wrong there, too?

Yes, of course, if you are skilled enough, you can probably flip heads [almost] every time. And if you're smart enough, you can probably make multiple inheritance [almost] work.

Point is, a tool that you have to be smart to use is a tool that most of us shouldn't use much...even if we're smart. Software is hard. Really smart people work to make it easier.

And this relates to multiple inheritance how, exactly?


How about a different analogy? Professional (esp. power) tools for trades tend to be a bit different than those aimed for consumer or even `pro-sumer' markets, even for nominally doing the same jobs. They are invariably more robust. But they are also often simpler (less bells and whistles, surprising at first but then makes sense), usually more powerful and often more dangerous. Often with these tools a professional can, as a matter of course, do things that amateurs often wouldn't even consider trying. If you give these tools to amatuers it usually doesn't make their work any better, and it may result in a nasty accident.

One possible analogy (with some empirical support), is that there is a lot of amateur-level talent working in the IT field, and extrapolating from their experience is basically flawed.


EditText of this page (last edited November 11, 2004) or FindPage with title or text search