On the Horizon: an Apache-License Version of Java
mparaz writes "Geir Magnusson of the Apache Software Foundation announced a J2SE 5 implementation project called 'Harmony.' It covers the virtual machine and the class libraries, and aims to pass the Sun specification.
A FAQ is available."
Could this be an essential aid to Tomcat and the increasing number of projects the apache foundation are managing within the Java space, such as ANT. This can only be a good thing
Business Voyeur
Cool! This will be useful for the majority of Linux desktops, because it means it could be installed as part of a default install, rather than having to download it and install it afterwards (==hell for lots of users).
For those too lazy to click through to that blog entry, Kaffe, Classpath and other solutions already exist, and this is not the first.... although coming from Apache carries some weight.
Simpy
http://people.apache.org/~geirm/harmony.jpg
I remember a project called Harmony that had the purpose of being an API-compatible clone of QT but without the license issues: www.kde.org/whatiskde/qt.php. It never got off the ground though.
see a Text Widget
Apache Software License, version 2.0
This is a free software license but it is incompatible with the GPL. The Apache Software License is incompatible with the GPL because it has a specific requirement that is not in the GPL: it has certain patent termination cases that the GPL does not require. (We don't think those patent termination cases are inherently a bad idea, but nonetheless they are incompatible with the GNU GPL.)
Combination - fun iPhone puzzling
In the mean time, the Apache group's choice of license for their Java project makes perfect sense given a major, if not the major, use for Java these days is for back-end work of web-fronted applications. Apache's Tomcat sometimes seems to be more popular than Apache itself. (I said seems people, seems); I can't think of any other reason why the Apache people would be organizing this, though it surprises me they're going for J2SE and not J2EE compatability.
So, no. There's no "Java trap" inherent in developing code for Apache Harmony.
You are not alone. This is not normal. None of this is normal.
The great beauty of the linux desktop is that it, like all *x desktop windowing systems, is not standardised - and therefore, you don't have to use a bloated implementation. Personally, I use openbox, which as about as far from bloated as you can get (assuming you something a little more sophisticated than twm..).
Also, the point of the sun specification for Java is (in part) to ensure that the JVM performs consistently across platforms.
$ strings FTP.EXE | grep Copyright
@(#) Copyright (c) 1983 The Regents of the University of California.
And after it passes the Sun spec, we can fix it to be useful (since we have the source) with a simple header change:
..that should eliminate half of the code, decreasing binary size and actually performing. ;)
#define sleep(a) while(0)
Do daemons dream of electric sleep()?
C *is* cross-platform.
The system libraries, on the other hand.. well, that has nothing to do with the language. If you want cross-platform code, use cross-platform libraries.
If you can stick to using only functions in K&R and the POSIX Programmer's Reference Guide, you will find that your code (if written properly) will run damn near anywhere.
If you want a little more functionality (as much as you need, really) without GUI, adding the Apache Runtime Library will get you there -- portably. Especially under unices and workalikes.
C++ -- I'm not qualified to comment on that.
Do daemons dream of electric sleep()?
I can't think of any other reason why the Apache people would be organizing this, though it surprises me they're going for J2SE and not J2EE compatability.
But they are. J2EE is a superset of J2SE, and by adding Apache Geronimo you'd get the complete stack. Admittedly Geronimo is aiming for J2EE 1.4 rather than J2EE 5.0 at the moment, but J2EE 5.0 doesn't really exist yet. ;o)
The great beauty of the linux desktop is that it, like all *x desktop windowing systems, is not standardised
Alas this is also one of its main weakness. I had once high hopes for Linux on the desktop (three of four years ago), but the way I see it now is that its more fragmented than ever. I think it will manage to reach something around 5% share of the market in four or five years, but the bulk of the users will probably just stay with Windowz.
"C++ -- I'm not qualified to comment on that."
C++ also have an ANSI standard. So, if you code following ANSI C++ and POSIX, your program should run on every unix (and NT). But C++ compilers are known to not following standars, so it is not that good.
Rethinking email
It seems like maintaining binary compatibility between serialized classes (esp. for collections and java.lang classes) is essential, at least if you want to do J2EE stuff in the long run. It will be at least a nuisance to, say, reimplement java.util.HashMap in a binary-compatible way without illegally appropriating Sun's IP (something the project seems pretty conscious of in their charter/FAQ).
It's not impossible, but I think the IP challenge there is the real issue (not to mention the fact that your implementation is going to be constrained to being nearly identical to Sun's, at least in terms of overall strategy, if not line-by-line). If you read Sun's code in one window, and then write the same member variables in the same order in another window, is that copying code or not? And even if you do write something completely different (say, going with the HashMap example), you have to come up with some kind of transformation from your choice of state variables to sun's serialized state variables, which could look pretty nasty.
I also pity the poor bastard that has to write those AWT libraries...
I'm sorry, but I'm just really not seeing this supposed "fragmentation" as a barrier to Linux on the desktop.
Quit the Java dependency. Head towards open standards.
How long will it take for the open source community to understand that C# is not only "a Java replacement", but a better technology? How long till people start reading the docs behind C#'s design?
Let's get this clear: Mono is free software, Java is not!
My intent is not to troll, but simply point out that, in the long run IMHO we should stick to Mono. Sun had its chance. It's done too little, too late.
Why all this investment of time on something that doesn't even have a standard by a credible overseer, like ISO, ANSI or ECMA?
This is perpetuating the Java/Sun dependency. Kick the habit!
Main difference between the BSD license and the GPL license: one is from California and the other is from Massachusetts
Pentiums didn't become really high-performance and free of notorious bugs until AMD made Pentium instructions run on a competing processor. Maybe Java needs more competition among virtual processors to see more innovations reach consumers.
--
make install -not war
Wow, I hope this goes well. I've for years felt that Java got a lot of things right (and a few things wrong). But I'll take a C program every time over a Java implementation.
Why? Because I believe in free software, and I try to use free software. While I might have a practical bone in me that would install Sun's no-cost JVM, it doesn't come packaged with my Linux distro.
If you want to develop for Java, there's this huge impediment to distributing your software. You've got to get the end user to thunk down an enormous environment first to support it.
And it doesn't always go well. That's why so many vendors ship with their own JVM. When I installed Oracle last summer, they had done exactly that. Only their bundled JVM didn't work. I ultimately discovered that I could get the software to function by excising that JVM and putting Sun's current offereing in its place. But I would describe the experience as a nightmare, and a less-experienced person would have found it hopeless.
A common platform, with a free license, that can be packaged by my favorite Linux distro is exactly what Java needs.
Go team.
Read the FAQ. In short, the contributors will decide what to do.
Since most of the people on this project are involved with some other java project, they can at the very lease re-license their own source code, and that might be enough to get most of the other code into the Apache license. One would presume that they also have contacts with most of the other developers, and might be able to talk them into license. That covers the legal issues.
There is one other issue. These people have experience with one implementation. One presumes that along the way they have learned from their mistakes. They might decide to throw it all away (see mozilla) because now they know how to do it right.
The reason I suggest this is that it would appear that the main purpose of the Harmony project is to create a vibrant, inclusive community. In that case, the open source world, Harmony, and Parrot, plus users of java, perl, python, ruby and tcl (for starters) can all benefit by combining two disparate groups of all-star programmers working in potentially complementary areas.
If any parts of the Harmony project can use parts being developed for Parrot, much time would be saved and the quality of both projects could increase. In addition, it would likely be easier for the Harmony project to meet its stated goals of collaboration and sharing of runtime components, etc. to do so with parrot. The Parrot FAQ also talks a bit about VM development, including working with a JVM, it sure sounds like there is some overlap with Harmony.
Perhaps the Parrot people don't need any help (I doubt they would say so though) and maybe the Harmony VM people can't stand the idea of not building from ground zero, or using only the Apache license and nothing else. If any of these three maybes are true then it is a sad story.
Also, I may be out of line but it sounds like parrot will enable sharing of code from different languages at runtime. If so that will just magnify what Harmony is trying to do in terms of bringing people together.
So humbly I would like to say that the ideas of creating a specification and reference implementation, and promoting collaboration and sharing of modular code sounds wonderful, and focusing on these and not wasting time reinventing the wheel could be a great move for Harmony, and contribute to refocusing the brainpower of the free software world, in the spirit of the Harmony and Parrot projects.
My guess is that Harmony has some really smart people and they are also well aware of the Parrot effort. Maybe some are already involved for all I know. Any comments one way or the other?
... and open-source Solaris is "vaporware" even though there is no/nada/nil code available for the Apache J2SE 5.0 implementation. Some people need to have their heads screwed on right.
-- kryps
I'm rooting for them, but that is a huge project.
There is no shortage of half finished FOSS implementations of Java.
I'll believe it when I see it, and I will be grateful to Apache for making it happen.
Whenever open source and Java come up in a thread someone will always make the point that keeping Java under Sun's control prevents it from being bastardized.
The example of C starting out as a multiplatform language always comes up.
This reasoning may be correct, or it may not be.
I know python implementations are not exactly the same across platforms. There are some things I can do on linux with python that I can't do on windows.
Are there any examples of multiplatform, open source languages out there, running, that do not require the program to learn about platform specific issues?
...that project Harmony was the reason TrollTech chose to GPL (as versus seeing their strategic role usurped by an LGPL workalike). At which point Harmony dried up as redundant. So while it didn't per se do much, its historic impact isn't negligible.
Is why they cant/wont take code from one or more existing JVMs and libraries and use it as a base.
We have GNU classpath
GNU GCJ
And others
Why havent we seen anyone take the good bits from all the different Open Source java projects and work on ONE free JVM that will sucessfully pass the Sun J2SE compatibility test (and therefore be a 100% implementation of JAVA)
Personally, the fact that no Open Source program comes even close to being able to pass the J2SE compatibility test is why I dont write anything in JAVA.
Most of my code is written in C and C++ with some stuff in Assembler of various kinds.
IMHO I feel the effort can be better spent on helping Mustang (1.6) and Dolphin (1.7) to be better than if Sun did it alone. Just fixing the outstanding bugs that's been on the bug parade is a great service to the Java community. I admire the spirit of wanting to reimplement Java, but this almost feels like a 'Netscape' to me.
www.rexguo.com - Technologist + Designer
I love Python. I left Java by the wayside when I found Python. I love the sparse look and feel, I love the strength of the language, I love the fact that I don't have to deal with 1000 different indentation styles when I read other people's code, I hugely appreciate all the python modules people have written that implement everything from databases to graphing packages.
And Python is all over the place, installed and ready to run. My old RH9 system has Python; my Mac has Python; my Windows box has Python.
Python. C when you have to have the performance, certainly. Python otherwise. :-)
I've fallen off your lawn, and I can't get up.
I shouldn't have posted above while I had mod points, since this troll crap is modded "Insightful" by the Windows trolls moderators and other idiots.
Look, stupid, this is not just a "licensing fetish" (although as has been discussed, there is a perfectly good reason for Apache to not use the GPL or like Sun's license.)
The point of this project is to provide a compatible free Java that Apache can use to underpin its numerous Java-based projects.
It's an excellent idea - unless Sun ever comes out with a truly OSS license. And if they do, it will probably be because such a project is gaining traction.
Richard Steven Hack - This sig is TOO GODDAMN SHORT TO DO ANYTHING USEFUL WITH! MORONS!
If Sun ever does do a completely OSS license, projects such as this are likely to be the cause.
That alone justifies the project.
Richard Steven Hack - This sig is TOO GODDAMN SHORT TO DO ANYTHING USEFUL WITH! MORONS!
Windows isn't where the main focus of Java use is. True, deployment of GUI apps is getting nicer with webstart and what have you, but the real focus is on the server side. And that means Linux and Solaris.
The Sun Solaris JVM, for example, is an utter pig to tune. It requires some of the most obscure settings imaginable, and by the time you're finished learning some virtual machine backwards you may as well have written it for the metal anyway (disclaimer: I develop in Java, the apps I write tend to need passable processing done with latencies of under a millisecond. The machines we use are big).
With Apache themselves being primarily on the server side, I would have thought they'd be concentrating on the various Unix derivatives first - with particular focus on Linux and Solaris.
Another interesting point - IBM have tended to use the Apache foundation to get open source code to the world through. I wonder if they're thinking of donating as much as they can (by license) of their own JVM?
Cheers,
Ian
.. does anyone else get a déja vù from the KDE-sponsored attempt to clone Qt back in the non-QPL 1.x days?
Michel
Fedora Project Contribut