Tue

Dec 26
2006

Allison Randal

Allison Randal

Philosophy of Non-Competition

People periodically ask me about competition in the open source community, especially competition between various languages.

One thing Microsoft seems to have figured out is that developers want multiple languages to choose from and will always want multiple languages to choose from. Diversity is an advantage, not a disadvantage. Ruby, for example, benefits from Perl, PHP, and Python's success, just like they benefit from Ruby's success. Java would likely never have been released as open source if it weren't for the success of the other languages. Having multiple successful open source languages each used by multiple successful projects makes it that much easier for companies to consider open source alternatives. The more the merrier.

50 years from now, the rivalries of today will be a faded memory. The buzz will be all about the languages Glick, Pumice, and Chicha, or some such. But what we choose to do with Java/Perl/PHP/Python/Ruby/etc. today will significantly impact the shape of those languages to come. I don't mean just syntax, but implementations, problem spaces, politics, and economics. We are the roots of our own future.

A little competition is healthy. It spurs us on to greater heights of excellence. Does <insert a favorite language here> need to improve in some areas to keep up? Good! That's healthy for the language, healthy for the community, and healthy for the state of open source software in general. At the end of the day, though, we're in this together and must learn to work with our neighbors.


tags: open source  | comments: 10   | Sphere It
submit:

 
Previous  |  Next

0 TrackBacks

TrackBack URL for this entry: http://blogs.oreilly.com/cgi-bin/mt/mt-t.cgi/5129

Comments: 10

  James [12.26.06 04:22 AM]

How can open source be applied to the publishing business? For example, what could be enabled by O'Reilly working with Wiley in an open source way? Maybe this could be the topic of your next blog entry...

  Simon Phipps [12.26.06 05:19 AM]

While I agree that having a choice of languages with which to daisy-chain libraries it is a nice-to-have, and while I am a big supporter of multiple programming languages for the Java platform (having promoted Tolksdorf since the 90s and having co-initiated Coyote), I can't help thinking that this is surrender to Microsoft's world-view.

Most programmers are capable of using any programming language in a particular category as a tool to join library or API calls together after only a short period of study, but few programmers are adept in the intricacies of multiple library/API systems.

The genius of things like the perl and Java systems is less the programming language and more the fact that they come complete with extensive, platform-neutral library ecosystems. Who cares if I have a choice of dozens of languages if all I can do is program Windows?

  Benjamin Holzman [12.26.06 08:48 AM]

50 years from now, computers might be programming themselves...

  Tim O'Reilly [12.26.06 12:20 PM]

James -- your question is a bit confusing. Perhaps you could be more explicit about what kind of sharing you are thinking of. If you're thinking about publishers actually sharing the text of their books and being open to others improving them, we've been doing this for years. See openbooks.oreilly.com, or the collaboratively developed cookbooks like the Python Cookbook or the Ruby Cookbook.

If you're thinking about our organizations working together, O'Reilly works extensively with our biggest rivals, notably Pearson. A number of the recent innovations at our Safari joint venture, like Rough Cuts and Short Cuts, were actually started at one or another of the partners, then adopted by the others, with a shared brand. See for example these press releases and sites: O'Reilly, Sams, Prentice-Hall, Peachpit. We've tried to get Wiley into the service and other shared initiatives, but so far, they've been unwilling to partner.

O'Reilly also works closely with the Pragmatic Programmers, No Starch, and other smaller publishers, as well as with other publishers outside the pure technology publishing area, for example, in planning for our Tools of Change for Publishing conference.

  Cem [12.27.06 12:52 AM]

"50 years from now, the rivalries of today will be a faded memory."
... I strongly disagree. There will be new rivalries.

  Allison Randal [12.27.06 11:46 AM]

There will be new rivalries.

Indeed, new rivalries about new languages. Humans are humans, after all. The important point is to gain a sense of perspective. A rivalry you're hotly involved in today may seem like a big deal, but 50 years from now no one will care about it.

  Allison Randal [12.27.06 01:01 PM]

While I agree that having a choice of languages with which to daisy-chain libraries it is a nice-to-have, and while I am a big supporter of multiple programming languages for the Java platform (having promoted Tolksdorf since the 90s and having co-initiated Coyote), I can't help thinking that this is surrender to Microsoft's world-view.

Hardly. Microsoft's acceptance of multiple languages is a tiny surrender to the open source world-view. Monolithic companies like monolithic product offerings. A one-size-fits-all programming language is a marketing nirvana: focus all your resources on one name. But programmers aren't a homogeneous lot. If they were, the market would have standardized on one language years ago. The "one language to rule them all" is a myth that will never be realized.

Most programmers are capable of using any programming language in a particular category as a tool to join library or API calls together after only a short period of study, but few programmers are adept in the intricacies of multiple library/API systems.

Most tools for creating multiple library/API systems are poorly architected and poorly implemented, so it's not surprising that programmers have trouble using them.

The genius of things like the perl and Java systems is less the programming language and more the fact that they come complete with extensive, platform-neutral library ecosystems. Who cares if I have a choice of dozens of languages if all I can do is program Windows?

I certainly agree that platform-neutrality is important, and this is where Microsoft has failed. But language-neutrality is also important. Syntax is largely irrelevant, it all gets translated down to machine language in the end. I constantly run into problems where the best solution is a combination of something like one library in Python, one in Java, and one in Perl. There are ways to make it work, but they're clumsy and primitive. Living in an isolated silo of one language is an obstacle to progress.

  Allison Randal [12.27.06 01:20 PM]

50 years from now, computers might be programming themselves...

I certainly hope so, though we've got a long way to go. There are some interesting parallels between research in dynamic languages and self-modifying code.

  adamsj [12.30.06 11:35 AM]

Allison,


It strikes me that you tend to make normative arguments when you write about competition and open source. There's nothing wrong with that, of course--I often think of open source in a normative sense--but I seldom hear you argue descriptively.


If open course is to be metaphorically understood as an ecosystem or a part thereof, then a descriptive explanation of competition in open source would be useful. I've got doubts about the ecosystem metaphor, myself--I mean, yes, perhaps all complex ecosystems do have parasites, but I still kill ticks on sight in meatworld, and feel good about it, too. Perhaps I'm not disagreeing with how your write what you write, but working out my issues with the metaphor. Still, it seems worth pointing out.

  Allison Randal [12.30.06 07:14 PM]

It strikes me that you tend to make normative arguments when you write about competition and open source. There's nothing wrong with that, of course--I often think of open source in a normative sense--but I seldom hear you argue descriptively.

Hmmm... yeah, I do. I've been a leader in the open source world (in various different roles) for quite a while now. One of the things I learned early on is that the job of a leader isn't just the mechanical act of making things happen. It's also about inspiring people to reach beyond themselves. Helping them to see the best they can be, the best we can be as a community, and how to get there.

If open course is to be metaphorically understood as an ecosystem or a part thereof, then a descriptive explanation of competition in open source would be useful.

I suspect a purely descriptive explanation of competition in open source wouldn't be particularly interesting: "The open source community consists of a number of independent projects. Some of those projects aim to solve similar problems, in similar ways, and as a result find themselves competing for the same users. This situation often results in negative feelings by the developers and users of one project against the developers and users of other similar projects. These feelings are expressed by a broad range of behavior all the way from good natured joking, to highly improbably speculations about the psychological nature of people who choose to use or develop the similar project, to outrageously false and insulting claims about the features or functionality of the similar project."

I've got doubts about the ecosystem metaphor, myself--I mean, yes, perhaps all complex ecosystems do have parasites, but I still kill ticks on sight in meatworld, and feel good about it, too.

No metaphor is ever a 100% match for the reality it illustrates, but they're useful tools.

I'm not sure who the parasites would be in the open source ecosystem metaphor. Certainly not the developers of other open source projects. The large companies who actively oppose open source better fit the role of "predator". So, perhaps the parasites are the few individuals scattered within the community who take without giving, thwart forward progress, and act as general irritants.

Post A Comment:

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






Type the characters you see in the picture above.

RECOMMENDED FOR YOU

RECENT COMMENTS