Open Source Java IV : Towards a Walled Garden
[ geir ] 15:21, Thursday, 9 November 2006

I muttered about Sun using the GPL for their OSS efforts a while ago, and there has been very little information about it in public, until now, and the whole industry is buzzing.

Jonathan Schwartz mentioned CDDL at the end of October, but that's been the only thing out there, and that was clearly an unscripted moment.

CRN posted this piece on Sun using the GPL, and - well - this supports what has been my bet for some time now.

Why? Because I think I understand now what Sun wants to achieve - basically, a 'walled garden' for its customers and partners, where they can create a stronger relationship, a participatory relationship, with those that still wish to be dependent on Sun for things like tested binaries, and such.

In retrospect, it's an easy conclusion to come to. Safe money bets that Sun will retain the same IP model they use for Glassfish and OpenSolaris, namely require that Sun is granted joint copyright ownership of any contribution, with the result that Sun will have a complete copyright and thus will be able to relicense to others under commercial terms. This creates a tilted "playing field" in Sun's favor, which I think is a mistake. It will discourage collaboration by Sun's licensee-competitors, which is a wonderful use for open source. There are countless examples of it, such as linux, httpd, tomcat, etc - but it relies on an equality in the ecosystem that Sun's model doesn't support. The GPL is the only logical license that supports this level of control. Other licenses, such as the BSD, MIT, CDDL, Mozilla, etc allow a recipient to freely augment or replace pieces and license those changes under their own license. That removes the control point that GPL gives Sun.

Sun's business model these days is 'open access and trial, come back for support and service'. So they will make things accessible for people to read, review, run, inspect, etc. The GPL is a great vehicle for this - it lets them retain control over who can make a proprietary derivative work, yet allow people to read and inspect it under a license that is "blessed" by the OSI.

So, it's a logical move in support of the "walled garden", one that fits what Sun appears to be doing as their global business model. It's a proven model, as demonstrated by MySQL, so it will probably work out for them. It does raise some interesting questions though, but that's for another blog....


Comments

True, Sun can have their "walled garden". But the GPL lets anyone play outside the walls, as long as they do it out in the open (that is, release their code under the GPL). Furthermore, Sun can't compel anyone to assign their contributions, so they'll still be subject to the threat of a fork if they mismanage Java. The real protection that the GPL offers Sun is that it prevents anyone else from creating a competing "walled garden". I don't think it is unreasonable for them to want that protection. And to be honest, I can live with one "walled garden" but don't like the idea of two.

--Dave Gilbert, November 10, 2006 10:36 AM

I agree 100%. This is Sun's code, and it's their choice to do with it what they will. They seem to have some very clear goals for the community they are creating, supporting their evolving business model.

I think this is a watershed event in open source history due to the economic value of the codebase, their continuing interest in it, and the fact that it isn't in any way, shape or form 'abandonware'.

--Geir Magnusson Jr, November 10, 2006 11:02 AM

A large brick in that wall is that the test kit, TCK, is not available in open-source form. See http://daveshields.wordpress.com/2006/11/29/what-if-what-not-testing-testing-testing/

--dave shields, January 3, 2007 09:57 AM

Dave Shields (noting by full name, becuase I have another comment for Dave Gilbert),

It is, and I expect that Sun will be forced to do that too. Nature abhors a vacuum, and since there's no plans for OpenJDK to distribute binaries, "the community" will find other ways to determine if what they compiled actually sorta works.

Having the community create a "de-facto TCK" for Java SE is a horrible outcome, IMO. There should be one TCK, and yes, from my experience with other TCKs (J2EE, UDDI, et al), having the source under an open source license would be really productive. It would make it easier for implementors to talk to other implementors about testing, bugs could be identified and fixes submitted to the TCK maintainer, etc.

I don't think it's a risk to compatibility, as the TCK is the only thing that can, by spec license, determine if an implementation can be called compatible with the spec.

We'll see how long it takes Sun to grok this and fix it.

--Geir Magnusson Jr, January 3, 2007 12:02 PM
Post a comment









Remember personal info?