CUPS, the printer server project, was purchased by Apple but continues to be the main printer software in Linux and Unix systems. 5 of the 6 main Samba developers were employed by HP at one time, but only after HP agreed to leave the Samba copyrights in the developers names rather than HP's. Google, HP, IBM, and Red Hat no doubt have a strong participation in many Open Source projects, and more companies join that list every day.

Because the motivations of the Linux distribution companies often differ from those of the folks producing the software, they walk a tightrope between maximizing their own profit by being more closed and alienating the communities that produce the software they sell. The falls from that rope have been colorful.

The economics of Open Source don't work particularly well for distributions, because ultimately they're selling software that they don't own and that others give away for no charge, and their real product is integration - which is also available for free. Red Hat has been able to achieve financial success, but they are essentially alone in this, and more servers are running an "unbranded" no-charge version of Red Hat than their commercial product.

Having it Both Ways

The most successful Open Source projects have both "capitalist" and "Communist" elements to them.

Often there are engineers participating for a commercial project, who have very well-defined goals and tight schedules. They can't take time to build facilities they don't need. And they don't need it perfect, they need it Tuesday!

If participation only came from such engineers, the project would soon devolve to a mess of spaghetti code. They might be highly professional, but their company goals don't allow them to provide all of the professionalism that an Open Source project needs.

Consider, for example, Google's recent mis-step in submitting the wake locks patch to the Linux kernel group, which rejected it for insufficient quality. That's Google we're talking about, a company that can afford to be as professional as it desires.

Besides the goal-directed developers, we also need "architects," who spend a lot of time on the elegance and generality of the code design; we also need "janitors" who clean up the code and unify its style. These folks can't afford to be on a tight product schedule, and often come from research rather than product departments, or they're private individuals with an interest. These are the folks who keep the project healthy and useful for the rest.

Perhaps this is why, in a recent survey of Linux kernel developers, the largest company participating was "No Affiliation."

Linus Torvalds is the ultimate architect of the Linux kernel, but he has a cadre of "signers" who approve changes to various subsystems of the kernel.

The common thread between them is that their work in approving the changes of others can't be directed by their employer, and none will approve a change to the kernel for exclusively business purposes. The code submissions they approve must be of obvious use to multiple classes of user and of high quality. Because new code is visible to everyone and there are many kernel developers, low-quality code that does creep in will ultimately be excised by others.

So, would we want Open Source to be exclusively Capitalist or Communist in its nature?

No. First, we have to be conscious that 4 out of 5 start-up companies fail, and thus a good deal of the originally-profit-motivated Open Source code has survived the company that created it. One good example of this is Nautilus, which provides file-management for the GNOME desktop. Created by Andy Herzfeld's long-gone Eazel company, the code has developed substantially in the absence of its parent.

We need to acknowledge that good developers come from many different walks of life, that their motivations differ widely, and that the overall strength of an Open Source project comes from the diversity of its users and developers rather than their homogeneity. Diversity of interests leads to generality of the code, to development of useful pathways that might otherwise never be trod, and continued support of the project when business falters.

Obviously, many of the "Commercial Open Source" companies will be gone eventually. That's just a reality of start-up companies, whether they're Open Source or not.

The difference with Open Source companies is that we still have their code, for which I thank their management and investors, and there will be people interested in running that code and maintaining its viability even though it's not their profit-maker. Open Source companies are a bit more "green," because the legacy of their development is social benefit that survives their demise. Code of failed proprietary software companies quickly becomes useless.
So, Open Source is capitalist and communist, commercial and a hobby or academic project. All at the same time. Each increasingly needs the other to operate at its best. There are three different paradigms behind Open Source development, and only one of them is either primarily capitalist or unconcerned with capital. I hope this will help you understand where you belong in Open Source, and how to justify your participation.

Bruce Perens is one of the founders of the "Open Source" movement in software, and today is a strategic consultant to government and companies large and small on issues of Open Source, Open Standards, and technology. He spends a lot of time explaining software engineering to lawyers, and law to software engineers and their managers. He can be reached via bruce@perens.com, or 510-984-1055.