The community effort hosted by the Apache Software Foundation to create an open source, J2SE 5.0 compatible Java runtime/virtual machine is progressing slowly but steadily. Despite some indifference and prejudice by some OSS pundits, the project has been recently moving along nicely with key players like Intel and IBM contributing their own programmers and source code to the effort.
except MS sucks
What a waste of energy
An OpenSource implementation of the JavaVM is necessary to bring the language to all the platforms not supported by the official Sun distribuition.
Also, it opens the opportunity to fine-tune the JVM to better behave at specific applications, and better integration with existing open source projects.
“An OpenSource implementation of the JavaVM is necessary to bring the language to all the platforms not supported by the official Sun distribuition.”
No, it’s not. There are plenty of closed-source JVMs for platforms other than what HosSpot supports. Apple provides Java for OS X, HP provides it for HP-UX and OpenVMS, SGI provides it for IRIX and IBM provides it for z/OS, OS/400, AIX and Linux/ppc.
While I support Harmony’s development, Java is already supported just fine on almost every platform.
But it’s funny how one of Java’s key “selling” points is its Write Once Run Anywhere mantra. The point is that Sun cant officially deliver this dream.
Now, it’s amazing what happens when you leave an OSS VM to its own devices. Before you know it, it’ll be ported to a variety of platforms you didn’t even know of.
See http://www.kaffe.org/ports.shtml
Java on Playstation 2, anyone? On a more serious note, Java on *BSD is very handy.
Why is it Sun’s job to port Java to every platform? They created a stable JVM and Java language spec and let market forces dictate where it would get ported. I don’t see this as a failure for Sun, but a success for Java. Btw, several of the non-Sun JREs are based on Sun’s code; for instance HP, Apple and BEA all base parts of their JREs on Sun’s implementation.
Why is it Sun’s job to port Java to every platform? They created a stable JVM and Java language spec and let market forces dictate where it would get ported.
Sun does not allow Java to be ported. Well, not without paying Sun a fair bit of cash (which needs to be handed over again with every minor revision) and agreeing to draconian licensing terms.
The only other option is coming up with a Java workalike on your own, as Kaffe, GNU Classpath and Harmony are trying to do, but that requires a lot of work and cannot be claimed to be “Java” in any case.
Sure, there’s gcj (which is very very cool), but the more the merrier. and the involvement of the biggies™ ensures this will progress further than kaffe and the like
I don’t understand why Sun doesn’t contribute some of their source code, or am I missing something?
If IBM wants to contribute something, why don’t they open source their jvm? Providing some tools to help an apache-licensed project make progress is in their interests — maybe they can learn something from the progress that harmony makes and then use it in their non-FOSS tools. Look at IBM’s HTTPServer — it’s basically apache with a couple added modules, but they don’t distribute source (or at least I couldn’t get it last time I tried!)
I really don’t understand Harmony. Is it just for ego reasons that they don’t just contribute to projects like gnu classpath, kaffe, jamvm, and cacao? Is it some license-ego thing on the part of the contributors (We won’t do GPL?). Or is apache harmony just a marionette that is controlled by business interests that don’t want to see a GPL java succeed?
I’ve been really happy with gcj, classpath, and using either jamvm, cacao or kaffe in GNU/Linux. I wish the swing compatibility was better, but if I really wanted to do GUI work in java then I’d be happy with SWT/JFace or java-gnome.
In any case, I’ll stick with the above tools for my java needs in GNU/Linux for the near future and choose other languages with more FOSS tools when I have an option.
If IBM wants to contribute something, why don’t they open source their jvm?
It has been discussed a lot on harmony-dev mailing list. If I remember correctly, they cannot open theit jvm because it contains a lot of sun code.
Anyway, recently SableVM [ http://www.sablevm.org ] has been relicensed to Apache Software License [ASLv2] and will now be part of harmony.
It has been discussed a lot on harmony-dev mailing list. If I remember correctly, they cannot open theit jvm because it contains a lot of sun code.
One could also argue that it would be better to start off with a clean slate so that all the features required can be built in from the ground up rather than them being tacked on at the last minute.
Atleast if everything is designed from the ground up, all the features and considerations can be taken into account so that the different parts of the VM can be properly documented, designed to be easy to maintained and most importantly, when it comes to porting to other platforms such as FreeBSD, 300 hoops won’t need to be jumped through as with the case of the current situation of JVM.
The idea situation would be to replicate the Java classes and use the mono VM.
One could also argue that it would be better to start off with a clean slate so that all the features required can be built in from the ground up rather than them being tacked on at the last minute.
Atleast if everything is designed from the ground up, all the features and considerations can be taken into account so that the different parts of the VM can be properly documented, designed to be easy to maintained and most importantly, when it comes to porting to other platforms such as FreeBSD, 300 hoops won’t need to be jumped through as with the case of the current situation of JVM.
Sounds like a good description of IBM’s J9 VM (from what I’ve heard).
“Is it some license-ego thing on the part of the contributors (We won’t do GPL?)”
I can’t speak for the Apache guys, but this is my take. The Apache organisation have had their license for a long time and its even freer than GPL. They’ve made lots of libraries and frameworks that have been widely adopted by the Java community.
However, their software stack was always dependent on a JRE that was not compliant with the Apache license. This is the last piece of the jigsaw to have a full Apache stack. They believe in their license as much as FSF believes in GPL. Therefore, the GPL-based offerings are too restrictive for them and as much as they’d love to reuse, it doesn’t conform, and regrettably, that means they have to leave it be.
So I don’t think it’s an ego thing. It’s just what they need to do to fulfil their ambition to have a full Apache Java stack.
But do any users really want “a full Apache Java stack”? Why? It sounds like many Apache projects (that are just duplicating other open source projects) exist for political, not practical reasons.
I am not even going to comment about this “article”. If you would like to check the progress of Harmony yourself, take a look at these automatically-generated status pages:
http://incubator.apache.org/harmony/subcomponents/classlibrary/stat…
http://www.kaffe.org/~stuart/japi/htmlout/h-jdk14-harmony.html
http://www.kaffe.org/~stuart/japi/htmlout/h-jdk15-harmony.html
Don’t forget, VMs like Kaffe and Sable, plus GCJ have been around for a while. Harmony is about making a JRE (JVM + Class library) under the Apache license. This has caused all sorts of issues because it generally means it can’t absorb much of the leg-work already achieved by GNU Classpath and Kaffe, et al.
So, if you want to play around with OSS Java, there are already avenues to pursue. If you want an Apache compliant, then you have to wait for Harmony to catch up.
I think Harmony is a Good Thing, btw.
It should be interesting to see how the open source java implementions come out and to what level they will advance. Between Apache’s java, kaffe (not technically java), Red Hat’s java compatible jvm, and Sun’s own java for the different platforms I’d say the java wars will heat up before you know it. I could swear there was another jvm-like software called black chopper or something like that.
By the time that the JVM capable for 5.0 comes out Java 6 will be out. Some could see this as an advantage or a disadavantage but I think it is neither because the industry is devastatingly slow at upgrading to newer versions of software. I mean jdk 5 is so much faster than jdk 4 and has so many awesome features. But it is staggering to see how many companies have not upgraded…quite understandable though Walmart did it quite brilliantly. And now jdk 6 is about to come out with even huger performance increases. Honestly, I for one cant go back to jdk 5 after having tried the betas of jdk 6!
http://www.javalobby.org/java/forums/m92002004.html
A related discussion going on for those who are interested.
What really gets me excited is thinking that this may lead to a free implementation of Java on PS3/Cell. If you really will be able to install Linux on the PS3 then finally I could write some games that we could sit around the big screen and play. I hate fiddling with game-pieces but love board games in general, but hot-seat around a computer screen I find cramped. I believe this could be a really popular combo given Java’s penetration and ease of use.
PS- Would there technically be any problem with an Apache JVM using GPL ClassPath .class-es? After all, they aren’t linking to them, merely reading them, and in the case of JIT, compiling them but not distributing them. I really don’t see the problem, but IANAL.
When you say a “free implementation” what do you mean? JVMs from Sun are already free.
See http://www.fsf.org.
That’s exactly the sense I was referring to. I guess I should have clarified with by saying “OSI open source implementation” or something along those lines.
While I use Sun’s implementation on the desktop, I doubt they’d be willing for people to make a Cell port; and if they did I doubt they’d let it out for beer-free.
What does fsf have to do with anything? Java’s VM is free…yes or no?
Does Java have a JVM for Linux? yes or no?
Are Cell processors mainstream? yes or no?
Seems to me that for almost every environment that is very popular and very mainstream there is a jvm which is free to download and free to use for however long as you want. Yes there are some shortcomings since freebsd is not supported I think. But other than that I really dont see what fsf has to do with anything.
Java’s VM is free…yes or no?
Not according to FSF’s definition, which is what the parent was using. In other words, Java is not free as in freedom.
Does Java have a JVM for Linux? yes or no?
No. Linux ppc, for example, isn’t supported by Sun.
Are Cell processors mainstream? yes or no?
Not yet.
Why do you need FSF to be approving of every bit of software out there? Is anyone not compliant to the FSF a criminal or something? I mean you can download the java source code cant you? You just have to make sure that you cant use it to do anything else other than what Sun wants you to. I dont see a problem in that…other than certain platforms being ignored. Once again…why do we care about the FSF?
…other than certain platforms being ignored
I think you pretty much answered your own question:
so that we can support whichever platforms we choose to.
Grow up. You pretended you didn’t know what CaptainPinko meant when he said Java isn’t free, and when that was cleared up you invented that people are saying Sun is criminal for not making Java Free Software.
The thread started with What really gets me excited is thinking that this may lead to a free implementation of Java on PS3/Cell. and you’re trying to turn it into a discussion about Free software. Troll.
So nowadays a person cannot have an open discussion without being called a troll? Are we in kindergarden?
All I was saying is I see why people say Java needs to be open source: because they want it to support obscure platforms. But is that a correct statement? Not really because it is the JVM that just needs to be ported and not Java itself. There is a big difference. That is why I kept saying Java is free! The language source can be downloaded but you dont need to change the language. You just need to change the JVM. How did I become modded down or considered a troll I will never know!
Actually, even with Sun’s proprietary source, you need to adapt both the VM and the class library to a platform you port to, since in general, no two platforms are exactly the same, and you’ll need to tweak signal handling, threads, IO, network code, etc.
If you use Sun’s proprietary source, there is a little problem, though: you are not allowed to release your port unless it passes the compatibility test suite. But Sun does not allow you to run the test suites without paying Sun (hundreds of) thousands of dollars, so you can’t release your port, unless you have a pretty good financial backing. As you can guess, most obscure platforms don’t.
Does Java have a JVM for Linux? yes or no?
Yes, but to get good performance you need to JIT the byte-code and for obvious reasons this is platform dependent. So the bigger issue is there a JVM for Linux on PPC ?
Are Cell processors mainstream? yes or no?
Well, considering the expected number of PS3 units sold they could be the single most common processor sold in a few years (since they will be selling the exact chip for around 5 years, where as consumer chips are usually upgraded/replaced/EOL’d every 9-16 months), I would have to say that yes, the Cell is mainstream.
Seems to me that for almost every environment that is very popular and very mainstream there is a JVM which is free to download and free to use for however long as you want.
Well the thing is that the Cell is an unusual -by today’s standard’s at least- beast, and to get top efficiency you need to multi-thread your code. While a generic PPC JVM should work (as long as it doesn’t use Altivec IIRC), an optimised JVM has much more potential. Since Java/ByteCode is fairly high-level it should be possible for the JVM to take advantage of the cores and maybe auto-thread the execution.
My main concern I don’t see the incentive for any commercial entity to partake in this venture. However, I think the hobbyist community would jump on it in a second. But, the hobbyist community is loathe to donate their time to non-libre code. Therefore, I believe that for a top-notch JIT JVM we need an OSI-“open” JVM.
We’ve got gcj, cacao, jamvm, jikesrvm, IKVM and Kaffe on Linux-powerpc, at least. Probably some more
cheers,
dalibor topic
PS- Would there technically be any problem with an Apache JVM using GPL ClassPath .class-es? After all, they aren’t linking to them, merely reading them, and in the case of JIT, compiling them but not distributing them. I really don’t see the problem, but IANAL.
There would be no legal trouble with distributing classpath and harmony together. I’m about a month and a half behind on the dev mailing list reading, but to the best of my knowledge the classlib/vm interface used will be classpath compatible so it should be possible.
However, classpath will not be distributed as part of the project and so the combination will probably never be certifiable Java. They tried hard to come up with a way for Apache to distribute gpl’ed code, but the process was completely stalled when IBM and Intel came along and donated so much code and that was basically the end of it.
The process was stalled on a few things:
We waited for a few months for the ASF to come up with an official policy for licenses they consider to be OK for using in Apache projects. Depending on who one was listening in ASF rumourmill, it was not clear if they did or did not consider LGPL or GPL+linking exception to be good enough, as there was an ongoing intransparent internal discussion. So we were waiting for a few months to see how GPL+linking exception and LGPL will be judged. Eventually, we gave up waiting. That still has not happened, though there is a draft since a few weeks. It says they are not good enough, afaik.
We meanwhile contemplated dual licensing GNU Classpath, but the ASF does not like dual licenses. In particular, dual licenses with GPL-something on them would apparently be scary for some proprietary software companies’ lawyers. Yay.
We then contemplated licensing parts of GNU Classpath under the MIT license, which would have been compatible with both the GPL and the Apache license. But the ASF does not like the MIT license since it doesn’t talk about patents. Sigh.
We then contemplated licensing GNU Classpath under the Apache license, but that would not have worked for the GPLd VMs, since the Apache license is not compatible with the GPL, so we’d have screwed most of our VMs out of a class library, or forced them to relicense as well. Forcing many of our contributing VMs to undergo a cumbersome relicensing procedure to satisfy some licensing requirement of the ASF, which they had nothing to do with, did not seem like a great idea.
We contemplated convincing the ASF that GPL+linking exception is indeed a valid license, that is used by gcc’s code that’s statically linked into the Apache OS X web server binaries distributed from Apache.org, as anyone with objdump, nm and grep can see. Unfortunately, Roy Fielding, a big fish at the ASF, does not understand that GPL indeed allows additional permissions to be granted as special exceptions, but prohibits adding restrictions, so that went, quite predictably, nowhere.
Eventually, we figured out that trying to find a common way with the one true Apache Way didn’t move either Harmony nor other projects forward, so the Classpath folks went back to finishing the last missing bits of GNU Classpath (and we’ll have WW2D running for the next release, says Mark: http://gnu.wildebeest.org/diary/index.php?p=156), so that we can finish implementing Java 1.5 this year. Meanwhile, Harmony started getting some steam of its own, and getting some contributions from various places, which has been pretty nice to watch. I’ve been helping along with some small things, but eventually ended up focusing back on Kaffe, as that is far more rewarding.
While we didn’t (yet) end up sharing code, due to policy choices at the ASF (and not because of legal reasons, you are free to mix and match both GNU Classpath and Harmony), the work on Harmony had some pretty nice side effects: it helped make sure that the FSF fixes the incompatibility issue between the ASL2 and GPL in GPL3, and it also made sure that the FSF explicitely clarifies that adding permissions as special exceptions to GPL3 is really, honestly OK.
That may allow Harmony to use those libraries, if the Apache licensing gods can make sense of the GPL3. It’s very, very hard to tell in advance.
There is no legal problem. It’s a policy decision at the ASF. As a previous poster said, the ASF wants an ASL2 licensed implementation.
cheers,
dalibor topic
While I support Harmony’s development, Java is already supported just fine on almost every platform
Only if “supported just fine” does not require it to be installable and upgradable using the platform’s software installations and upgrade mechanisms (if they exists)
I can understand why Sun is concerned about changes to the software itself, but I can’t even remotely understand why they have those repackaging/redistribution restrictions
I couldn’t agree more.
One of the main advantages of an open source implementation that’s a COMPLETE j2se environment is that it can be installed & work ‘out-of-the-box’ with many OSes.
This would no doubt help the adoption of Java in general. Developers are more likely to use something that is easy for people to install & get their hands on.
I imagine this is one reason (I know there are also others) why Mono is doing so well on the linux desktop.
What about a better version of C++/C ???