Open Source Java

The open source Java topic seems to come in waves. With this wave the speculation is that Jonathan's Open Source, sharing, and transparent ways will enter the world of Java. To get this out in front, I have no idea if Java will be open sourced. Even though you haven't asked, I'll give you my thoughts :)

I have one primary concern about Open Source Java. That the platform will be diluted, and not necessarily for nefarious reasons. For example, this comment about removing Swing from a server build of Java comment enough seems innocent enough, but would it be the start of a trend? Would we end up seeing specific builds of Java for specific problem sets? Would it stay together as a full Write Once Run Anywhere platform (WORA)? I supposed this could be addressed under a license.

The fact that there is so much discussion going on is of interest. The discussion is all over the map. Some like the idea of Open Source Java. Some think that will negatively affect WORA. There doesn't seem to be any general consensus building. Perhaps that means there is a tremendous amount of pent-up innovation. What do you think?


What makes open sourcing Java such a seductive idea is the wish of Java users to finally get rid of some of the most misimplemented features, such as Date, Swing, AWT, and so on, since Sun engineers seem to be stuck in a mindset of eternal binary compatibility. If there was a way to achieve those objectives, and to get a full, production ready J2EE SDK on every default Linux installation, that would get people what they want.

Posted by Mikael Gueck on May 03, 2006 at 01:00 AM PDT #

Of course, Java is already being diluted by non-certified implementations, whether the RI is open source or not. If Sun won't give people a "Java Core Edition" they'll just build it themselves...

Posted by Wes Felter (IBM Research) on May 03, 2006 at 05:02 AM PDT #

I don't see how removing Swing or AWT would benefit any J2EE distribution?! What is the point? Do you really need to save a few megabytes on your big servers?

Posted by Romain Guy on May 03, 2006 at 09:57 AM PDT #

Mikael, thanks for the comment. A similar thread was covered in a previous entry.

Wes, what is the market penetration of those non-certified implementations? I think most developers want compatibility and will use Java. If it is not certified, it is not Java. In some ways, a non-certified implementation is an oxymoron, but I grok what you mean :) What would a "Core Edition" contain? Would that satisfy enough of the developers or would they want to create their own distributions including, lets say, log4j instead of JDK logging? It comes down to how developers see Java, as a language with a vm and libraries, or as a platform.

Romain, well said.

Posted by John Clingan on May 03, 2006 at 11:23 AM PDT #

I think the market penetration of GCJ is growing, as it gets included as the default VM in more and more Linux distributions. GCJ is not intentionally incompatible with real Java, but since it is not complete there are differences.

Posted by Wes Felter (IBM Research) on May 03, 2006 at 11:32 AM PDT #

We could just release Sun's JVM under GPL/CDDL duel license as 'reference implementation' without ever worrying about defragmentation, or having negative effect with WORA ideal. Nothing prevents putting GPL'ed Java under JCP's control as long as Sun doesn't abandon 'Java' trademark. In this way, no one could call their forked version 'Java' unless they also pass TCK, or extend and modify core libraries except by way of JSR/JCP. Currently, Mono has already gained sufficient momentum to be recognized as a preferred platform for writing Linux (mostly GNOME desktop though) applications, while Java's presence in desktop Linux is almost negligible. Only reason that such a dangerous attempt to copycat everything MS does gained such momentum is the fact it is covered under GPL. Once Sun's JVM is released under GPL, we can fight back in the rapidly growing Linux desktop world again, since we have both JCP/GPL while Mono people doesn't have anything to say where MS's leading them to.

Posted by Xavier Cho on May 03, 2006 at 12:55 PM PDT #

Romain, getting a JEE package on every default Linux installation and getting rid of cruft are two separate objectives.

Posted by Mikael Gueck on May 04, 2006 at 01:06 AM PDT #

I am very sceptical about open-sourcing Java because I think that Sun did a fairly good job so far to keep Java on track. There will always be people thinking that they can do a better job but it is not about one person's input but rather the complete output of a team. Looking back to the evolution of Java it could have been gone easier worse than better and the vibrant open-source community around Java speaks volumes. I do not agree with all the decisions that Sun made along the way but I am still a full-time Java developer with no aspirations to change in the near future.

The other point is a general problem with who is controlling an open-source project. Sun could easily open-source Java and still maintain control over the check-ins and the use of 'Java' as trademark and we would be as far as we are now. Sun started a few months ago to allow outsiders like me to contribute code to Java and actually a bug fix from me made it into Mustang. Again if Sun is controlling who can contribute and decide what makes it in or not then we have already accomplish that. As I learned the hard way when I was kicked out of the JBoss project the important question in an open-source project is who is controlling the project. If like in JBoss a single person (the creator of the SF project) is in charge he has the final say or in case of an Apache project where nobody controls a project the creator can easily loose his/her influence when the other team members stab him in the back. So the creator has to choose carefully which path to go and the contributors have to be aware of who is controlling an open-source project.

Posted by Andreas Schaefer on May 04, 2006 at 07:04 AM PDT #

First of all Sun has already broken WORA with the micro editions of Java. Those editions ship without a lot of the libraries including Swing.

As an offical rep of Sun could you try proposing a stripped down, open JVM that could be embedded and redistributed in Mozilla? A lot of work has gone into Javascript Spidermonkey (C version), but they also have Rhino (JVM version). Mozilla is extremely sensitive to download sizes so this has to be the minimal possible package. You would just be proposing this without committing to it to see what kind of response you get.

Getting the JVM in Mozilla would obviously get it installed onto millions of desktops. The JVM would instantly become the standard VM on Linux. You would want this coordinated with standard edition Java so that two JVMs don't get installed. I'll never understand why Sun didn't embedded in Mozilla five years ago.

It is unclear to me if Mozilla would accept your offer. Not having a redistributable Java for so long has caused all of the projects to make other choices. Things may have gone too far with gjc and mono for Sun to recover.

Post it to this list:

Posted by Jon Smirl on May 04, 2006 at 12:28 PM PDT #

As Jon said, Sun has already forked off incompatible versions of Java for fun and profit. You can get your own copy of "headless Java SE" which does not seem to follow any particular JCP standard from Sun at ... and it does not include the 'standard tools' among other things. How it manages to pass the TCK without them (the TCK tests for tools like rmid, afaik) and which TCK it supposedly passes is one of those wonders of Sun's ever transparent PR. :) As for the market penetration of alternative implementations, at least on debian, where I have the numbers via debian's popcon, the kaffe package has a larger installed user base, and more regular users than the corresponding wrapper around Sun's proprietary implementation. While debian is an example distribution that's very true to the principles of free software, it shows that we've successfully made the alternative VMs good enough for a lot of people. The relevant people at Sun asked for and have known those numbers for a couple of months. Today Sun announced they'll try to fix the JRE license for GNU/Linux redistributors. Feel free to draw your own conclusions about the significance of the market share of the free runtimes ... :) Anyway, the other significant number I could offer you is the number of source code downloads: mustang had ~15k in a year and a half and lots of marketing cash and noise, kaffe has ~15k within a year, and a marketing budget of 0 USD. As for Sun opening the code to their own implementation: sure, would be neat, but it's not really that interesting for a larger audience any more, since GNU Classpath already has ~90% of J2SE 1.5 covered, and has it covered rather well. Sure, we could use code to fill in the remaining 10%, but that code will be written this year anyway, with or without Sun's contributions, without being forced to make foul compromises with Sun on what matters most: \* freedom for anyone to use, learn from, modify and redistribute the code for any purpose \* verifiable compatibility through an open source test suite (project Mauve), rather than shallow claims that are only supported by a cute logo and can't be verified by anyone else Sun has done a pretty bad job at turning J2SE into an open standard with ubiquitous open source implementations over the past 10 years, so the ASF and the FSF are very busy fixing that. Sun could still join the game, but what would Sun have that will still have any significance by the time Sun gets around to do it? I doubt there will be much left over, if anything. It gets less by the day, and so does the relevance of what Sun does or does not do with their own code. cheers, dalibor topic

Posted by Dalibor Topic on May 05, 2006 at 02:33 AM PDT #

I just downloaded the "small" embedded Linux version. It is still 21MB zipped. To get into Mozilla it has to be under 1MB. AWT is in there taking up 1MB.

One giant thing that gets dragged around in Java is megabytes of character translation tables. Mozilla already has those and you don't want two copies.

The whole WORA concept is flawed. If I want to use java byte code to replace Javascript in Mozilla, I don't care if it runs anywhere - I only want it to run in Mozilla. WORA is just one class of app, by sticking to the WORA mantra all the other application classes are shut out. Obviously Sun understands this since they made the micro editions for their own purposes, they just don't allow anyone else to make a micro version.

Posted by Jon Smirl on May 05, 2006 at 04:02 AM PDT #

Thought I would include a forward reference.

Posted by John Clingan on May 08, 2006 at 06:31 AM PDT #

Post a Comment:
Comments are closed for this entry.

John Clingan-Oracle


« July 2016