IBM Offers to Help Sun Open Up Java 475
dave writes "ESR has opened the issue of
pressuring Sun to open source Java, and today IBM throws in their own
commitment toward this end. IBM has published an open letter to
Sun, proposing that the two companies collaborate on an independent project
to open source Java, saying that IBM is ready to provide technical resources
and code for the open source Java implementation while Sun provides the open
source community with Sun materials, including Java specifications, tests and
code."
Linux + Java = Profit!! (Score:4, Informative)
With the Linux community behind it, open-sourcing Java is going to mean a big leap for software development. Although they are worried about open source meaning zero revenue, this isn't necessarily the case. [informationweek.com]
Why doesn't IBM open source it's own VM? (Score:5, Informative)
Listen to Ganesh Prashad (Score:5, Informative)
Ganesh very clearly demonstrates how Sun will lose J2EE's 'lingua franca of business logic' status to
Open source Java already exists. (Score:5, Informative)
GNU Compiler for Java [gnu.org] is available from the FSF. There is also work to make a Mozilla plugin for using GCJ to allow Java Applets to run.
Kaffe [kaffe.org] PersonalJava 1.1 compliant Java.
Kaffe once shipped with RedHat. GCJ currently ships with most major linux distributions right now.
Re:A Question (Score:1, Informative)
He was pretty critical of Microsoft
Whether it is an internal thing or a reaction(probably both), I got the impression that IBM is moving towards being a service-provider, rather than a product-creator.
Both open source and free software (as in beer AND/OR as in speech, doesn't matter), in that context, make plenty of sense.
Re:A Question (Score:5, Informative)
opened the architecture, thay had ISA ripped from them, I think Compaq cleaned room the BIOS which led to the clones. MCA, remember that. Token ring. SNA.
IBM in the 80s was at it's most arrogant. They had beaten everybody including the DOJ. The salesmen were insufferable. Then M$ changed the landscape by beating IBM at their own game.
Only in the last five years has IBM embraced Open Standards. Even now one of their hardware lines is still very closed, AS/400.
Re:A Question (Score:4, Informative)
Re:How nice of IBM.. (Score:4, Informative)
The problem is the libraries. The VM is easy -- any monkey can write a VM. Have fun writing a completely compatible implementation of Swing. And that's just one of the many APIs that would need to be duplicated.
Yes, IBM has their own VM. But they use Sun's class libraries just like everybody else does. Sun is the only game in town as far as the class library is concerned. What people are asking for is for the class libraries to be opened up.
(Yes, there have been attempts to clone the Sun class library in open-source. However, they are all targeting support for really old versions of Java -- which is a lot like cloning Windows 3.11 today.)
Blackdown (Score:1, Informative)
So is the argument that Sun should open up their JVM and libraries? Because from what I've heard and seen other JVMs like Blackdown perform quite well.
Re:What about gjc? (Score:5, Informative)
I'd recommend looking at this page [ibm.com] for more info on IBM + Java + OSS.
IBM has already written at least one high-quality JVM implementation which is not OSS because of contracts that IBM has with Sun. Of course, suggesting that IBM work on GCJ and Classpath has some merit in and of itself. But realize that IBM has sunk untold man-hours and dolars into developing its own JVM - resources that they now wish to contribute to the community at-large as OSS. I personally can't blame them if they didn't wish to spend a similar amount of resources on GCJ and Classpath when what they've got works.
Perhaps with this Open Letter IBM is looking for permission to open up the code. Perhaps they are looking to collaborate with Sun to create an even better project. Perhaps this is all just marketing/PR bs. Time will tell.
Dom
Re:The Death Of Java (Score:4, Informative)
ANSI C is portable and multiplatform. Unfortunately there were no ANSI graphic libraries that addressed the issue of a legit GUI. As a result, MFC / Mac Toolbox came about and made things much different. However, Java shouldn't have that problem because it does contains graphic libraries that are already written. There would be no need to create another version of Java that did the same thing, and even if someone did, it probably wouldn't have much of a following.
Full text of the IBM letter (Score:3, Informative)
Re:Blackdown (Score:2, Informative)
Re:Why doesn't IBM open source it's own VM? (Score:3, Informative)
Re:What about gjc? (Score:5, Informative)
Open-Source Java petition (Score:3, Informative)
Re:How nice of IBM.. (Score:2, Informative)
I'd buy native linux software if it was for sale...
Re:*Cough* and Mozilla (Score:1, Informative)
Yeah but if you look at this week's commit list, I see at ton of IBM as well as some sun, but then if you look at the specifics most of Suns commits are sun specific issues. Sun keyboard, sun compiler, gcc on solaris (there is also one generic java fix) but in general Sun is only working on code specific to the Solaris port and thats only because no one else will, if they want solaris to ship with a browser they either need to maintain the mozilla port or license opera. They are simply covering their own asses here.
http://bonsai.mozilla.org/showcheckins.cgi?&tre
Re:How nice of IBM.. (Score:5, Informative)
I HAVE written a VM from scratch, and worked on Sun and IBM's Virtual Machines. I can tell you from experience that writing a VM is definately not a trivial task. In fact, it is probably harder than the libraries. The libraries are by definition Java code. The major problem is the sheer size of them.
A modern VM on the other-hand, covers a wide range of techniques. Writing an efficient thin-locking implementation is far from trivial - the code is extremely complex, and even a slight mistake can lead to race conditions, leading to unexpected behaviour which is very difficult to track down.
Likewise, a modern garbage collector is an advanced field in itself (e.g. parallel collectors, generational collectors, etc.). Again, a simple mistake can take weeks to find.
Have you also forgotten about the JIT? Or more accurately a DAC (dynamic adaptive compiler). Whereas a standard compiler can spend as long as it likes optimising the code and be slow as hell, a modern VM must profile the code on the fly, and transfer control between compiled and interpreted modes efficiently. Again, not trivial.
Even following the spec is non-trivial. There's enough grey areas to cause a VM implementor to pull their hair out.
Sun and IBM have large teams working on these VM's, many from research backgrounds and with PhDs (including me). Thanks for calling us all monkeys.
Re:How nice of IBM.. (Score:3, Informative)
Dual Licence (Score:4, Informative)
The real question is "open source it how?" (Score:3, Informative)
Re:Not quite (Score:1, Informative)
Wrong. As many people have pointed out here and elsewhere, a copyright holder cannot ever be forced to GPL their copyrighted code. They *always* have the option of rejecting the GPL, and instead accepting the consequences of infringing the copyrights of the author of the GPL code that they have misappropriated.
These consequences would probably include monetary damages and an injunction against further distribution of the code. It is up to the infringer to decide whether this is more or less expensive than releasing their code under the GPL, but at least the choice is theirs.
Re:How nice of IBM.. (Score:5, Informative)
This is what the FUDsters would have us believe, but it's not true. As Eben Moglen, General Counsel for the FSF, has repeatedly pointed out [wikipedia.org], the GPL is a license, not a contract.
One of the consequence os this is that you can't force someone to open up their own code if they link against GPL'ed code in violation of the license. At most, you can force them to stop using the GPL'ed code.
See this lengthy rebuttal [groklaw.net] by Pamela Jones of Groklaw fame, or this [lwn.net] more accessible, shorter version.
Ulrik
Re:A Question (Score:2, Informative)
IBM had a near-death experience.
They were down to the point where the stock price was close to liquidation value of existing stock, real estate, and their patents, and John Akers got fired (from a cannon) - and Gerstner came in, rocked-and-rolled over the entrenched folks, and made the company start reinventing itself. Sold off Federal Systems (IIRC, the only profit-making organization at the time) for quick cash, fired a lot of deadwood, and transformed the company into something that didn't just do software and systems to sell Big Iron - they built systems, and could sell all the pieces from in-house resources, or from your vendor of choice.
Amazing what a near-death experience can do for a company....
Re:Open Source dangers... (Score:3, Informative)
The real issue here is licencing. ESR and some of our more zealous bretheren beleive that if it's not GPL, it's not free or open. I don't subscribe to that but what do I know, I just use Java.
Try cruising the Java.net site, or Jakarta or the Java Forge at SourceForge and see how many Open Source projects their are written in Java just as it is right now.
So what is the big deal? Want to change Java? Join the JCP. Or the JavaLobby.
Funny, Linux is written in C, yet how many individuals can join a C version of the JCP and influence the course of the C language? Exactly none. We all get to wait for the ANSI committees to take YEARS to standardize C and C++ and to add features. Why do you think there are so many non-standard extensions to C and C++ out there?
Java upgrades the standards and the language pretty regularly every 18 months, with input from whomever would like to join the JCP..
But I guess if it's not the beloved GPL, it doesn't count...
Re:How nice of IBM.. (Score:5, Informative)
I think few people do.
ANSI-Java?
Yes, effectively. The only way any open source implementation of Java are above question would be if Sun actually drops their formal conformance requirements.
Note that you can do with ANSI C whatever you like: you can implement or not implement whatever parts you like. Not so with Java under the current licenses.
I don't get it, anyone can make their own JVM and release it as a Java JVM long as it conforms to the JLS right!?
Any implementation that has enforceable "conformance" requirements placed on it cannot be an open source implementation. Enforceable conformance requirements are intrinsically incompatible with what people mean by "open source".
IBM has already done this right?
No. IBM's implementation is derived from Sun's implemetation. But even if it had been written from scratch, IBM could not actually release it under an open source license without technically violating their license from Sun (whether Sun would tolerate that is another question--they have tolerated many violations of their licenses already, but they have also enforced some).
Re:Why doesn't IBM open source it's own VM? (Score:3, Informative)
What IBM is actually saying in this letter is pretty much this: IBM wants to open source their Java implementation, but they need the an OK from Sun to do it.
Re:How nice of IBM.. (Score:3, Informative)
RTFA: "IBM is ready to provide technical resources and code for the open source Java implementation while Sun provides the open source community with Sun materials, including Java specifications, tests and code."
So IBM would be providing the code for the Java implementation.
Re:How nice of IBM.. (Score:4, Informative)
1) Java may be slower than C for some tasks, but it doesn't suck that much anymore. Your mileage may vary but server apps usually perform very well.
2) Java is hardly interpreted. All modern JVM use JIT compilers to compile to native code at execution time when the JVM sees it fit.
Re:How nice of IBM.. (Score:1, Informative)
1.) Porting the hotspot VM was reletively straight-forward. Writing a VM from scratch would certainly have taken more time, but wouldn't be impossible. The design docs -are- freely available online, and in print.
2.) The class libraries are -not- trivial to port. The low-level I/O functions certainly are, the networking was definately not difficult. However, when you get into porting the AWT, nio, and a few of the newer packages onto a new platform: Things become not just hugely complex, but also become extremely difficult to do.
3.) Yes, the Sun code could be cleaner, and yes it would be nice if they adheared to their own code conventions and guidelines all the time.
I've begun to really appreciate some of the sun engineers. Many have a knack for knowing what needs to be commented, and how to go about doing it. Others seem to think comments are for pussies. That or their going for the whole 'job security' argument.
Regardless, J2SE for BeOS continues to make progress the less I, and the rest of the team sleep.
Re:Delicious??? (Score:3, Informative)
It's pretty clean, actually. The Model/View split is quite good for 'seeing through' to data sets without needing to bugger around with maintaining a second copy of every list. And although SWT and JFace does get somewhere in the vicinity of reasonable, Swing is still easier to use, personally it's the resource deallocation in SWT which really chafes my willy.
The only problem is people make GUIs in Swing with far too much bloat, and it tends to get slow when they do this. Of course it happens with SWT/JFace too, but only one well-known application was ever made in SWT.
Re:Just wondering... (Score:2, Informative)