The Panda Principle

Wednesday, April 5th, 2006

A few years back, I read “The Collapse of Chaos: Discovering Simplicity in a Complex World” by Jack Cohen and Ian Stewart. As a popular science addict, I thoroughly enjoyed this book. I particularly remember it for introducing me to Stephen Jay Gould’s Panda principle. All of us have seen the Panda’s principle in action, yet few of us know of it. The following lines will, I hope, shed some light on this principle. I will start by exposing how it came to be discovered. Then I will look at a couple of typical examples to show that it reaches beyond biology. Finally I will explain why the Panda principle is relevant in the context of this blog — because for a couple of paragraphs, you will wonder.

The Panda’s Thumb: Survival of the Fit-ish

In “The Origin of the Species“, Charles Darwin popularized the concept of natural selection. Here it is, summed up by the man himself:

I have called this principle, by which each slight variation, if useful, is preserved, by the term of Natural Selection.

Contrary to popular belief, Darwin did not coin the phrase “Survival of the Fittest”, Herbert Spencer did when he applied Darwin’s theory to human societies. This phrase suggests that only the cream of the cream thrives, the rest being condemned to extinction.

Enter the panda.

Check out this thumb! How could such a poorly formed appendage be the result of millions of years of natural selection. Should it not be the best possible thumb to manipulate bamboo shoots? Stephen Jay Gould answers this question by observing that pandas might have evolved better thumbs but their current thumb is good enough — and sufficiently widespread among the panda population — to prevent improved thumbs from being a selective advantage. He named this the Panda Principle. As Cohen and Stewart put it:

Evolution leads to the occupation of niches by locally optimal creatures, not by globally optimal ones.

In effect, once locally optimal creatures get a foothold they prevent globally optimal ones from occupying the same niche.

The Panda Principle in action

The Panda Principle manifests itself in a wide range of domains. Stephen Jay Gould uses the example of keyboard layouts. Christopher Sholes, an early typewriter inventor, realized that his original design suffered from one problem: fast typists would frequently jam the type-bars. He had to slow them down. He came up with the QWERTY layout by trial and error in 1873. It is fair to say that QWERTY is a slow-ptimized layout! That hardly makes it the most efficient design for today’s usage where RSI sufferers’ fingers are the only thing that can actually jam.

In the 1930s, Dr. August Dvorak found that virtually any random layout leads to faster typing speed than the QWERTY layout — Sholes had worked hard to reach this (global) minimum. Dvorak invented the Dvorak layout — I am sure the amazing and unlikely coincidence is not lost on you. Throughout his life Dvorak fought unsuccessfully to get his layout adopted. He died a bitter man in 1975. Sadly, the man had a point: in every single comparative study, the Dvorak layout proved faster, more comfortable and less error-prone. There is still a community of Dvorak layout users, most of them programmers who have decided to use the fittest layout. But by all account, the QWERTY specimen is here to stay. It might well be the least fit specimen in the keyboard-layout-space but it will not be replaced any day soon. A perfect example of the Panda Principle in action.

At first, I thought the Betamax v. VHS war was another manifestation of the principle. I had it all typed and it looked promising: “despite Betamax being superior to VHS in technical terms — and being the Simpsons’ favourite videotape format — it lost the war”. Then I discovered that the original Betamax tapes were only one hour long, whereas VHS would stretch up to 3 hours long. In hindsight, this is a huge argument against Betamax’s fitness. As it turned out, in the videotape space, fitness is strongly correlated with the record-ability of hollywood movies. Hardly a good example to illustrate the Panda Principle.

Panda sighting #1: Smalltalk

Now, you must be wondering where I am going to with this principle and what is the link with this blog. Well, I have recently stumbled upon two manifestations, or so I believe, of the Panda Principle in the realm of software development.

The first one was a couple of weeks ago when I decided to pick up a Smalltalk book from Stéphane Ducasse’s collection and learn the language. Smalltalk is a fascinating and beautiful language. It was destined to be the next best thing. Then came Java. We all know what happened next.
The more I read about or play with Smalltalk, the more I wonder how Java won the match. It seems to me that Smalltalk had everything Java does and much more — yes, I am once again talking about metaprogramming, but there are so many other aspects. The two most common arguments to Java’s dominance are:

  • Java was an incremental step from C++. Whereas Smalltalk was influenced by the far less popular Simula and Sketchpad. It was therefore easier for Java to gather momentum as it appealled to a larger audience
  • Sun made the JDK available for free. Smalltalk development kits where expensive and more often than not incompatible.

Both arguments seem to forget that at the beginning, Sun envisaged Applets as being Java’s spearhead. Ironically, Java only really took off when people started using it on the server side.

What surprises me is the impressive list of contributions the Smalltalk community made to the Java community. Take Eclipse, arguably one of the most successful open-source Java project. Eclipse was originally derived from IBM’s VisualAge Micro Edition. VisualAge, up to the Micro Edition release, was Smalltalk based. As Joe Winchester puts it

From a technology point of view Eclipse has a lot of Smalltalk DNA in it.

Take the JUnit framework, written by Erich Gamma and Kent Beck. It has inspired countless testing frameworks in virtually any programming language. Well, JUnit actually had a precursor: SUnit, also written by Kent Beck.

Martin Fowler’s classic “Refactoring: Improving the Design of Existing Code“, although not a pure Java book, is on the bookshelf of most Java programmers (go buy it if is not!). The foundations of this book lie in Smalltalk as Fowler acknowledges in the preface.

It is hard to conceive that a language so ahead of its time and yet so simple failed to overcome the challenge of what seems a less evolved language. Moreover, Smalltalk had been preparing since 1971 for the advent of OOP‘s widespread acceptance. Java’s inception, on the other hand, only dates from 1990. When C++’s dominance came to pass, how did the fittest lose to the slightly fitter? Is this another manifestation of the Panda Principle?

Panda sighting #2: Mac/OS X

I have always been curious about Operating Systems and more particularly OSes for personal computers. I still remember my Pentium-75 triple-booting OS/2 WARP, Windows 95 and Linux. For quite a few years I have been a proponent of Linux and FreeBSD. I rarely use Windows, I get rashes and spots when exposed to it for more than a couple of minutes.

But lately, through the Ruby and Io community, I have been frequenting a bad bunch: Mac users. I heard so much about the Mac that I decided to have a closer look. I looked a bit too close. Here I am proud owner of a brand new iMac. I have been using it for less than a week and I have no doubt: this is the best machine I have ever had the pleasure to work with. My wife used to complain about my excessive usage of computers. Now, we are almost fighting about whose turn it is to use the Mac. I thought it would take me a while to get use to the Mac idiosyncrasies. After only a couple of hours, I feel pretty comfortable with the interface. Not only is it gorgeous, it is also far more comfortable and consistent than most systems I have used in the past.

A typical example of consistency is the key bindings. No matter what application I use I know command-F will let me search whatever this application manipulates. Compare that with Windows, ctrl-F is used by most applications but not all: see for yourself, try it in IE. It actually opens a side panel to let you search the web. If you look in the main menu, you will discover that ctrl-F is indeed the binding for searching into the current page… and sometimes it does — let me know if there is a cartesian explanation for this infuriating behaviour. The problem also exists in Gnome and KDE. It tends to be related to non-native applications like X-based ones.

But let’s go back to the Panda Principle, nobody can dispute Windows dominance in terms of marketshare. It is however hard to fathom how Windows could be considered the fittest OS for personal computers. I am talking fitness in the market space, not fitness in my own little OS fanatic space. Since I work in computers, I tend to get called by other people to fix their computers. I am pretty sure this resonates with your own experience. Are these people masochistic? How much pain can they endure? That repeatedly? Microsoft is losing the trust of its own customers. This has been going on for quite a few years, and yet only few people switch to alternatives. And there are many viable alternatives! I think this is a typical manifestation of the Panda Principle. Windows might not be the fittest but the shear number of users virtually guarantees that it will keep its place.

That is fine by me. I am quite happy with my very own globally optimum machine!


A bit of help to spread the word on Digg or Reddit would be very much appreciated!

Advertisements

17 Responses to “The Panda Principle”

  1. Prashanth Says:

    Excellent article!

    well why did Windows win the OS race? My views:
    #1 Effective Coping up to market needs
    M$ might not have innovated much (at least initially), but they were at least adept at copying and making it better.

    #2 Modularity
    With Apple came the necessity to buy the hardware along with the OS. Windows on the other hand promised to run a slightly larger variety of hardware. The modularity perhaps motivated people to take to windows

    #3 Cost Advantage
    Though I know not of the initial pricing strategies of Microsoft or Apple, the iMac is defenitely more expensive now. It caters to a more niche audience.

    All said and done Microsoft has done some good work with windows now (I’m not a windows user myself, though I do have to use Windows at school). Stability has improved multifold. The OSX’s stability can be also attributed partly to the fact that they have to target a specific hardware range (But yes the UNIX philosophy behind it does the real work :p).

  2. ozone Says:

    Prashanth, glad to see you back and to learn I have regular reader(s)!

    I would tend to agree with your arguments. However, my point is not really how Windows reached its current position. I am more interested in understanding why it keeps it! I believe the Panda Principle is the main reason.

  3. Ryan Elisei Says:

    Perhaps the advantage is that the most “fit’ish” (I really like that word now) has the advantage of making success ‘look easy’. By spending less time working hard, the laziness of the Panda gives us much of its appeal. This may be considered a high fitness factor.

    By the time Dvorak came around, there were already lots of QWERTY people who made it look easy. With Windows, the initial marketshare gave them enough of a headstart to yield a similar result.

    $.02

  4. RegDwight Says:

    Geez, I just can’t believe people still hold on to rubbish myths.

    The QWERTY layout had *nothing* to do with slowing typists down. Quite the opposite is true. Its main purpose was to *speed up* typing by introducing the then-revolutionary blind 10-finger method. Until then, typists used to type with just two fingers.

    http://www.artlebedev.com/mandership/105/
    http://home.earthlink.net/~dcrehr/whyqwert.html

  5. Olifante Says:

    Excellent article, shame you had to finish with such a lame plea to be dugg or reddited. Put up digg and reddit buttons and let people use them if they want. If future articles are as good as this one, I bet you won’t have to ask.

  6. nasorenga Says:

    I’m getting tired of the mistaken claim that the QWERTY keyboard was designed to slow typists down. It was designed to allow typists to type faster without causing the keys to jam. Jamming occurred when neighboring keys were used near-simultaneously. The QWERTY layout was designed to minimize jamming by separating letters that often are often adjacent in English words. See http://home.earthlink.net/~dcrehr/whyqwert.html

  7. James Says:

    The lack of the use of the metric system is a giant example of the Panda Principle in the US.
    I think a synonym would be the economic word “satisfising”, (or sometimes spelled “satisfysing”.)
    Perhaps the antithesis would be the theme of the book “In Search of Excellence.”
    Perhaps another example might be the treatment of HIV. It is now the most common outcome, in the US, that a person will take the triple cocktail of drugs for years and years, and live but never be cured.
    Another example might be the support of dictators by the US during the cold war. They weren’t what would be best, but they worked. So the phrase “an enemy of my enemy is my friend” might be an indicator of the Panda Principle.
    And of course, so is the 80/20 rule.

  8. ozone Says:

    There is obviously some controversy regarding the invention of the QWERTY layout. Whether it was designed to slow down typists or not is actually irrelevant. What really matters in the context of the Panda Principle, is that Dvorak, despite allowing higher typing speeds and being more comfortable, has not replaced QWERTY.

  9. Othello Says:

    Relevancy should not be an acceptable excuse for propagating ignorance.

    In any case, I believe the Panda Principle is being applied incorrectly, or at least being stretched to lengths that would make Gumby cringe. The principle, to my understanding (feel free to correct me if I’m wrong!), basically states that once something shows up that does the job well enough and reaches an adoptive threshold, it removes or lessens the need to further optimize, thus stifling additional progress. There is no need to develop a better way to eat bamboo when you’re at the top of the survival heap. Improvements fail to propagate based simply on need, it has nothing to do with the potential cost of a shift

    In the case of QWERTY vs DVORAK, it’s not simply a case of one being good enough – we’re intelligent creatures capable of actively making decisions to aid us, fully capable of making the switch to something more optimal should we so desire – it’s benefit vs cost. It would be quite a large undertaking to switch everyone and everything over to DVORAK, and the benefit gained is arguably much less than said cost. Add in the fact that anyone who really feels the need to use DVORAK can simply do so, and the need to make an overall switch is lessened significantly. Not many Panda’s can choose what kind of thumb they end up with.

    Skipping Smalltalk vs Java as I don’t feel I know enough to comment.

    OS X vs Windows you stated fairly accurately, but again you ignore cost. This one is tricky though, as it’s a catch 22 situation and I can see why one might gloss over it: other OS’s have trouble gaining ground because of the lack of software availability, which is caused by the size of the user base, which of course is maintained by software availability… and so on, ad infinitum. The cost is self propagating, but the cost is still there. If this were about the panda’s thumb again, then a switch from their nub (Win) to something better (OS X) would involve a period of decline in the efficiency of eating food (software), leading to a decline in fitness. Evolution doesn’t make a habit of backtracking like this, as a trait that leads to lower fitness, even if it may eventually lead to increased fitness, will simply die out. As such, it exceeds the scope of the Panda Principle once again, which to my understanding does not involve the cost of change.

    While we’re on the OS X vs Win subject though, I just want to express my belief (or hope) that the switch to x86 architecture will encourage growth on the software side of things and will lead to significant ground gained in the fight against the BSoD.

  10. ozone Says:

    Othello,

    First of all, I am not, by any mean, trying to spread ignorance about the inception of the QWERTY layout (or anything else for that matter). There are conflicting explanations. Depending on which source you trust you will have a different position. I leave people free to read the comments and make up their minds. I am not pretending to be “The” voice of truth.

    Secondly, I would like to point out that, as mentioned in the article, the QWERTY versus Dvorak example is given by Stephen Jay Gould himself to illustrate his Panda Principle. It is hard to argue that he did not understand his own principle!

    I believe, the cost of change can be an explanation for certain manifestations of the Panda Principle. I do not think that the two are exclusive. Thinking about the cost of change, it all depends on the window of time on which you measure the cost of change. Using the Dvorak example applied to one decent QWERTY typist, if you measure the cost of change after a couple of days, it will be impressively high: the typist lost his skills! If you measure it after a couple of months, the cost will probably be negative: the change turns out to be a benefit.

    Regarding Windows and OS X, I agree with you, there is a cost associated with the switch from one system to another, but I doubt it is as high as people think. I will probably keep that for another post!

    And thanks for the comment!

  11. Prashanth Says:

    Ozone,

    In your argument that the cost of change from QWERTY to DVORAK will benefit over time, you are supposing that man is a rational creature… but fortunately or unfortunately, man is bound by emotional and sentimental feelings too to a particular technology (laziness too on a lighter note ;-))

    On the cost of converting from windows to OS X, you should also take into account the maintenance charges. Apple doesnt have many distribution/service centers in third world countries. Microsoft on the other hand need not worry about the hardware aspect (since local assemblers should handle the x86 hardware problems). The lack or rather the minimal support received might snowball into a bad feeling against Apple and eventually OS X. Microsoft on the other hand can provide support through the net, phone or any other long distance methods. And then as every windows user would know windows has a simple solution to all problems format and reinstall :-)


  12. […] The Panda Principle – fascinating theory that tells us Pandas have not evolved their thumbs more to fit their surroundings so that they remain globally adaptable. The Panda Principle is then applied to various other cases, for example, the DVORAK layout vs. QWERTY one (which has allegedly proven worse than random key layouts). […]

  13. Chris C Says:

    As partially mentioned, evolution in all areas tends to get stuck in local maxima because it can’t backtrack very far. It’s not just thatthe Panda’s thumb was “good enough” so there was no point in going further, it’s that it got stuck in a “dead end” and would need serious re-engineering to improve. This has direct relevance in software engineering, where management is generally relustant to put resources into re-engineering the project, preferring to make it “good enough” even though it is not very good in the global sense. Windows is a case in point, even though the NT codebase was superior it took a big upheaval to decide to use it instead of the existing dead-end MSDOS one (and I know mant users who are still using 98 and haven’t made the jump). Jumping to Linux and OS/X is an even bigger transition, it basically means “thow away every application you have and get — or wrrite — a new one” (yes, there are fixups like WINE but those are just more dead-ends which tend to prevent the native applications being written because “Word under WINE is good enough”).


  14. Nice article, thoroughly enjoyed it!

    On second thoughts though, the Panda’s principle is a way of the nature. Technology is way mediocre when compared to nature and its laws. About Windows/OSX, I think the movie Pirates Of Silicon Valley gives some insight. Bill Gates should be considered as a factor. Well, maybe someone should study his evolution ;-)

  15. John Macossay Says:

    Dvorak is not a faster typing method. The tests that supposedly showed the Dvorak keyboard to be faster were published by Dvorak. Independent testers have not found a significant difference.

    QWERTY was adopted because it was used by Remington. Remington not only sold typewriters, they also sold intruction manuals, taught typing classes, and held typing contests. None of the other manufacturers did as much to promote typewriting, thus the Remington method became the standard.


  16. […] In eveolutionary biology this is known as the Panda Principle, which is derived from the fact that a species such as the Panda is actually not very optimal, having quite small and silly thumbs not very suited for climbing bamboo stalks. The panda is good enough though, and since it is here it blocks new species from evolving into its niche. On the other hand, if a fully evolved and globally more optimal species in the panda niche were to be introduced into the same habitat, the panda would be in for a tough match indeed. […]

  17. Samuel Says:

    I think the reason Java beat out Smalltalk is, as you write in another blog entry, Java had a superior collection of documentation and an easier to understand set of libraries. In other words, Java was tailored more torwards the _programmer experience_ than Smalltalk was. Smalltalk concentrated on the _user experience_ for the most part, since it was always intended for users to use, not professional programmers.

    Compare Java’s library to Smalltalk’s — you’ll find a much greater difficulty keeping Smalltalk’s API in your head than Java’s.

    Java has JavaDocs, which can be conveniently printed. Smalltalk has, at most, comments in the code browser. Most would think this is the “same thing,” but it’s not really. I’ve been coding for years myself, and I still prefer a deadtree book over online help when looking things up.

    If you want something to reach the masses and be accepted, you must target user’s experiences first and foremost, and technical abilities on a secondary basis. A programming language must be a service as much as it is a product, which means you need excellent support resources too, even if the service is an unpaid-for perk.

    Maybe now that more folks are acquiring multi-head displays as monitor prices and power consumption comes down, this will start to change.

    Of course, its support for “component marketplace” software markets had a lot to do with it too, but I think the fact that it was just plain easier to look things up for Java than it was for Smalltalk had a greater effect.


Comments are closed.

%d bloggers like this: