Friday, May 16, 2008

The new "Open" isn't as open as it seems to be

I was reading Scott Koon's (lazycoder) post about RIAs (rich internet applications) being a platform play, what with Adobe AIR, Microsoft Silverlight and JavaFX. Scott noted that these platforms are all "open enough" that independent implementations can be made.

This idea reminded me of a podcast on open source business models with Dirk Riehle that I listened to a number of weeks back. The core ideas are also on the Dirk's website.

Dirk makes clear a number of features of the open software market. In particular, he distinguishes between community open source and commercial open source, where a single vendor controls the direction of the project and employs the key contributors. Even though e.g. Silverlight isn't exactly open source, Microsoft has been open enough to let Novell's Moonlight be implemented. The strategies of Sun and Microsoft for their new platforms appear to be based around the ideas of commercial open source. Their profit items are hardware and services in the case of Sun, and OS and database licenses in the case of Microsoft. What Adobe's long-term strategy for monetizing its platform play isn't yet clear to me, but when you've got folks locked in, you can start selling your captive audience one way or another.

Anyhow, my point is that this new openness isn't as open as it seems to be. Community open source needs strong personalities to deliver direction , and even then, it seems to work best when reimplementing a previously proprietary, closed-source technology. Commercial open-source has several key advantages in controlling the platform, because focus and longer-term strategy means it can usually force any potential competitors into trying to keep up with it, rather than forking and going their own way. Open platforms tend to rally around key personalities, which essentially become brands, and the commercial style means that the body corporate owns that brand. Microsoft can come out with all the IronPython and IronRuby they like, but they are unlikely to get much acceptance if they try to introduce features that Guido or Matz don't agree with. More corporately, it's unlikely that many competitors to Sun would ever become "go-to guys" for issues with the Java platform (though if it would be anybody, I'd bet on Azul in the long term).

Upshot is, going open isn't as open (or risky) as it might seem, provided that you've got something else to sell alongside.

Update: Fuzzyman in the comments has convinced me that I was wrong to suggest that the most used open source isn't that innovative, hence the overstrike. However, that wasn't really essential to the point of the post...


Michael Foord said...

"Community open source needs strong personalities to deliver direction, and even then, it seems to work best when reimplementing a previously proprietary, closed-source technology."

Certainly at face value this is completely wrong. Open source projects that reimplement proprietary technology are a *tiny* minority of Open Source as a whole.

Perl, PHP, Apache, Python, Ruby, Linux - none of those are merely 'reimplementations' of propietary technology (and in fact there are many proprietary reimplementations of these...).

Barry Kelly said...

@fuzzyman: I only partially agree with you. I agree that if you just count the number of open source projects, you could conclude that they are not reimplementations. However, when considering popularity, and overall mass of use, I don't think your claim is as strong. My perspective is, of course, somewhat warped with more Windows experience than the other side of things.

I also don't agree that Linux, easily the most "massey" of your examples, isn't a reimplementation of Unix. I also don't have much technical respect for Perl and PHP, but I also feel that programming languages are largely an exception to the rule. Programming languages are so easy and such fun to write that people create them for free, and since languages depend for their continued existence on being popular with other programmers (or non-programmers), the Darwinian landscape almost forces some of the more popular languages to be open source.

Michael Foord said...

Well I live in the Open Source world (although until recently I did run Windows on my desktop).

From that point of view the statement seems so far from reality as to make me stare at it wondering what you really meant!

There are a huge number of Open Source projects (driving a huge amount of innovation) and a huge number of commercial projects. Just because some of them exist in the same space it is perverse to say that Open Source is just a reimplementation of commercial projects - except in a small handful of cases where that is explicitly the case (like SAMBA and Mono for example).

It would be equally perverse to claim the reverse - but only equally perverse. Really, can you think of more than a handful of examples to justify that claim? (And would you claim that Firefox is 'merely' an open reimplementation of IE !!!???)

Whilst what you say about Linux may have been true many years ago it is hardly the case now...

Ironically you mention IronPython/IronRuby in your article - which precisely are proprietary reimplementations of Open Source languages...

(I share your disdain for PHP and Perl, but they are and have been monstrously successful.

Barry Kelly said...

@fuzzyman - FWIW, I do use Linux, I have a Ubuntu box under my desk right now, as well as an Eee running eeeXubuntu. I think it (Linux in general, not necessarily Ubuntu in particular) makes a decent enough server environment, but so many things about configuration, the architecture of X, and the bugginess of almost every GUI program (particularly media manipulation programs) in the common repositories drives me away from using it as a desktop. (I feel safe saying that about the repositories since they have so many packages in them, so many of them broken in different ways...)

I have found running Cygwin on Windows to provide the absolute best command-line / GUI integrated experience, notwithstanding the interop issues.