James Gosling: We’ve got several thousand man-years of engineering in [Java], and we hear very strongly that if this thing turned into an open source project—where just any old person could check in stuff—they’d all freak. They’d all go screaming into the hills.
The next page goes on to mention NetBeans (Sun Public License) and Eclipse (Common Public License). No mention is made of Geronimo (Apache License) or JBoss (LGPL).
Meanwhile GCJ (GPL with the ‘libgcc exception’) and ClassPath (GPL with clarification and special exception) continue to make progress with OpenOffice.org (Dual LGPL and SISSL).
I guess “clear” is in the eye of the beholder, but just note that Sun, BEA and IBM are all doing the same engineering in parallel, and there are parts of the platform they could be collaborating on. Then each of the three you mentioned could take what they need from a “commons” like Apache Harmony, and build the rest to provide the value they want for their users, whatever that is. Note that I’m not advocating non-standard Java here, but rather added value in terms of performance profile, porting to hardware or operating systems, etc.
So I guess an important thing is that this isn’t necessarily aimed at you, the user. Your code shouldn’t know (or care) which VM you are running on, but you will based on performance differences, or availability on operating system or hardware platform.
geir
That quote is funny. The reaction to Sun’s JVM source was pretty negative.
Code duplication and copy and paste coding is routine. The HotSpot compiler includes an XML output class, written in C++. There is a regexp implementation in sun.misc, different from java.util.regexp. There’s at least a half dozen implementations of UTF8 encoding/decoding in the various C++ and Java layers. There is a huge amount of code, obviously copy/pasted then search and replaced, to handle different primitive types in different situations.
Why, it’s as if just any old person could check in stuff!
Geir, I’m puzzled. Are the IBM and BEA JVMs clean-room implementations? I thought they shared the Sun code base as a common ground.
Anyway, if I understand you correctly, the benefit you describe is one for the vendors who have a JVM anyway. Why is it in the interest of the open source community do have an open source JVM?
I’m clearly still missing something.
Stefan,
IBM & BEA have clean-room JVM implementations (there are actually quite a few open source JVMs around). However they do NOT have a clean-room implementation of the Java class libraries (their versions are based on Sun code)
WRT your second point having an open source Java implementation will allow open source (Linux) vendors to ship it with their operating systems. This raises the potential of deeper intergation of Java into the operating system. For instance, Sun’s “Project Looking Glass” is a wonderfully innovative system that no other Linux vendor ships because it required Sun’s JVM.
Many at Sun realize this is a bad thing - I believe it was Bill Joy who originally said “Innovation happens elsewhere”. Harmony will help enable that innovation to occur in open source projects.
what exactly is it that I will be able to do with Harmony that I can’t do today based on Sun’s or IBM’s or BEA’s JVM?
1. Fork it.
2. Port it to your favorite architecture (remember, there are a lot of embedded processors that are or will soon be beefy enough to run Java).
3. Ship it with Debian or any other Free Software operating system.
4. Use it to create programs that create data that you expect to outlive Sun.
Honestly, it’s 2005. Why do we still have to explain the fundamental principles of freedom 0?
As a user, I couldn’t care less about your points 1-3. As to your 4th point, you’re probably the last one I’d have to point out to that it’s an infinitely better idea to have the data in a format independent of any programming language. I doubt I’ll have an interest in any Java program after Sun, IBM and BEA have abandoned it.
As to the last paragraph, it’s not as if I don’t have alternatives in Python or Ruby or Perl or C or C++. I don’t object to Free and Open Source software. (And I understand what it is well enough, thank you very much.)
I still fail to see the ‘clear need’ for an Open Source Java, though.
Having thought about it for an hour, I think I’ll retract that comment’s content. I’ll have to think a little more to make up my mind.
I’ll also have to decide whether my own change of mind happened because of or in spite of your patronizing tone ;-)
As a user, I couldn’t care less about your points 1-3.
And you will continue not to care, right up until the point that you are forced to care, and then you will care very, very much.
I doubt I’ll have an interest in any Java program after Sun, IBM and BEA have abandoned it.
I thought the same thing about Movable Type.
I’ll also have to decide whether my own change of mind happened because of or in spite of your patronizing tone.
You call it patronizing, I call it taking the Long View. Although realistically, there is no Short View when it comes to software. I can think of a dozen instances, without even trying hard, where software (and the data it created) long outlasted anyone’s reasonable expectation of its lifespan. When software is new, people always say things like “well, I can’t imagine that this will outlive [Sun|IBM|BEA|Java|Intel|Microsoft|the current state of the world].” To quote Daniel Dennett, “Try harder.”
Stefan, if it helps, I equate “clear need for x
” with “existence of a number of people who are ready, willing, and able to create x
”. Such people may be motivated by various factors (Mark’s citing freedom zero is but one possible factor). If you wish to participate, that’s cool. If you don’t, that’s cool too.
But as long as this project maintains a commitment to be compatible, you have to question why anybody would freak or go screaming into the hills.
@Sam: Needless to say, I agree with your points and never suggested that Gosling’s statement (if he actually made it, which I find hard to believe) was anything but stupid.
@Mark: I wrote the first post immediately after reading yours, and the way you wrote - in a tone that I would call patronizing (like "look, another of those idiots who didn’t read my famous post") - made me disagree with you on principle. In fact I read it back then, and disagreed with your conclusion; I don’t see how 6A’s change in licensing made you lose anything in the deal (you were able to switch to WP without a problem, right? So what?. I guess you’re still running OS X, which is probably the best OS you run right now. Obviously you can switch at any time.) Anyway, that’s history.
My points, after some consideration, are:
1. I see a need for an open source Java implementation simply because it enables the creation of Free software (in the pure FSF sense) in Java, which is in the best interest of the Java community. I personally don’t feel any pain, but Sam’s point applys - if I don’t care, so what.
2. I’m rather pissed off at what I perceive to be a change in mind from one extreme to the other - while Open Source and Free software was considered Evil by many decision makers a short while ago, the pendulum has swung the other way by now, and many consider OS software to be great, simply because it is open source. That’s just dumb.
In fact I read it back then, and disagreed with your conclusion; I don’t see how 6A’s change in licensing made you lose anything in the deal
You’re right, I didn’t lose anything. What I was upset about was not having the freedom to run the software for any purpose, but I never had that freedom to begin with. You can’t lose what you never had. It didn’t matter to me for a period of time, because Movable Type was “free enough,” right up until the moment it wasn’t.
Which brings us back to Java... Right now you’re existing in that same period, that magical period of time at the beginning of a software’s lifespan when it seems the whole world is open to you. Java is currently free enough for you, and you “don’t feel any pain.” I say: great! Be happy! Be productive! Write code like mad! I’m sure you won’t have any trouble porting all your code to another language when Sun decides to stop supporting the particular combination of hardware and software that you currently take for granted.
“Honestly, it’s 2005. Why do we still have to explain the fundamental principles of freedom 0?”
What is your primary operating system, Mark?