Will Sun's Java Go Open Source? 519
Ritalin16 writes "CNet report that Sun Microsystems wants to send Java closer to the open-source world, yet keep it safe from harm. "Project Peabody" adds two licenses that make it easier for outsiders to see the code. But Sun stops short of embracing open-source. Sun's licensing practices for Java are closely watched. Proponents of making Java open-source argue that a different license and development process will help accelerate usage of Java, which faces ongoing competition from Web open-source scripting tools, such as PHP, and Microsoft's .Net line of tools."
i use JAVA a fair bit (Score:0, Interesting)
off-topic-a-roony (Score:5, Interesting)
No, they want to keep their integrity. (Score:5, Interesting)
What's so significant? (Score:3, Interesting)
Nobody Cares, quit bringing this up again (Score:1, Interesting)
Re:No, they want to keep their integrity. (Score:2, Interesting)
If Sun wants to control Java's development after it opens it, then it is not true open-source.
Java and "Unsupported" Platforms (Score:5, Interesting)
It would be great if the Java JDK were open-source, or at least distributed with a less restrictive license. Installing Java on "unsupported" platforms is a nightmare. Take FreeBSD, for example. First, I have to install the Linux version of Java, because for some reason, the native Java port requires the Linux version for bootstrapping purposes. Next, I have to manually fetch the sources for Java from Sun (since Sun prohibits redistribution other than from Sun's site, and the latest precompiled package for Java is for FreeBSD 4.x, which doesn't work under FreeBSD 5.3; not to mention that I can't really do anything with the sources other than compile them; the license is very restrictive). Finally, I have to compile them, which took me 18 hours to compile on my computer (I'm not trolling; the fastest computer I own is a 475MHz K6-2 with 64MB RAM; I'm poor). For Sun to advertise that programming in Java is about "writing once and running everywhere," I guess "everywhere" is defined by Sun's view on the world. The only reason why I compiled the JDK in the first place is because I need it for my upcoming classes.
It would be great for all developers if Java were open sourced under an agreeable, OSI-compliant license. Developers of "unsupported" platforms would be able to port the JDK to their favorite operating systems (and redistribute sources and binaries of the JDK, too), which would raise the number of developers using Java, which in turn raises the number of people using Java-based applications. Next, I don't think Sun has to worry much about Java being forked. Look at C, C++, Python, Perl, and Ruby. C and C++ are ANSI-certified, and Perl, Python, and Ruby are open source. As far as I know, there aren't any forks of C, Perl, and the other languages that I've listed.
In the meanwhile, I wonder how good are the free, open source interpretations of Java and how they stack up to the Sun JDK?
Patches, surely (Score:3, Interesting)
Re:No, they want to keep their integrity. (Score:5, Interesting)
Why? Because Java is the only real threat. Java's real importance is in 'enterprise' development; many large companies have been developing in Java for the last 3-5 years, the importance of Java in such environments dwarfs any other development platform, except maybe for cobol. Thus Java remains the most likely target for sabotage actions, and needs to be protected vehemently.
Especially now that Java is in direct competition with
Re:No, they want to keep their integrity. (Score:1, Interesting)
However, with open-source, JVMs and JREs, from Sun and elsewhere, would compete simply on merit. The end result: everyone wins.
Re:Doesn't matter much (Score:1, Interesting)
http://www.autopackage.org/faq.html#2_1 [autopackage.org]
Basically, centralized repositories (apt-style) do not give each publisher/software house the ability to control *their own distribution*. That, in my estimation, is the #1 reason why more companies don't distribute software packages. Sure, there's an issue of non-standard toolkits, etc, but the first obstacle to standardizing anything is the install. Autopackage provides the possibility of a single way to install AND uninstall applications on every Linux distribution. That's why it's important.
Sun should support this on Solaris, and distribute all of the software from the projects they underwrite (OpenOffice.org) so to help get things going.
Take some time to read through the entire site. I think it's the most important thing necessary for Linux right now. If I, with over ten years of experience using Linux, absolutely loathe installing applications and find it completely unnecessarily difficult, imagine how new and inexperienced users feel!
That is all off-topic, but Sun is still in some kind of trouble. There are so many things they could do with Java, but they aren't, so this is why the calls to open source are intensifying. They should let it go and see what happens, then pull in all the popular innovations back into the "standard" java platform. They have the ability, but I think they're missing the leadership to do it.
The final thing is that their overall concept of end-user experience basically sucks hard. One example is Java Web Start. While it's a really great idea, it's so awful from the experience of a user, that I refuse to use it. Another prime example is the default look of Java (not to mention the Java desktop). It looks nothing short of pixel vomit. Sure, some people create amazing applications with it, but unfortunately, most applications aren't going to stray much from the default. The result is a perception that Java apps look like trash. If JGoodies, for example, is necessary to get a decent look out of a java app, then why doesn't Sun support that? It's free (as in BSD free), so WTF? Instead they ship this bluish look with the same ugly icons. I almost fell out of my seat when I saw the new look and feel for Java 1.5. Perhaps slightly better than the defualt, but still FUGLY.
Re:Wrong rival (Score:1, Interesting)
Re:Byte Code Is "Open" (Score:2, Interesting)
gcj is nice (Score:5, Interesting)
By the way, I don't think blackdown is actually open source in that it's based on the Sun code.
I'm curious - does the new Fedora actually ship with gcj and gij as 'Java'? That will be an interesting development to watch.
Re:No, they want to keep their integrity. (Score:5, Interesting)
Ms no longer cares about java now that they have their own version of it.
i dunno (Score:2, Interesting)
*PS: The word "enterprise" in any software context is bogus.
Re:off-topic-a-roony (Score:1, Interesting)
Performance is poor (even worse than MS C#, so bad in fact that it is slower than Mono). Sun, IBM and BEA's JIT'ers thrash it into the ground.
See:
shudo.net/jit/perf/
BTW, it is not the compiler that folks want open sourced, but the sources to the class library.
Re:off-topic-a-roony (Score:5, Interesting)
Well, there are already at least a couple - Kaffe and GCJ, why not just contribute? Sun already did the hard part - theoretical research, design, marketing - for free. Actual coding of well-researched projects is not that difficult. You can even study Sun's source code to learn general concepts for your own project as opposed to just "lifting" it.
See, there is no shortage of C/C++ compilers and nobody is grumbling about AT&T not releasing their stuff under GPL.
SUSE and gentoo already do, I would guess someone (Debian?) made their own decision not to ship Java rather than being disallowed by Sun.
Like you could begin writing Java-based GUI applications and then distibute them yourself without requiring your audiance to agree to restrictive licenses and download and install Java on their own.
Enjoy a license-free download! [suse.com] And the winner is:
Probably a bit to late for all that, unfortunately. Sun had it's chance and now Linux has managed code in the form of Mono (open source
Do you mean Microsoft released their own
Re:and how's that working out? (Score:5, Interesting)
Actually, there are at least six forks of Python:
In practice, it's not much of a problem, I don't see why people are so scared of forking.
Re:and how's that working out? (Score:5, Interesting)
Psyco is just an extension module for CPython, not a fork. And you can add Pyrex to that list - a fork of CPython which adds C data types.
Re:No, they want to keep their integrity. (Score:4, Interesting)
These versions of course would add some candy to attract developers (such as operator overloading) while destroying the 100% compatability that java offers, creating confusion and thus discrediting java for enterprise development.
By the way, someone wrote that
Re:off-topic-a-roony (Score:2, Interesting)
From the community's perspective, the Sun JVM tends to move a bit faster than the others, bringing in new features. Having a big industry name behind it makes it corporately more trusted. And linux may get the chance to integrate the JVM a bit more - so that for instance 'ps' might tell you a bit more about the java process than just that it's 'java'. Which java program is it? Tomcat? Eclipse? If linux can support running Java bytecode more smoothly and naturally than other platforms, that's yet another big insentive for Java-focussed corporations to migrate to it.
From Sun's perspective, there is a competition between Java and Mono to become "the way" of doing managed code on Linux. Java has the advantage of a lot of programmers who know it, but the disadvantage that many people seem to think Java GUIs have to be in Swing, and Java apps not meshing completely with the native environment. (And Mono has a linux company's weight behind it). If Mono were to win that fight, and
Re:Mono viability (Score:5, Interesting)
Re:off-topic-a-roony (Score:2, Interesting)
Then SUSE and gentoo cannot distribute other versions of the JRE:
Sun grants you a non-exclusive, non-transferable, limited license without fees to reproduce and distribute those files specifically identified as redistributable in the Software "README" file ("Redistributables") provided that:
And thats the whole purpose of things like gjc -- to supersede every component!
Re:off-topic-a-roony (Score:2, Interesting)
Re:off-topic-a-roony (Score:3, Interesting)
I don't think Mono is better than Kaffe/GCJ/... The GNU/Classpath based Java VMs are already covering most of the Java API. The biggest/most visible obstacle is probably the Swing implementation, but OTOH Mono also doesn't have a complete Windows.Forms implementation. Don't say GTK#, this is also accesible in Java via java-gnome or SWT, which both work fine.
Gnome developers just have some unexplainable love for Windows.Forms as opposed to Swing.
Huh? I always though Gnome developers prefer GTK?? How much applications in Gnome are actually coded using Mono? None, AFAICS. This is all self-fulfilling PR crap.
debugging VM bugs (Score:3, Interesting)
For example I have crashes with the official Sun's VM. I am unable to debug the problem properly without access to the code (and I won't do that with a proper license). For sun I have to go all the way to create a test case, which is not easy when it comes to isolate a problem in a complex application.
I am sure I would go faster with access to the code. Instead of spending time making a test case, which I am not sure Sun is going to have a look at.
The only fork they would fear (Score:2, Interesting)
IBM would soon "Eclipse" the Sun.
Sun does not get it: need Linux compatible license (Score:2, Interesting)
For server side Java (web apps), which is mostly what I do, it does not matter too much because setting up a JDK, Tomcat, etc. is easy enough. It is a different matter however for Java client apps. Java is not that bad anymore for GUI applications and it would be great to not have end users having to install a JRE themselves.
BTW, natively compiling Java applications with GNU gcj is really getting to be a viable alternative to running under the JRE. I have been playing with Java and SWT also - looks promising.
Re:Java is open like C (Score:1, Interesting)
Just to give people an idea, in the current version of Java, there are 3,270 classes in the default class library. (!!)
This isn't doing any cheating, either, like counting classes in "sun." or anything like this, this is based on the list of classes given in "All Classes" for the JavaDoc for 1.5.0.
Re:off-topic-a-roony (Score:1, Interesting)
I have my own theory as to why they cose to do this. I believe it's for two reasons:
By implementing the Microsoft solution they receieved much faster gratification, and the slashbots admiration. The community suffers greatly because of this.
Re:Mono viability (Score:2, Interesting)
It's true that GCJ can currently generate code that runs faster than the code generated by the mono jit, but there are some considerations for that:
*) they need to fix their ABI and most things will get an additional indirection so it will get slower.
*) the code generated by mono is good enough for most tasks.
*) in real life code there are many factors involved: mono uses Boehm's libgc in a better way so many things have better memory use (we have fixes we submitted upstream for it, too). The standard library implementation is important, too, and C# allows for more efficient patterns than GCJ could not optimize (like using valuetypes, unsafe code blocks etc). For example you have the misconception that GCJ compiles code and doesn't use a 'slow' VM: this is not true: it very much uses the gcj VM, which may be fast, but it's still a VM.
So, overall, GCJ is an interesting approach, worth pursuing by people interested in it. It's still not an alternative to mono and it certainly doesn't prove that mono is not viable:-)
Re:Already ditched (Score:2, Interesting)
Personally, I love Java's exception model, I think it's the best I know, because it forces you to take into account every thing that may go wrong. When one uses a language that allows unchecked exceptions, one cares about writing the code and leaves the exceptions for later, which is never...
Re:Mono viability (Score:3, Interesting)
Most benchmarks show GCJ lagging behind the modern "just in time" JRE's in performance.
This is largely because GCJ is, well, quite poor... it certainly -could- be faster (in theory). The point is that, just because it's ahead-of-time compilation doesn't make it faster...
The devil is still in the details.
Re:you asked for it... (Score:2, Interesting)
Re:off-topic-a-roony (Score:3, Interesting)
Re:Mono viability (Score:3, Interesting)
Personally i do prefer java. Although c# and the
There seems to be a wealth of compatible JRE's so it's hard to believe that the lack of an international standard has really hindered java.