This whole Ruby v. Java, humane v. minimalist monkey knife fight reminds me of the debate over the correct way to peel a banana.
For the uninitiated: you can peel from the end with the stem (this is the traditional way to do it), or you can peel from the end without the stem (this is the way most monkeys do it).
The stem end is appealing (pun not intended, but I’ll take it anyway), because there is a convenient handle/lever to use. Just bend it down to break the “seal” and peel away. This works pretty well for a ripe banana, but not so well for a green one (you end up with banana mash).
Peeling from the non-stem end is probably the faster way to do it, on average (in case you’re ever in a banana-peeling contest). I haven’t tested it, but I’m more inclined to think that monkeys have come up with the more efficient approach.
There are problems with peeling from the non-stem end: that’s the end that typically gets “bruised”. So what do you do with the yucky brown part of the banana? If you had only peeled from the other end, you could have just aborted consumption and disposed of the unappetizing remnant with the peel.
So… what is the correct way to peel a banana? Maybe it depends on the individual banana. Maybe green bananas should be peeled from the non-stem end (do green bananas have fewer bruises?) and ripe bananas using the stem.
I’m accustomed to using the stem, but I’m not opposed to experimenting with new technologies :-).
I don’t want to draw too many parallels between banana peeling methods and humane v. minimalist programming languages. I will say that knowing that there is more than one way to peel a banana and that each method can provide a useful banana experience has enriched my life immensely.
I wonder if there is yet another undiscovered banana-peeling method…
UPDATE 29-Dec-2005: and once you’ve decided how to peel your banana look here.