Free software spotlight at SUN
Tuesday, May 23rd, 2006I have to admit I was a little edgy, facing 15,000 people at the Java One event in the Moscone Center on Tuesday. Being on stage like that makes me break out in incomprehensible Swahili-nglish, every time. So I was grateful when Jonathan Schwartz gently pointed out that the licencing change we were discussing meant we could make *Java* easily available to free software desktop users, not Linux, as I said in my nervousness. Doh. Most free software desktop users already have Linux :-). Some day maybe it will be easier to be in the spotlight. Till then, I can only hope for hosts that gracious.
So, down to the nitty gritty.
Even though this was not the announcement we were all hoping for (a complete shift to free software Java) I was pleased to be part of the “Distro Licence for Java” announcement. As best I can tell, the new leadership at SUN clearly recognises the importance of the free software model AND the role of the community. That’s a big step forward and important to the progress of free software. If my being there could help accelerate the date when we really do have a free software licence for Java, then I was happy to take the time.
The new licence does not mean that we can include Java in Ubuntu by default. It does not yet meet our criteria for free software in order to get into “main”. But it DOES mean we can put it in the Multiverse or Commercial repositories, and people who want it can trivially get it after they have installed Ubuntu on a desktop or a server. Three clicks, and you’re done. Also, it can certainly be part of the default install of distros like MEPIS which leverage Ubuntu but add interesting and to many people useful proprietary bits.
So it’s a constructive step.
I wouldn’t expect a “big bang” conversion at SUN – it takes a long time to build consensus throughout a large organisation and it also takes time to straighten out the details of potentially thousands of other legal commitments. But the quote of the day was certainly Rich Green saying that the question is not “if” Java should be open source, but “how”. SUN wants to live in a free software world but also wants to continue to deliver on the promise of Java as a “compatible everywhere” platform. Even if there are already warts on the universal compatibility front (“write once, debug everywhere”) we’re all better off for the fact that Java is basically Java is basically Java. Developers don’t want to have to deal with “extended double remix” versions from a multitude of vendors. Especially not from vendors that specialise in “embrace, extend and extinguish” lines of attack.
So I thought I would ponder a little the strategic options and hypothesize a game plan that might do what SUN needs, while remaining firmly in the free software world. Here it is, inspired by the view of the Pacific coast as I make my way back down from San Francisco to Mexico City and Debconf.
- Pick a copyleft licence, like the GPL
If SUN were to make Java available under a free software licence it would benefit from having it under a copyleft licence, which means that folks taking it freely would also have to contribute their work back. Following the lead of the Free Software Foundation and requiring copyright assignment would preserve SUN’s undisputed ability to defend the ownership and licence of Java while broadening the base of talent that can help make Java perform on a wider variety of platforms. For many companies, particularly those who want to embed Java in their own infrastructure, a copyleft licence will not do (it would force them to make their own applications Free) and there will thus be plenty of incentive for them to strike a reasonable agreement on commercial terms for a custom licence to the Java code. This dual-licensing approach has worked for companies like MySQL. Java is both a client and a server technology, so the reach of such a strategy is even wider than server-only platforms like MySQL. - Manage the trademark very, very well
Copyright is only one leg of the intellectual property table. The trademark is the piece MOST associated with compatibility. SUN gets to say who can use that trademark even if it makes the code itself available under the GPL. Of course, use of the trademark should be conditional upon the maintainance of compatibility. Those test suites will have to get even better. If SUN is smart it can deploy the trademark as free advertising on all the platforms which are not in any event revenue-generating (like, for example, the free software desktop) while at the same time benefitting from royalties in places where it can reasonably claim a share of the revenue flow (the proprietary desktop and the embedded marketplace). - Keep the patent option open
I don’t believe software patents are a good thing (they’re a no-win deal for society, we shouldn’t grant a monopoly in exchange for a disclosure of something that could never be kept a secret anyway). That said, since the US allows them, SUN has them and SUN’s competitors have them too, it’s smart to tie Java-related patent licences to good behaviour on the part of licencees. The GPLv3 touches on this – in short, SUN can leverage the popularity of Java in order to provide itself with some protection from patent suits.
All of us at some stage or another have dreamed of having a brilliant idea then resting on our laurels while the cash flowed in. Truth is, life is never that easy. While Java was and still is a brilliant idea, there is plenty of competition out there and the field is hotting up, especially amongst the free software alternatives. I’d say there are no more than two years between today, and the day that a free software widget comes along that has all the characteristics of Java and *doesn’t* come from SUN. So, much as SUN would like the world + dog to rush to licence Java, that isn’t happening and won’t happen. More to the point, when that other contender exists it will rapidly become ubiquitous, at which point SUN will have lost the opportunity to lead that platform – forever.
Today’s markets are created by tools and standards that become pervasive and ubiquitous. Apache became pervasive because it is free software, and Java could do the same. This opportunity is SUN’s to lose, but everything I’ve seen suggests that they do want to grasp it with both hands. I can only applaud that commitment.
As a small incentive, I’ll close with a thought on the value of being the platform where innovation happens.
Right now, there’s plenty of development on “Java on Linux”. Think of every major company that deploys heavyweight J2EE infrastructure on Linux today. But that sort of development is not what drives innovation. When I look at the Java code that’s out there it’s industrial, but not exciting. The really exciting stuff tends to happen at the fringes, in student dorm rooms and tiny companies. And they tend to use the tools that are most immediately accessible to them.
- If Java had been free five years ago, PHP and LAMP might never have come into existence, because it would have been possible to deliver that vision using a lightweight integration of Java, scripting and the database.
- If Java had been free software four years ago, then it might have less of the reputation as a “corporate overkill platform” that it’s at risk of being saddled with right now
- If Java had been free software three years ago, then it would have even higher penetration on cellphones and mobile platforms, and there would not be competing free osftware implementations of the mobile Java VM and API’s
- If Java had been free two years ago, then Ruby-on-Rails might have been “Java on Rails” (though truth be told I’d rather it was Python on Rails!).
- If Java was free today, more of the AJAX stuff that is popping up all over the show would be done in Java (on the server side), because every student with a Linux box would have Java installed by default
A big enterpise-focused company like SUN will always convince big enterprises like Deutsche Bank that they should buy technology and services from SUN. Fair enough. But they can’t convince a smart Comp.Sci. student to envision the world using their tools – unless they make those tools pervasively and freely available. And it’s that smart Comp.Sci. student who writes the magic that will be headline grabbing material three years from now. Innovation starts in unexpected, lightweight sorts of places. So you need to ensure that your tools can reach into those lightweight sorts of places. When Java is free software, it will flow further out into the network – and that can only be a good thing for SUN.
May 24th, 2006 at 4:54 am
Good stuff. A few points:
1. Java is 10 years old. Making it free 10 years ago would have been *huge.* FireFox or Gnome might be Java, PHP, Python wouldn’t be necessary; C++ might be dead for usermode,
2.One of the reasons people don’t choose Java is because Java isn’t universal now. Debian runs on 15 platforms, Sun only supports 4: x86, PPC, AMD64 and Sparc (http://www.java.com/en/download/manual.jsp) People would only do that work on Sun’s codebases if it was free. Java isn’t widely widely used till its universal. It won’t be universal till its widely used. Java has been hampered by this vicious cycle.
3. Sun is worried about fragmentation, but if you look at PHP, Classpath, GCJ, Kaffe, Jikes, Bea’s JRockit, Mono, embedded Java VMs, etc. you can see the tools space and even the java space is already very fragmented. Fragmentation would happen much less if it were free.
4. Sun has some embedded VMs which are interesting, but Sun isn’t working on them. The Sun KVM is on hundreds of millions of phones but Sun hasn’t released a new version in 3 years. If it were set free, it would get tons more love. Also, Java on NUMA, Java in kernel mode, concurrent GCs, Java OS, etc. Mankind has many more years of interesting research on VMs and Sun is the bottleneck.
Tools have a special status for engineers and have an extra requirement to be free. When it comes down to it, I don’t care if my web browser is free nearly as much as my compilers and class libraries, etc. Sun really screwed up by getting in between engineers and their tools.
May 24th, 2006 at 8:23 am
I’d be very surprised to see Sun choose the GPL for something like Java when many more appropriate licenses exist – I’m thinking specificly of the Apache Software Foundation License v2, which has the patent protection clauses mooted for the GPL3, but /doesn’t/ have the rigours of copyleft, which is a definite bonus IMO when you’re trying to build an underlying platform for a technology which could be widely used and customised for use from the embedded market all the way up to big iron. The BSDesqueness of the ASL allows companies to keep “special sauce” modifications (like platform specific optimisations) proprietary whilst still allowing for generic improvements to be fed back to the community.
May 24th, 2006 at 8:38 am
For a “Python on rails” like framework you should definitely take a look at django (www.djangoproject.com)
May 24th, 2006 at 1:00 pm
Grokking Compatibility…
One of the strong notes at JavaOne last week was hearing Jonathan Schwartz and Rich Green underlining that compatibility is key to open sourcing Sun’s implementation of Java SE (from which the reference implementation is derived, and which is the so…
May 24th, 2006 at 7:00 pm
Very interessting article! Thanks for that. I think it’s a very good step from SUN, a little late though…
And I’d love to hear you talking “Swahili-nglish”… 😉
May 25th, 2006 at 9:24 am
in Suse 10…& Ubuntu..please for educational purposes atleast,,,kick-start.
thanks
d.n
May 25th, 2006 at 11:40 am
I do not agree with Dennis. You should definitely take a look at ruby 😉
Something you did not mention is that there are free software users on BSD, Minix, etc. These users will really benefit from a free-as-in-fredom Java 🙂
May 28th, 2006 at 8:51 pm
Hi Mark, nice to read what you have to say, and what you’re saying about Java explains why I have had such trouble downloading it. I’m a complete newbie at Linux, and I wish this explanation could be available for all newbies. Love Ubuntu, just trying to get my head around it, as a little old lady should.
July 12th, 2006 at 3:52 am
Hey, don’t give away the car boot – i hate java – please stay closed then l will never have to learn it, no matter how good it is 🙂
July 31st, 2006 at 1:14 pm
Nice article, thanks
Making revenues from free & open source software is one of the most frequently asked questions these days. While there have been a few successful examples of companies (like MySQL, Red Hat etc) which are making money, I’d surmise that these are still very early days for open source revenue & profit models.
While open source as an operational paradigm certainly has been having exceptional success against proprietary and closed-software models in the recent past, in my opinion, a lot more thought need to be given and experimentations done before the emergence of viable revenue models for the free & open source models that can successfully compete with the current proprietary software revenue model. Some specifics of the business models are emerging fast, but it will take a few years for the market to test each of these out and hopefully, the fittest will survive.
A site that focuses exclusively on revenue models from free, open source software is Follars.com – Free, Open-source Dollars – http://www.follars.com !
Ec @ IT, Software Database @ http://www.eit.in
December 3rd, 2006 at 10:09 pm
FLOSS Java…
Mark Shuttleworth founder of Twarte, Canonical Ltd and The Ubuntu Foundation (which distributed the popular Ubuntu Linux) comments on his blog regarding the open sourcing of Java following from Sun license changes that make it easier to distribute the …
February 26th, 2009 at 6:58 pm
[…] http://www.markshuttleworth.com/archives/38 Also see: http://www.linuxinsider.com/rsstory/50613.html […]