Last week, the CloudStack controversy questioned whether there can be more than one open source cloud. Evan Prodromou, founder and CEO of StatusNet, says no, arguing that it's "going to be better for everyone" if there is a single contender for open source cloud computing thanks to network effects.
Prodromou makes some good points, but glosses over the reality of the cloud computing market - not to mention quite a few healthy and successful open source projects that compete pretty heavily.
Here's part of Prodromou's argument for a single project to rule them all:
Users are more likely to try out a package that is well supported, has lots of integrated software, has commercial and community efforts around it, as well as documentation, books, and so on. Contributors are more likely to work on new features and fix bugs for projects that they know have legs. Third-party developers are also more likely to develop for platforms that have lots of users. Integrators use platforms they think will last. People blog and write mainstream press articles about bigger projects.
All of this is true, as far as it goes. Developers don't want to deal with 10 different platforms. Projects that have few users and little interest are unlikely to garner much press, which helps keep them small.
The problem is that Prodromou goes on to assume that competing open source projects will automatically "keep each other small" and "impede growth of the entire market." He also ignores the reality of the existing market, and the politics and motivations of the players involved.
We Don't Live in a Perfect World
In a perfect world, all the participants would play nice and work together for maximum benefit. But we don't live in a perfect world. If open source has taught us anything, it's that even when participants share a big-picture goal, they're likely to disagree on how to achieve that goal or have additional motives that hinder cooperation.
It's often proposed, for instance, that Linux would have had a better chance of success on the desktop if everybody would just work together instead of pursuing so many different projects.
In a perfect world, that might be true. But it ignores the personalities and individual goals of the organizations and developers participating in GNOME, KDE, etc.
In theory, Linux could have conquered the desktop market - if only the companies and developers could have unified behind one project.
In reality? There's no way to get all the different parties behind one project. Even if you had, you would have lost a lot of existing Linux desktop users who would have been left out in the cold by the resulting homogenized atrocity that likely would have been the result of trying to combine everything. Many developers who were interested in the success of KDE, for example, have no interest in the success of GNOME.
Developers are not interchangeable units of work that can be applied to any project. Likewise, the general success of open source cloud computing is not as valuable to a company involved in OpenStack, CloudStack or Eucalyptus as the success of a specific platform.
So there's little chance that we're going to herd all the cats in any general direction -even if it is ideal.
Growth and Value
While the idea of all the cloud vendors and developers aligning to fight the good fight may be appealing, it's not only unlikely - it's also unnecessary.
Prodromou argues that competing factions are going to "impede" the market. Perhaps there's a Platonic ideal market size we could reach with a single open source cloud project, but that doesn't mean having several projects will slow the growth of the open cloud market.
No doubt, one or two of the efforts will ultimately fail. But the cloud computing market is not being driven by CloudStack, OpenStack and the rest. Instead, those projects are being driven by market demand for open source cloud software. The cloud market is young and growing rapidly. Now is the perfect time to see the results of several competing projects, rather than a single effort that tries to be all things to all customers. If they're able to differentiate themselves for different workloads and market segments, they will be much more valuable as separate entities than a single generic effort.
Take a step back and look at some of the other competing projects. You have MySQL and PostgreSQL, for instance. Have those projects hindered the market for open source databases? Hardly. Look at the number of NoSQL databases - have they harmed the market? Is it smaller because of the number of projects, or has it grown faster because different projects are more suitable for different use cases?
Likewise, a dominant open source project doesn't always benefit the market. When Firefox was the primary open source browser, it suffered from bloat and glacially slow improvements. Competition from Chrome has spurred Firefox to improve much more quickly.
Apache managed to climb to the top of the heap as the premier open source Web server - but wasn't meeting the needs of many companies. That, eventually, gave rise to Nginx and others. The competition between Nginx and Apache didn't hurt anybody, did it?
Perhaps Prodromou's view is colored by the fact that he's looking at open source social media efforts that have failed to take off in any meaningful way. The network effect Prodromou cites looms large when you're dealing with social networks, because the value truly lies in the number of users on any given network. A social network that doesn't have your friends and colleagues is of no interest. But it's less clear whether open source efforts in that direction would have fared better if there were only one.
There's plenty of room for two or three open source cloud efforts. The CloudStack announcement last week isn't harmful for the larger movement at all.(Photo from Kevin Dooley via Flickr under the CC BY 2.0 license.)