My own theory on this is more cynical; I believe that several people probably invented calculus before either Sir Isaac Newton or Gottfried Wilhelm Liebnitz but couldn't popularize it. In other words, that it's not a question of the time being right for the invention, but one of society being ready to accept the sales pitch popularizing the invention.
That's been illustrated by the acceptance of open source over the last few years. In reality academics have applied the basic ideas behind open source--peer review and building on the work of others--since the formulation of the scientific method in the 15th century. It's only today, however, that the Internet has enabled the idea to explode out of academia and into daily commerce.
It's interesting, therefore, to ask whether Sun Microsystems' move to Open Solaris is anything more than just a case of jumping on a moving bandwagon.
I believe it is, but I don't know whether the decision reflected Sun's history and general support for open-source ideas or anticipation of what now look like the most likely consequences.
Look at Java today and you see an illustration of the opposite case: one in which it's fairly clear that the people at Sun who launched it had no idea how strategic it would become. Java started as a solution to a problem affecting many devices that embed software, including as the archetypical case the set-top Internet access controller James Gosling originally worked with.
The problem manufacturers face with these things is that both the hardware and the user software inevitably evolve, leaving the manufacturer to face the cost and complexity of supporting many different release combinations.
Java's answer was to modularize the problem by abstracting the hardware and so allow many generations of the user software to address the same virtual machine while also minimizing the cost of adapting to hardware change by limiting its impact.
Java's virtual machine solution is so obviously applicable to a wide variety of problems that Sun's senior management felt justified in budgeting for the work and later expanding Java marketing beyond the embedded SPARC part of their business through the creation of the worldwide Java development community.
As a result, at least three times as many people will use Java today as will use all Microsoft products put together--for example, more than 600 million people are likely to use a Java-enabled phone today. That was predictable, but what wasn't was that Java would also become the keystone element in Sun's commercial software offerings.
That didn't happen because Java is better than other languages like C. It isn't. In fact, it's an obvious kludge when used in business information processing. Java's ascendancy happened because Microsoft subverted the use of browsers as a kind of universal client while letting its own security and runtime inconsistency problems get worse.
Java is now a key component of Sun's overall business strategy, but there's absolutely nothing to suggest that Scott McNealy, Bill Joy, Andy Bechtolsheim or Gosling had the faintest idea in January 1991 that Java would eventually form the mold shaping Sun's commercial software as a mirror image response to Microsoft's mind-share dominance.
Of course, that was yesterday. Tomorrow most of Solaris will be open source, and the question is whether history will repeat itself with the unanticipated consequences ultimately becoming of greater strategic importance to the company than anything management planned for.
At least part of what Sun's senior people intend to do with Open Solaris is pretty clear. The license Sun plans to use fundamentally says that extensions or improvements on open-source code have to be open source too, but plug-ins to open-source code do not. This lets developers have their cake and eat it too: working within an open-source environment while retaining the opportunity to realize on any competitive advantage arising from their intellectual property.
That should attract a lot of Linux developers to Solaris because its ability to run Linux applications means that they can build for Linux while sheltering their work under the Sun license--and simultaneously escape the limitations of x86 by getting into the SPARC market.
Since developers are the lifeblood of a systems company, attracting more of the better ones is pretty strategic--in fact, this is business cool at its best and clearly what Sun's top executives intended when they undertook the process.
Like Java, however, Open Solaris may play an unexpected role in Sun's longer term strategic positioning--in this case vis-a-vis IBM, not Microsoft.
I believe IBM is effectively taking over Linux, not through ownership but by influencing the influencers: manipulating the people and press involved in guiding its use, evolution and acceptance. Witness, for example, IBM's success in manipulating the press and lots of serious Linux players with regard first to the SCO lawsuit and, more recently, in the fawning attention paid its opening of 500 mostly expiring, and mostly irrelevant to open source, patents.
As Linux succeeds, it diminishes the role of Windows, and therefore, the importance of Java outside the telecommunications and related embedded processor arenas. In effect, I think we'll see Java's data center role becoming "collateral damage" as IBM uses Linux to take out Microsoft. That might be bad news for Sun, except that Open Solaris redresses the balance: favoring Linux over Microsoft but dramatically tilting the open-source playing field Sun's way.
Assuming it does play out that way, Open Solaris may go down in history as one the finest examples of business strategy ever--unless, of course, it's just dumb luck.