Previous  |  Next



Tim O'Reilly

Tim O'Reilly

Open Communities vs. Open Source

At an OSCON panel yesterday, there was a really interesting conversation between Danese Cooper and Dain Sundstrom. We were talking about what happens when money arrives at an open source project (either in the form of corporate sponsors or commercialization of the project itself.)

Mitchell Baker pointed out how hard it was for AOL to understand that she was still the project leader when they laid her off from Netscape. It took a concerted effort by the remaining Netscape developers to help them realize that she was still their leader, despite AOL's new organizational plans. I had been making a similar point to Laurie Tolson, the new head of Java at Sun, in discussing how Sun would have to change their thinking if they were to open source Java. Open source projects are typically headed by individuals, and in cluetrain style, depend on having a human face.

Dain made a really interesting distinction. We need to recognize, he pointed out, that open source doesn't guarantee open community. Some projects (JBoss was what he had in mind) are open source, but have a closed community, controlled by a corporate sponsor.

If you leave the company, you perhaps leave the project as well. Keeping in mind what had happened when they left JBoss, the Geronimo developers held up the sale of Gluecode (the company they'd formed to commercialize Geronimo, their fork of JBoss) to IBM to make sure that they had the contractual right to continue to work on the project, even if they left IBM.

Of course, there are gradations of open. Java is a good example. Its community process is not as closed as that of JBoss or MySQL, but it's still clearly dominated by a corporate entity that sets the rules. (But the vibrancy of Java development outside of Sun still shows us that a relatively open architecture (albeit bloated in many parts) and a relatively open community can get many of the benefits of open source without an open source license.)

This discussion reminded me of a point that I've long made, that open source licenses are only one dimension of the open source phenomenon. Besides open community, there's also open architecture. Some projects have monolithic codebases that are hard for developers to engage with, while others have modular "architectures of participation." Linux (at the distribution level) has this in spades: anyone who writes an open source program is contributing it to the Linux ecosystem, which pulls it into its orbit much like a solar system does its satellites. There is a gravitational core, but no boundary. The internet, too, has this kind of architecture. Meanwhile, many of the most successful open source projects also have well-developed extension mechanisms: Apache, Mozilla, Perl, PHP...

I'm particularly mindful of the lessons of Mozilla. When Netscape first released its browser as open source, it was a typical monolithic corporate application, very hard for developers to get their heads around. The Mozilla team made the difficult decision to spend a couple of years reworking the project to make it more approachable. Thus Firefox was born from what appeared to be the ashes. And besides being based on Mozilla's modular building blocks, Firefox has a great extension mechanism. is a good counter-example. While it's extensible, the developers never took the time that Mozilla took to make the original closed, monolithic application into something that was more approachable for developers. I believe that this has hampered its development.

Apache is also a great teacher. Back in the mid-90s, when the web server wars were still going on, Apache was faulted for not adding features like Netscape or Microsoft's web servers. Apache stayed small, focused on core web server functionality, and with its extension mechanisms and process, became the server platform of choice.

Modular architectures enable individual developers and small teams, and are generally much more hackable. These two factors are critical to open source success.

This thinking leads to a model a bit like the "levels of the game" that I recently put forward for Web 2.0:

Level 3: The project has an open source license, an open community (anyone can contribute, and it's purely a meritocracy), and a modular architecture. Linux, Apache, Mozilla, Perl, Python, Ruby, PHP all meet this test.

Level 2: The project has an open source license but not an open community. MySQL and JBoss are examples.

Level 1: The project has an open source license, but a monolithic architecture. And because it has a monolithic architecture, it usually has a closed community as well. Sendmail is a good example. is an example of a project with an open source license, a monolithic architecture, and an open community.

I probably am mischaracterizing some of these projects and will get a lot of heat as a result, but I hope to provoke some thoughtful discussion as well.

tags:   | comments: 7   | Sphere It


0 TrackBacks

TrackBack URL for this entry:

Comments: 7

Steve Loughran   [07.28.06 01:51 PM]

One thing about modular designs is that newbies can work on a bit of the problem, without risking the rest. And their changes can be checked in without fear of broad damage to the system.

Ant, for example, knows that anyone editing any of the SCM tasks wont screw up the core.

if newbies can contribute code easily, they can join the dev team easily.

All the J2EE implementations (geronimo and jboss included) have a problem is that they are incredibly complex, and part of the test suite is under Sun's NDA. IT's a real barrier to entry.

As for OOo, their build process is just scary. I'd love to turn bits of it off, but terrified to go near it.

Thomas Lord   [07.28.06 11:27 PM]

To really understand the interactions of open source, and community, and money, you should look harder at the (harder to identify) losers. Like me. And like the GNU project in the early 90s. And like BSD. How and why we lost and what it implies.

So, the GNU project starts out with its particular aims -- a unix compatible but significantly improved and very lisp-friendly operating system -- but....

Cygnus finds a surprise market for GCC. Only, the GNU maintainer of GCC (not an employee of Cygnus' brain-drain) keeps an incompatible pace. So, should Cygnus find a win-win solution? Honor its ancestors? Honor the source of the value they are exploiting? Nah... form a hostile fork, disguise it with polite language, and wait for RMS to take a face-saving step of dubbing the fork "official GNU." A hostile take-over. I was in the offices there at Cygnus in the early phase of this take-over and I heard people talking about their relationship to the GNU project that had given the company life. And yes, the predominant tone was hostile. Not rationally so, IMO, just hostile. GNU was an inconvenience. GNU was an obstruction to be overcome (nevermind that Cygnus wouldn't exist without it).

And then in my case there's GNU Arch, my clever revision control system. Commercial adoption by Canonical followed by brain-drain followed by politely-disguised hostility and a hostile fork -- in this case leading to the essential death of the project at a point in time where, with a little cooperation, it really could have taken off.

Or, again in my case, there's GNU Guile -- once-upon-a-time the starting point for the modern lisp-based extension language for the GNU system. Infanticide (by Cygnus again) in prepartion for an exit strategy (initially portrayed as an IPO, ultimately the sale to Red Hat).

Of *course* there are a handful of exceptions like Baker (as if AOL were competent to control Mozilla) or Linus (a very cooperative fellow whose kernel is finally close to caught up with BSD -- well, except for code quality). Such exceptions are convenient. They represent a "credible promise", even if a false one, to distract the larger community from the bright lights that attracted them in the first place.

How does it hurt people in general? Well, the entire distro business is pretty much a sham. Technologically we should have, long ago, settled on packaging and patch flow and such to an extent that assembling a working GNU/* system was quite trivial. You'd want vendors simply to be vetting code, directing R&D spending, providing secure binaries over robust channels, and, yes, a modicum of hand-holding support. But it's far easier to just screw projects like GNU and spend a decade or two selling a service that is basically a work-around for what the project you killed didn't get a chance to finish.

It's cliche that founders of a hot start-up start with big visions and then the VCs come in and chase the founders off, leaving them feeling disillusioned. In the case of FLOSS, the cliche has leaked outward and y'all have polluted an external community and "horked" an entire generation or two of young hackers. Look at yourselves. You've actually given rise to Tony Robinson style seminars about how to attract and manage public volunteer communities to achieve your Personal Commercial Aims.

And god forbid someone should stick to the original vision. Such a person, such as me, y'all just toss overboard -- repeatedly.

Shame on the lot of you and your self-congratulatory selves.

Stop calling it community and start calling it society. and a class-based society at that. It's the open source class based society. Pure and simple.

don't even get me started unless yr prepared to finish

Konstantin Boudnik   [07.31.06 11:11 AM]

I inclined to agree with Mr. Lord's most of the points! The corporations stepping into the OSS stream aren't about community and benefiting everyone; it's about how to make money out of community free participation.

It doesn't appeal at all :-(

Matt Hogstrom   [08.11.06 12:14 PM]

Your comments sound a lot like the discussions in the 90's in terms of commercial involvement in the Internet. There were a few camps that basically broke down into Commercial is evil and will kill it and the Academic camp that was concerened about the openess of information exchange. I think for the most part we're in better shape in terms of the Internet today because of the commercial involvement.

That is not to say that the same outcome is assured in terms of OpenSource and commercial involvement. In some ways it comes down to a communal everyone is equal and be nice to everyone and a capitalistic bent which is generally focused on achieving goals (monetary in most cases). In many instances each camp attracts people with different goals and interests. Many times they are at odds with each other.

What I think your describing is the consequences of human nature in action.

Wherever it ends up we'll see this pattern repeated for generations to come in different ways.

Tim O'Reilly   [08.11.06 12:52 PM]

Matt -- I agree about the similarities to the debate over the commercialization of the internet. Looking back at the archives of the com-priv mailing list would be eye-opening to people. Unfortunately, I can't seem to find it online (if anyone knows if it still exists as an archive, please let us know.)

But this message from 1997 on another internet mailing list (quite late relative to that debate) shows some of the flavor:

Lijo George   [08.24.07 07:51 AM]

why you think JBoss/MySQL is closed? I think they are available to developers out side? Am i wrong?

David   [08.25.07 01:09 PM]

I really like what you said about mozilla. really firefox was an awsome opensource project that really caught in.

Post A Comment:

 (please be patient, comments may take awhile to post)

Remember Me?

Subscribe to this Site

Radar RSS feed