 |
Why don't open source developers help make open source java real?
Posted by flozano on March 15, 2005 at 11:36 AM | Comments (32)
In spite of all the rants about the need of open source Java, the open source / free software community itself is doing very little to make it real.
Not to disregard the efforts of the kaffe, gcj, classpath teams and other involved with F/OSS Java VMs, but what are big open source java projects from Apache Jakarta and Eclipse, small projects like HSQLDB and JUnit, and even individual open source developers, doing to help them?
I remember a few months ago someone posted at an Apache mailing list a complain about the huge help the foundation provided to identify and fix bugs on Sun Java, receiving almost nothing in return. He asked, why weren't some of these efforts spent trying to identify where and how to improve kaffe and etc so they become reliable platforms for running apache software?
Now I ask the same question for open source developers in general: Why don't you spend a little time testing your apps under kaffe and/or gcj? If only to provide them useful bug reports. But most things that prevent current applications to run under these free JVMs are just a few lines of code away, if some more developers decide to contribute patches.
After all, if the community itself don't think F/OSS Java is worth their time and efforts, why should Sun think different?
Bookmark blog post: del.icio.us Digg DZone Furl Reddit
Comments
Comments are listed in date ascending order (oldest first) | Post Comment
-
Jason Hunter made some interesting comments at one of his TSSJS sessions. In a nutshell, developers only work on OS projects where they have a vested interest.
What is an individual's incentive to create an OS Java? Individuals can get a JRE free from Sun, so why bother (unless Java isn't ported to your device).
Some companies want to embed Java devices without having to pay a royalty to Sun. They're the most likely source of talent to work on an OS Java (and they're generally more interested in royalty-free than in OS).
Posted by: johnreynolds on March 15, 2005 at 11:57 AM
-
See Brutus and Gump. There is an effort to build hundreds of java projects and run their test cases using Apache Gump / Kaffe.
Davanum Srinivas
Posted by: dims on March 15, 2005 at 01:13 PM
-
I'll tell you why. The only people who scream about OS java are non-java people who have far too much time and idealogy on their hands. I don't know many opensource java developers who could possibly care less one way or another. We are able to develop open source software, and that's good enough. We're not doing it because of some moral altruistic save the world code wants to be free crap, we're doing it because it's enjoyable.
It's amazing how all these outsiders have managed to actually make a fuss over such a ridiculous topic. I've been to three conference so far where the question was raised, and the number of people who want java opensources (or even care) is always a tiny fragment of any given audience. I'm sure it'll be much bigger if you go to a non-java conference, but then those are the same whiners who scream 'java is slow' and 'applets suck' on slashdot. Why that voice is even allowed a vote within the java space is a mystery.
Posted by: hani on March 15, 2005 at 02:18 PM
-
The simple fact is that Sun controls what it means to be "Java". Unless and until that fundamentally changes, there can be no such thing as "Open Source Java" -- there can only be open source implementations of something that resemble but cannot be called "Java".
Posted by: johnm on March 15, 2005 at 02:39 PM
-
Thanks everyone for your opinions, specially for the Brutus link. It looks like someone at Apache is looking at Kaffe. Great news! But it looks the tests are just for Gump itself, not for Tomcat, Xerces and others.
Please let me carify one misconception:
Nothing prevents "open source java", even Sun control of it. Anyone can build an implementation, build the TCK and certify it as "Java". It really wasn't possible before Java 1.5 and the JCP 2.6, but now it is.
It was even noticed on the linux community home-page that the Kaffe developers are applying for the JCP scholarship to run the TCK and eventually certify Kaffe.
The incentive question is big. Sun's freeware Java2 SDK and Runtime is good enough for many developers, but you'll agree it's incoherent to put pressure on Sun to open source Java but not helping the existing f/oss Java projects.
I hope people stop ranting at Sun and do provide more support (as users, testers and advogates) to Kaffe, GCJ and other f/oss Java VMs.
Posted by: flozano on March 15, 2005 at 06:46 PM
-
These are "F/OSS" hackers you're talking about, not middle managers. If implementing Java requires them to obtain "Sun Java Scholarships(tm)" and submit every minor revision to some lame-oid corporation's "Expert Group(tm)" for certification, they're not going to do it. It's ridiculous to expect anybody who isn't employed by Sun to submit themselves to that type of headache.
Personally, I'd need a lightweight, open implementation to give a shit about Java in the first place, because a) I'm on dialup and b) i'm not going to stick my neck out for Sun no matter how many blogs they set up and redhat enterprise licenses they sell.
Posted by: wbkw on March 15, 2005 at 09:23 PM
-
Why should people care about open source java?
Simple; because of what everyone who has ever programmed java knows, the core libraries have too many bugs and Sun is not fixing them. This is one example of where competition is good.
Another issue; creating new technology for Java most of the time is done by Sun or the JCP. This is design by commitee which has proven to produce less-then-optimal esults time after time. A JCP which picks up the concurency open source project and then makes it part of Java is rare, but a much better way to do it.
When the whole class-library is open source everyone can create their next-best-Java-feature and mature it out in the open. This basically gives much better products.
Thomas
Posted by: zander on March 16, 2005 at 01:27 AM
-
This is a total digression... but look at how buggy this blogging software is. The comments are from newest to oldest.
It's amazing how little bugs creep in everywhere.
Posted by: johnreynolds on March 16, 2005 at 06:35 AM
-
Fernando,
I know that a lot of brouha is going on about Java and Open Sourcing Java. Most of it is just people pushing their ideas of OpenSource out there. Like "If Java was OpenSource, it would have less bugs"... which is of course Bullshit.. less bugs can only come from better engineering, and that only happens if you have good people on a good team.
I'm rather tired of going over this again, so some time ago I created a document/FAQ that deals with all the arguments against Open Sourcing Java:
http://www.jroller.com/page/murphee/20040426
I think, one thing that would benefit Sun and the all Java users, would be a small license change, which allow people to freely use the Java Standard library (java.*, javax.*) that Sun provides. This is currently not possible, because it can only be redistributed with the JRE/JDK.
What problems does this cause? Well, for instance you can't compile Swing apps to native code with gcj. Why? GCJ must use the GNU CLASSPATH project which lacks a full Swing implementation (among other things).
This, for instance leads to another problem: fragmentation of the Java space. Why? People that want to use free VMs or gcj, *have* to use the subset of the Java libs that GNU CLASSPATH offers. This means no Swing; which in turn means: people turn to SWT for GUIs, because SWT *can* be used for this (Eclipse has been compiled with gcj and Redhat is working on making that more easy and widespread).
Of course... there's the matter of not so widespread platforms. What if I want to use Java on *BSD; it's a pain on FreeBSD (and I'm not sure if they have 1.5, if they even have full 1.4 support), not to mention OpenBSD or NetBSD (where you have to jump through hoops to get anywhere). What about somewhat exotic platforms like Linux on ARM? Yes, you can run a free VM + GNU CLASSPATH, but when I want to fire up a big Swing app ... well, I'm pretty much screwed. So if someone needs to develop for one of these platforms, or just has one of these platforms in his requirements (among Windows or Solaris), then... it means using SWT and other non-standard APIs... wait! Wasn't Sun afraid of fragmentation and/or SWT?
Conclusion: keep the control over the trademark (important!), keep the control over compatibility (essential!), keep the source for the Sun JRE (there are plenty of free VMs) ... simply allowing the Standard Libs to be used freely would be helpful.
Posted by: murphee on March 16, 2005 at 06:36 AM
-
Fernando,
Here is a link that shows just how much work is going on with GNU Classpath:
http://gnu.wildebeest.org/diary/index.php?p=53
I'm doing what I can to help get JFreeChart running against GNU Classpath - not all of the Java2D API works yet, but I'm optimistic about the progress that is being made. I hope other developers will join in to speed the development along.
Regards,
Dave Gilbert
JFreeChart Project Leader
Posted by: dgilbert on March 16, 2005 at 07:31 AM
-
Actually, FOSS Java developers are helping out in various ways, although it may not be that obvious. As Davanum pointed out, we've started an effort with the ASF to make more free software run out of the box (and stay running) with Kaffe/Classpath on the Gump. That effort has been quite successful in building bridges between different communities and led to various bugs being fixed and detected. So that's working quite well. For another huge thing happening, OpenOffice.org has been gradually fixed into building on gcj by Caolan, so I'm looking forward to helping make OpenOffice.org more widely portable and useful. This work has also been very useful to find previously undetected bugs. Andrew & the gcjers have also been busy hacking on Jonas, and patches to make Jonas run nicely are flowing into gcj's CVS. See planet.classpath.org for screenshots. Then there are the numerous GNU/Linux and other free OS distributions that have helped out with patches, ports, and enthusiasm for the work happening. Debian and Fedora are rapidly pushing programs and libraries written in the Java programming language out of the non-free software trap. Eclipse hackers are helping along to make Eclipse build and run nicely on free runtimes. Increasingly people writing FOSS in Java are becoming aware that their software can run on a free stack, are trying it out, and reporting back with bug reports, patches and helpful suggestions (and praise, ocassionally, too :).
thinks are moving pretty fast. With ~80% of J2SE 1.4 APIs covered and coverage continuously increasing, GNU Classpath is becoming pretty useful for real world applications, like Eclipse3 or Jonas. I guess we'll be there for most applications in 12-15 months, as most of the problems exposed by Gump are bugs that are fixable, for example locking issues in Kaffe's VM core.
cheers,
dalibor topic
Posted by: robilad on March 16, 2005 at 07:48 AM
-
Mr. wkbk, I guess if JBoss, Apache Tomcat, Apache Genorino and ObjectWeb Jonas can go though the JCP certification process, f/oss Java VMs and runtimes could also. Of course there are lots of hackers that want just to code and not having to bother with bureucracy, but a free software project will have people of all kinds involved, including those who would be willing to manage certification.
Posted by: flozano on March 16, 2005 at 08:22 AM
-
Mr. murphee, thanks for the link, your blog entry is very instructive. The bugs on Sun Java (and skow response to many of them, which keep on the bug parece for years) and the trouble getting Java VMs for niche platforms are great incentives for a f/oss Java VM. If Sun changes its license and allows some of its code to be used by free software jvms, it get's easier, but availability of Sun code is not a necessity.
Posted by: flozano on March 16, 2005 at 08:29 AM
-
Hi Dave and Dalibor, thanks for the info on progresses made by many f/oss projects on compatibility with free software jvms. This kind of information is very disperse and it's not easy to find. I think we Linux Java users (or f/oss Java users and developers) need a way to let more people know about the advances. This community can help a lot, please send me any news about those progresses so I can report here. I was also delighted to read planet classpath, how could I miss such a site?
Posted by: flozano on March 16, 2005 at 08:40 AM
-
This is why I keep hinting at Sun to open source their implementation of Java: If they don't, one of the 3rd-party OS Javas will eventually gain enough momentum to overtake Sun's implementation, and fragment the platform in the process (witness the Swing-SWT divide already).
Plus, there's so many things you can do with an OS Java that you can't do with Sun's Java. You can strip out all the class libraries from the JRE and build your own "Java-like" VM specific to your app. You can port it (relatively) quickly to new platforms (wasn't Java supposed to be right once, run *everywhere*?).
I'm convinced that Java has more unrealized potential than most people understand, and it may take OS to realize it.
Posted by: afishionado on March 16, 2005 at 12:42 PM
-
As sad as it is - but your post seems to be absolutly right!
Thousands of hours are spent sending bug-reports to SUN, and hundreds of years waiting till they are fixed.
Imagine how much those coders could have moved if just 10% would have really fixed a bug in a free implementation...
Posted by: linuxhippy on March 16, 2005 at 12:56 PM
-
Just a general comment: if you have something to contribute to the jdk, bug fix or a feature, or know somebody who does, why not just join https://jdk.dev.java.net project?
Dmitri
Java2D Team
Posted by: trembovetski on March 16, 2005 at 04:05 PM
-
Dimitri, I really don't know the legalities of Sun licenses, but it was told many times at gcj and java-gnome mailing lists that if you accept Sun license you become "contaminated" and Sun could make your work on another f/oss java license (or even libraries) illegal on the claim that you have used knowledge you got from Sun sources.
If this is true it really prevents collaboration between Sun and f/oss Java developers. There's a lot of collaboration between Linux and BSD developers, for example, although they can't share actual code.
To be fair, I have added before on the linux community home page links to news and blogs about the development of mustang, so people can give it a try.
There's another point worth noticing: the incentive to contribute to a real f/oss project is much bigger, because nothing prevents you from bennefit imediatelly from your own code. But you cannot distribute your patched Sun Java, even as a private runtime for your own product. You have to certify, which is costly and takes too long, before you can bennefit from your own work.
I think it would be of great help if you could redistribute (and certify, of course) smaller parts of the Java2 SE, and mix then with Sun and/or other parts.
Posted by: flozano on March 16, 2005 at 07:17 PM
-
Regarding "contamination": The relevant part of
the JRL
says:
III. B. Residual Rights. You may use
any information in intangible form that you
remember after accessing the Technology, except
when such use violates Sun's copyrights or patent
rights.
I'm not a lawyer, but it seems to me that as long
as you don't copy-and-paste code from Sun sources
then the only real issue is that of violating a
patent, but then that's an issue whether or not
you read any Sun sources.
Posted by: mreinhold on March 16, 2005 at 09:04 PM
-
The coders don't care one way or another.
It's only the religious zealots who scream that Sun must open source Java (under the GPL of course to ensure that any software written in Java must also be GPL) and not just the implementation but the JLS and JVMS as well so they can fork the hell out of it without any repercussions.
Those zealots are almost invariably not coders and even those that are are not Java coders. They code in C++ or Perl, platforms that are also under tight control from others than themselves but somehow they don't mind about that...
As it is you're free to create an open source implementation of the language already. All Sun asks is that you pass the test suite before you release it under the Java name in order to prevent the platform from becoming a mess of mutually incompatible versions (like C and C++ have become).
Of course the zealots see that as a restriction they can't live with, a BIG BAD Company controlling whether they can call their new language Java or not...
Hani is quite right in his analysis therefore when he states that the only people who really want Java to be released from the control of the JCP are the ones who are opposed to its very existence.
Posted by: jwenting on March 17, 2005 at 05:32 AM
-
Mr. mreinhold, I'd feel safe only if I hear someone from Sun state that. I know layers that are not sure your interpretation is correct at court.
Posted by: flozano on March 17, 2005 at 06:14 AM
-
Dmitri, unfortunately Sun's implementation is not open source, so it seems pointless to contribute to it. Sun's license is full of interesting little traps and pitfalls, that make it legally risky for people to contribute to the JDK project.
For just one of many examples, the JRL says that "this License is governed by the laws of the United States and the State of California,
as applied to contracts entered into and performed in
California between California residents. ", and not being in United States, one has to a pretty good reason to agree to expose oneself to the screwed US legal system that allows for nonsense such as SCO that one can not fix, not being in US. Thanks, but no thanks, most people don't have an army of lawyers to deal with weird US IP laws.
cheers,
dalibor topic
Posted by: robilad on March 17, 2005 at 06:15 AM
-
Mr. jwenting, if coders didn't care I'd have not put this blog (I actually code for a living) and there would be no people working on kaffe, gcj, classpath, gump, etc. This discussion generates headed responses from both sides because the human being likes to fight with other humans beings. :-)
But my point was not if there should be an f/oss Java, nor if it had to be GPL or not. I was about the inconsistency of f/oss developers coding for Sun proprietary Java and not bothering to make their apps running with one of the (incomplete but yet usefull) f/oss Java VMs availabe.
The fork argument, as it was demonstrated at many places (so I won't repeat the arguments here) is plain FUD. You can see successfull f/oss project rarely fork, and when they do fork it is benefical to its users. You don't see, for example, incompatible linux kernels floating around, although nothing prevents them to exist.
Posted by: flozano on March 17, 2005 at 06:20 AM
-
Mark, unfortunately Sun's legal division stuck in a pretty huge trap right there:
"except when such use violates Sun's copyrights ". Now, while I am not a lawyer, I have some experience dissecting Sun's licenses, and I know what to look for. In this case, it's the Modification clause in the JRL:
"Modifications" means any (a) change or addition to the
Technology or (b) new source or object code implementing any
portion of the Technology.
Copyright law covers modifications, and not just verbatim copying. By agreeing to the JRL you agree to this overreaching definition, thereby letting Sun claim *any new source code* that implements *any portion* of the technology covered by the JRL (in this case J2SE) as a Modificaiton of Sun's code, and by copyright law falling under Sun's copyright. Therefore, you can't use your residual knowledge for an independant implementation of the same technology, without violating Sun's copyight *if* you have agreed to the JRL.
It's a cutely designed trap for those unwary of Sun's licensing, but it's still just another SCSL-like trap to lock you in into Sun's source code and Sun's source code alone once you agree to the license. That's the whole deal of the non-forking provisions in the license anyway.
cheers,
dalibor topic
Posted by: robilad on March 17, 2005 at 06:29 AM
-
Dmitry, Mark: But if you are not tainted by Sun's source code licenses/NDAs, you're welcome to join in the fun, and help out on GNU Classpath, Kaffe and other free runtimes to shape the future of the platform with a second generation implementation of the libraries.
Sun is welcome to at any time switch away from their proprietary code base, and join the growing, vibrant community of free and non-free runtime developers implementing a FOSS platform for bytecode from the ground up. See you around :)
cheers,
dalibor topic
Posted by: robilad on March 17, 2005 at 06:54 AM
-
Good blog on why java should not be OS.
Posted by: johnreynolds on March 17, 2005 at 07:48 AM
-
John, this blog was not about if Java should be open source or not. It was about the F/OSS developers temselves doing little coding to get there, as nothing prevents them fro doing. But as everyone insist on diverging the subject, I have to comment also.
Sun can do whatever it wants. I don't think Sun Java has to be F/OSS. But the blog you pointed just ignored arguments presented before at many articles. An F/OSS java does not have to fork or become incompatible. There are ways to prevent this, trademark protection and certification, among them.
F/OSS software has consistently achived a higher degree of compliance to standards (like IETF and W3C) than proprietary software. Why should F/OSS Java become non-standards compliant where Apache, Mozilla, Linux and many others are standards compliant?
The claims made by the blog about the ease of moving from BEA to Oracle 9iAS is false. Unless you restrict yourself to not using CMP (which is a big part of the J2EE spec) you'll have a huge effort of rewritting code.
Posted by: flozano on March 17, 2005 at 08:02 AM
-
Sun can license their implementation as they wish. They are leading the innovation in the software licensing area, with another interesting non-free license announced to come next month.
To the contrary, I guess that opening up their implementation could actually be counterproductive to Sun, as breathing life into more than 3 million lines of code and creating a community around it, as long as hardly anyone outside Sun is able to build it, let alone hack on it, could prove quite a challenge.
In the long run it may make sense for Sun to drop their code base, and move to a well maintained, portable ecosystem of solutions with a diverse community behind it. We'll see, Sun has all the time they need to make the transition and join in the fun.
cheers,
dalibor topic
Posted by: robilad on March 17, 2005 at 09:02 AM
-
Fernando, some points:
1) the people screaming for Java to be released as OSS are the very ones who have every reason to want those incompatible versions to appear. They WANT Java to fail, and making sure noone knows what Java is ensures that by destroying WORA. In the case of the Linux kernel those same people want it consistent so they strive to prevent forking.
2) As long as those OSS JVMs take care to comply with the JLS and JVMS everything designed for the Sun JVM should work on them. If they choose to not comply, they're not Java and are exactly the forks you claim won't exist (whether through mallice or carelessness on the part of their creators).
3) I admire the OSS community for their work, but the prevailing attitude (inside much of that community) of hostility towards anyone wanting to keep control of their intellectual property and towards anyone making money out of their work is apalling to me. I wouldn't want people like that to have control over the platform that guarantees the income that pays my bills.I've contributed to OSS projects and may do so again in the future, but I've been bitten by project admins taking the code and kicking all contributors out before going commercial with our work in the past and I'm wary of that happening again.
4) Java is open as it is. The only thing anyone wanting to implement a JVM as an OOS project needs is the JLS and JVMS both of which are openly available either for free from Sun or as a printed book. That's more than the OSS community had when starting to implement C++ compilers (the C++ standard is only available for purchase from ANSI...). Yet I hear no outcry that that C++ standard should be open source.
Posted by: jwenting on March 18, 2005 at 12:29 AM
-
Sun can do whatever it wants. I don't think Sun Java has to be F/OSS. But the blog you pointed just ignored arguments presented before at many articles. An F/OSS java does not have to fork or become incompatible. There are ways to prevent this, trademark protection and certification, among them.
John, this system is already in place. Anyone is free to create an OSS version of Java and release it under the Java name if only they pass the certification. The Blackdown project is a case in point. (though they are over a year behind Sun in their release schedule, but that's unsurprising)
If others don't take up the challenge you can't blame Sun for that. You may as well blame IBM for not releasing their JVM under an OSS license.
In fact, IBM have now released Jikes (their alternative Java compiler) as OSS on Sourceforge, showing again that indeed an OSS Java is possible. While Jikes is a compiler only it does show that an OSS implementation is possible.
Posted by: jwenting on March 18, 2005 at 12:39 AM
-
Hi jwenting, your generalization is very very dangerous. You incentive the f/oss and the java communities to consider each other as enemies, when in fact they share common objectives and have benefited imenselly from working together. If the f/oss people wanted Java to fail, there would be no eclipse, jakarta, jboss, jonas, jedit and other f/oss software written using Java. Are you aware that many RIs from JCP specs are f/oss projects?
Until very recently, it wasn't possible for a f/oss Java2 SE to comply with the specs and be certified. Even today, although it is possible, there are many legal barriers to collaboration.
But you show us that there is as much, maybe more, hostility among Java proprietary developers than you complain there is among f/oss developers. This won't bennefit any of us :-(
Please let me fix some misconceptions you do have:
(1) The Blackdown Java is not f/oss. They are Sun licensees just like IBM and BEA. Their JRE or JDK can't be distributed by Linux distros such as Debian by the same reasons Sun own implementation can't. And they are responsible for most of the work on the first official Sun Java release for Linux. Today they are the sole source of a certified Java for many Linux platforms not supported by Sun, IBM or BEA, which targets mostly Intel and compatibles.
(2) The Jikes project is long time f/oss. Moving to SourceForge was just marketing, and maybe foster a higher involment from the community as opposed fo IBM-only working on it.
Posted by: flozano on March 18, 2005 at 08:04 AM
-
I think Java need to be managed by Sun, using the same JRE keep us compatible with others... making Java "full" open-source can make it fall...
Posted by: alois on November 16, 2005 at 08:22 AM
|