DTrace, Leopard, and the business of open source

If you haven’t seen it, DTrace is now shipping in Mac OS X Leopard. This is very exciting for us here at Sun, but one could be forgiven for asking an obvious question: why? How is having our technology in Leopard (which, if Ars Technica is to be believed, is “perhaps the most significant change in the Leopard kernel”) helping Sun? More bluntly, haven’t we in Sun handed Apple a piece of technology that we could have sold them instead? The answer to these questions – which are very similar in spirit to the questions that were asked over and over again internally as we prepared to open source Solaris – is that they are simply the wrong questions.

The thrust of the business questions around open source should not be “how does this directly help me?” or “can’t I sell them something instead?” but rather “how much does it cost me?” and “does it hurt me?” Why must one shift the bias of the questions? Because open source often helps in much more profound (and unanticipated) ways than just this quarter’s numbers; one must look at open source as long term strategy rather than short term tactics. And as for the intense (and natural) desire to sell a technology instead of giving away the source code, one has to understand that the choice is not between “I give a customer my technology” and “I sell a customer my technology”, but rather between “a customer that I never would have had uses my technology” and “a customer that I never would have had uses someone else’s technology.” When one thinks of open source in this way, the business case becomes much clearer – but this still may be a bit abstract, so let’s apply these questions to the specific case of DTrace in Leopard…

The first question is “how much did it cost Sun to get DTrace on Leopard?” The answer to this first question is that it cost Sun just about nothing. And not metaphorical nothing – I’m talking actual, literal nothing: Adam, Mike and I had essentially one meeting with the Apple folks, answering some questions that we would have answered for anyone anyway. But answering questions doesn’t ship product; how could the presence of our software in another product cost us nothing? This is possible because of that most beautiful property of software: it has no variable cost; the only meaningful costs associated with software are fixed costs, and those costs were all borne by Apple. Indeed, it has cost Sun more money in terms of my time to blog how this didn’t cost anything to Sun than it did in fact cost Sun in the first place…

With that question answered, the second question is “does the presence of DTrace on Leopard hurt Sun?” The answer is that it’s very hard to come up with a situation whereby this hurts Sun: one would have to invent a fictitious customer who is happily buying Sun servers and support – but only because they can’t get DTrace on their beloved Mac OS X. In fact, this mythical customer apparently hates Sun (but paradoxically loves DTrace?) so much that they’re willing to throw out all of their Sun and Solaris investment over a single technology – and one that is present in both systems no less. Even leaving aside that Solaris and Mac OS X are not direct competitors, this just doesn’t add up – or at least, it adds up to such a strange, irrational customer that you’ll find them in the ones and twos, not the thousands or millions.

But haven’t we lost some competitive advantage to Apple? Doesn’t that hurt Sun? The answer, again, is no. If you love DTrace (and again, that must be presupposed in the question – if DTrace means nothing to you, then its presence in Mac OS X also means nothing to you), then you are that much more likely to look at (and embrace) other perhaps less ballyhooed Solaris technologies like SMF, FMA, Zones, least-privilege, etc. That is, the kind of technologist who appreciates DTrace is also likely to appreciate the competitive advantages of Solaris that run far, far beyond merely DTrace – and that appreciation is not likely to be changed by the presence of DTrace in another system.

Okay, so this doesn’t cost Sun anything, and it doesn’t hurt Sun. Once one accepts that, one is open to a much more interesting and meaningful question: namely, does this help Sun? Does it help Sun to have our technology – especially a revolutionary one – present in other systems? The answer is “you bet!” There are of course some general, abstract ways that it helps – it grows our DTrace community, it creates larger markets for our partners and ISVs that wish to offer DTrace-based solutions and services, etc. But there are also more specific, concrete ways: for example, how could it not help Solaris to have Ruby developers (the vast majority of whom develop on Mac OS X) become accustomed to using DTrace to debug their Rails app? Today, Rails apps are generally developed on Mac OS X and deployed on Linux – but one can make a very, very plausible argument that getting Rails developers hooked on DTrace on the development side could well the change the dynamics on the deployment side. (After all, DTrace + Leopard + Ruby-on-Rails is crazy delicious!) This all serves as an object lesson of how unanticipatable the benefits of open source can be: despite extensive war-gaming, no one at Sun anticipated that open sourcing DTrace would allow it to be used to Sun’s advantage on a hot web development platform running on a hip development system, neither of which originated at Sun.

And the DTrace/Leopard/Ruby triumvirate points to a more profound change: the presence of DTrace in other systems assures that it transcends a company or its products – that it moves beyond a mere a feature, and becomes a technological advance. As such, you can be sure that systems that lack DTrace will become increasingly unacceptable over time. DTrace’s shift from product to technological advance – just like the shifts in NFS or Java before it – is decidedly and indisputably in Sun’s interest, and indeed it embodies the value proposition of the open systems vision that started our shop in the first place. So here’s to DTrace on Leopard, long may it reign!