I have always wondered what makes a successful open source project, especially since i worked extensively on Linux and now working on OpenSolaris. Dave Stewart did a presentation a while back on the same subject in another conference. Iam not an expert about all open source projects in general, but only familier with Linux and Solaris... so we are just speaking kernel only here. Iam not worried about Apache or other application kinds since i really dont have first hand experience, hence i would only speak from my direct experience.
Without a doubt Linux is much more popular and successful, sometimes its a perception but as a developer I beleive that its really true. Its also true that the simple structure and the minimal infrastructure lends itself as a Geeks OS. So here are some of the things that make Linux more appealing to a wide audience.
- It fits almost any device. From gumstick to really large systems from many OEM's. Linux offers CONFIG_thisthing and CONFIG_thatthing so you can make it really really small to fit any device and memory footprint.
- Linux kernel development is truly done in the open. Very rarely you would see a successful kernel component developed by some body just drop in open and expect it to be included in mainline. I mean the design and development happens in the mailing lists seeking input from community members.
- Remote install is much simpler with Linux, you can just unroll the rpms, or even keep the iso image in ftp host, use remote vnc to complete installs.. you dont need to learn much to get things done.
Now iam not complaining that Solaris doesnt have the above features, but its simply hard.
About being open, I dont think we can say for sure about being open the same way Linux kernel developers see the development process. There was an article in CRN trying to access the same topic when OpenSolaris launch was being talked about.
In order for OpenSolaris to be really perceived in a way Linux kernel development is understood, I beleive OpenSolaris is not there completely yet, but making strides in that direction albeit very slow. Opensource is not saying "yes, the code is openly available", but it is really practiced with a true intend to let others participate. So when can we really say OpenSolaris is really open?
- When you see a project discussion before the one-pager in mailing lists. It appears in many/most cases when you see the one-pager for project proposal, the code is most likely written and just about to be published. This isnt interesting to someone who wants to be fully engaged in the development process to begin with. Now this may not be true of all projects. Some parts of tesla development was atleast discussed and developed actively in open mailing lists such as the PowerTop, Deep C-State management. This surely points to a step in the the right direction.
- Timeliness in responses, when a project proposal comes in externally, help guide for the project to quickly take off, with the same attension one would give for an internal project. You really want more participation and be engaged, rather than loose the audience.
- Success is when you see contributors outside of the company being involved heavily in the development process. Well, i dont have any numbers to prove/disprove but certainly one can gather from the commit logs, that there is very little participation in any quotable numbers outside the company.
- There should many distributions as one could find in the Linux world. There appears a movement happening, not sure if there are just purely pet projects or would eventually become valuable clones such as the Redhat and the Suse's. Its really encouraging to read that there are indeed an attempt to package and distribute opensolaris.
To conclude, I would say more needs to happen to make OpenSolaris really open to attract other developers to contribute to the project.
Should we be more patient? Read Dave's blog here. If it takes too long, people would quit paying attension!
Share the code or Share-The-Control ??? another one from Dave.
Maybe next time i will try to write about something more technical :-)