On Monday (November 13th, 2006), Sun announce that it is releasing Java under the terms of the GPL2 license.
This is a few days old now, but I wanted to take the time to look at it and think about the implications. Being a programmer, this is significant news for me. I’ve concluded, however, that the effects may be too far-reaching to predict.
This post will concentrate more on the positive. The next post will talk about some of the finer details of the licensing, and exactly what is being released and when. I would recommend reading that one too, to get a balanced reaction. This post, then, reflects my hopes of what all this means.
Java and GNU/Linux
The obvious effect is that it will be possible to include Java in GNU/Linux distributions.
This is a frustrating gap that has existed for many years now. There have been a number of projects try to fill it, but with limited success. Most are worthy of acknowledgement for their achievements, but have fallen short of providing a full implementation of the Java standard. What will be interesting to see is whether their achievements are significant enough to make it into the Sun Java codebase, as an improvement to the existing product.
It will be possible for GNU/Linux to participate in the wealth of ‘run anywhere‘ Java software. As I said, some projects tried to provide a Java run-time for GNU/Linux, but they were unable to create a complete implementation. You could never rely on them to run a Java programme without problems. With a full implentation, any Java programmes that do not feature OS-specific code will run quite happily.
The Java platform now gains a great number of GNU/Linux developers; with their expertise and bug-squashing determination.
These developers may also decide that Java is a poweful language in which to write their configuration tools. It could lead to a more feature-complete GNU HURD OS, if appropriate cross-platform tools are written.
Java and .NET
I think it is reasonably obvious that Sun has made this move in order to compete with .NET.
Microsoft developed .NET in response to Java’s success and ingenuity, but with their marketing power and platform dominance they have seen fast adoption of the technology.
Sun have gained a good market-share with the GPL’d OpenOffice.org, and I think they want to hold on to their Java market-share by using the same tactic.
Also, .NET has been finding its way into the Free Software world by way of Mono. A number of applications, that run on Mono, have found their way onto the GNOME desktop and into GNU/Linux distributions (Tomboy, Beagle). It seems ironic that software using a technology invented by Microsoft could be used with Free Software, but software using technology from the company who own the most successful Free Software office suite could not.
[EDIT: The following paragraph was changed because of an inaccuracy pointed out by Joe Shaw. See the comments below.]
One of the reasons for this was Microsoft’s decision to create an open ECMA standard, with which the core .NET framework would comply. There is now some doubt over the long-term viability of Mono, given Novell’s (the owners of Mono) decision to sign an agreement with Microsoft that excludes their customers from prosecution for software-patent infringement, due to their use of GNU/Linux. If only because it makes Novell less popular in the Free Software community.
I am a C# (.NET) programmer (it pays my wage until I find a career in Free Software). I like the technology. Microsoft have done a good job in designing and implementing it. I’m not going say that isn’t the case, just because it’s Microsoft. But, of course, I want to use and develop Free Software, so my focus was on Mono.
Sun’s move changes that, and especially because of their courage in making that move. I have programmed in Java, briefly, before. I liked Java as well; but for different reasons. Java is more mature, and more flexible. .NET is subject to Microsoft’s hand-holding mentality. That does often make things a lot quicker and simpler to do, but it is also very frustrating; especially for a capable programmer who wants to do something his way, but is subject to Microsoft’s preferences. There is a huge volume of Java knowledge out there, much of which is made available by the Free Software community, and Java gives you the flexibility to use it.
I think what I’m saying is that I’m now much more drawn to Java. I liked it before, but I couldn’t write Java for Free Software operating systems. I can now, and I have a great deal of respect for Sun’s decision - I think they deserve a good response from Free Software programmers. I shall be looking at it closely, and will probably try to use that platform for Free Software that I write.
To be continued…
This post is starting to get quite long. I shall talk about the "Classpath Exception", the current status, and some possible pitfalls in my next blog.
I’ll leave you with a quote from Richard Stallman, a video of which was featured in Sun’s announcement. I realise I’m doing their marketing job for them, but they’ve pulled off quite a coup by getting something like this out of him:
"I think Sun has… well, with this contribution… have contributed more than any other company to the Free Software community… in the form of software. It shows leadership. It’s an example I hope others will follow."