Sun to Release Java Source Code
pete314 writes "After resisting for years, Sun Microsystems CEO Jonathan Schwartz at JavaOne this morning said that he will release the source code for Java. The company is asking developers to provide feedback on how to best get there and prevent forking and fragmentation."
"After resisting for years, Sun Microsystems CEO Jonathan Schwartz at JavaOne this morning said that he will release the source code for Java.
:-/
BZZT! WRONG! Java source code has been available for YEARS! (And no, I'm not going to bother linking. If you don't already know where to find the SCSL and JRL licensed code by now, you need to pull your head out of your butt and Google it.)
This article is nothing but a blurb that suggests that Sun is looking at Open Sourcing Java. (What the Slashdot pundits have been screaming for, for years now.) Unfortunately, one of OSI's core requirements is forking. So Java will never be able to make the pundits happy.
Javascript + Nintendo DSi = DSiCade
Use a spoon. Not only does it prevent you from forking, but its really hard to fragment anything with it.
Well.. maybe. Or Maybe not. But Definitely not sort of.
That's why they have resisted it for so long. Now it will just be one more thing where there are sneaky, annoying inconsistencies between distributions. Nothing will be "broken", but things will end up being implemented slighly differenty and some portability will be lost.
I guess it doesn't *have* to happen, but there seem to be more than enough people that want to take Java away from Sun that it's inevitable.
Jonathan Schwartz at JavaOne this morning said that he will release the source code for Java. The company is asking developers to provide feedback on how to best get there and prevent forking and fragmentation.
Well, as a developer, I will tell you THE one and only way to prevent forking and fragmentation...
Don't release the source code.
Oops.
The code isn't going to fork itself. If Sun is doing a reasonable job maintaining the source code, they don't have much to fear from a fork. If they are not doing a good job, a fork would hardly be a bad thing.
The title should read "Sun to Open Source Java". The source code has been available for a long time.
Java offers nothing useful or exciting compared to what's out there.
What else is *out there*? c,c++,C#, Visual Basic, Python? If your going to tell me its terrible, I certainly understand that point of view, please at least tell me what you cosider to be better and what applications you have in mind. Just telling me its bad and not good for much, doesn't help much.
Any suggustions to what is out ther that holds such great advantages to Java?
Well.. maybe. Or Maybe not. But Definitely not sort of.
What I don't get is why Sun have such a hissy fit over supposed Java incompatibilites introduced through forking of free licensed code. What's to stop them preventing people from calling derivitive versions 'Java'? Sun could implement strict compliance testing, a-la UNIX, to ensure that derivitives are compatible, and can license the 'Java' trademark for use by those compatible versions. Problem solved.
Create a strong community with strong corporate involvement. If somebody does fork the code, the project will either die or be assimilated back into the main branch. Don't worry too much about others, just make sure that Sun will stand behind an official community. And standing behind them also means listening to them, even the ideas that you don't like.
Look at Perl. It's open source, and hasn't really forked. It has, however, evolved.
Anyone can use the code. You can only call yourself "Java" if you hit certain specs and pass some tests. In other words, if you can prove that you meet the Java standards (with API support etc), you can call yourself Java and use the source code. If not, you aren't Java. Feel free to use the source code.
This may not be a GPL license, but that's alright.
Is there any reason why such an approach wouldn't work?
Except for ending slavery, the Nazis, communism, & securing American independence, war has never solved anything.
Whatever 'how' you come up with must satisfy one simple criterion: make it possible for the major Linux distributions to include the Sun JVM, runtime (tailored to whatever degree necessary to work well,) and source, in their product.
Lurking at the bottom of the gravity well, getting old
Is there any reason why such an approach wouldn't work?
That approach works great. That's the license they already have.
Although the source for the reference platform has been available for some time, the fact that it may become 'free' means forks are inevitable, and that's the only thing that's missing from Java, namely the freedom to fork it. Mind you, if the C++ crowd get hold of it that's what it will be... completely forked.
every project that used it would also have to be GPL'd because at runtime everything links to its runtime environment.
Really? You're saying that for applications which link to the Java class libraries, they'll have to be GPL'd as well? I thought that the GPL had an exception for "links-to" versus "extends" or "based-upon."
O lord, bless this thy holy hand grenade, that with it thou mayest blow thine enemies to tiny bits, in thy mercy.
Whereas I'm not surprised that Slashdot is bringing out the normal anti-Sun's-attitude-towards-Java dogma, is this really a surprise? Jonathan Schwartz is closer to being a pro-Slashdot geek than Scott McNealy ever was. If anything, McNealy was just an arrogant ass who liked staying in his ivory tower with Bill Gates and Larry Ellison. Schwartz has always shown to be more of a geek than McNealy, and releasing the source code to Java has been a "cry of the geeks" for a long time.
(Note that I don't use "geek" derogatorily as I fondly consider myself to be one.)
Sun is giving us a ton of surprises in the past few years with Schwartz on board - from AMD processors to their first, AFFORDABLE powerhouse workstations (Ultra 20). I'm not surprised by this move at all, but I also don't blame them for wanting to be able to protect one of their revenue streams. At least Sun is trying. I guess the Slashdot "make it free or forget it" is still too strong, based on the responses I've seen so far in this thread. Looks like when it comes to Java, Sun is damned whether they do or don't. Pity.
No, thats the LGPL. GPL is everything that extends it or links to it. LGPL is only for the code itself and not linking code. Thats why glibc is LGPL instead of GPL.
I still have more fans than freaks. WTF is wrong with you people?
More likely, Sun will make the source CDDL like the rest of their free-software (and hardware :) ) offerings
Just so I fully grasp your analogy, do you mean Perl < 6.0, which was damnably hard to read, or Perl >= 6.0, which will be impossible to understand?
Rich And Stupid is not so bad as Working For Rich And Stupid.
Even in this here Slashdot page, I see the java tag used all over the source code for this page.
/. who don't know this.
For the bazillionth time, Javascript is not Java. I can't believe there are people on
There are 0x40000000 types of people: those who understand 32-bit IEEE 754 floating point, and those who don't.
Well, if those products are already out there and already open source, how can the OSS flag-wavers claim that Java can't be open-sourced?
How quickly people forget what Microsoft tried to do to Java. The only thing that saved Java was it license agreement.
I can't wait to make the Javalord JVM. Soon the internet will be overrun with craplets that only work on my JVM. MUHAHAHA
Duke Nuke'em forever will release their source code....
That is, come up with a new implementation that will become more popular than the original.
GLaDOS for President 2016! "Well here we are again. It's always such a pleasure." -- GLaDOS, 2011
I don't care one bit about Sun Java as open source. Sure, it could be nice, but do you really think that a great number of amazing programmers would eagerly step up and immediately start to maintain and improve Java? And in that doing a better job than Sun & JCP is doing right now? Don't think so...
However, there is one thing Sun could do... one very important thing: remove the stupid click-through license on downloading the Java source-code. That one thing would mean that the BSD portstree or Gentoo portage could build Java from source - unsupervised. Today it's a total pain to manually download a bunch of distfiles. Even the patches can't be distributed without a click-through license. That sucks.
But then ofcourse, legal redistribution of Java binaries wouldn't hurt either...
But Open Source Java? Nah... Not really needed.
Seriously, at this late date in the game who cares anymore what Sun does? Those who care not for Freedom have already adopted Java and those who care are either using another language or are now firmly in the GCJ camp and, knowing Sun, won't leave for any bait & switch offer from Sun. I mean, raise your hand if you believe Sun's offer to "open source" Java will actually become a code dump under an OSI approved license. And the odds of it's license (and you can bet your last dollar it WILL be Yet Another License) being GPL compatible are null.
Even today's new initiative to loosen the binary license to permit distribution repackaging is being being greeted by a certain amount of scepticism just because it is Sun. Personally I'll believe it is for real (as opposed to a deal for certain select popular distros, much like the Firefox trademark bullcrap) if jpackage.org can finally ship a binary rpm.
Democrat delenda est
Don't release the source code.
Or another option is to not piss off contributors by rejecting suggestions and otherwise being resistent to change. Nobody is going to bother forking if Sun remains responsive to the community.
-matthew
"THERE IS NO JUSTICE, THERE IS ONLY ME." -Death
I think that the reason Java doesn't want forking is to make sure that a program one person writes will always work on all Java interpreters. Sounds familiar to Knuth's concepts about TeX. The way they achieved it was by prohibiting new derivatives from being released under the same name (see http://en.wikipedia.org/wiki/TeX#License) and those using TeX in their name must pass a rigorous test suite. The license is not GPL compatible, but perhaps Java could adopt something similar?
Actually, that could be a good enough reason for them to release it GPL, and have a dual license option for some other Sun licenses.
However, I think they are more worried about Eclipse than MS at this point, and I doubt Eclipse would shy away from forking a GPL Java. Sun doesn't want the source of forks to be available for them to use - they want no forks to begin with. They are control freaks when it comes to their projects.
Really it'll come down to IBM and Sun working out some arrangement where the code for Java is available under an OSI license, but where Sun still has some sort of the control it desires. Given that Java is developoment is partly a community process anyhow, you'd think there would be some way they could attain that.
In other words, if you can prove that you meet the Java standards (with API support etc), you can call yourself Java and use the source code.
It's worked well enough for the C camp. Has Java been submitted as an EMCA or ANSI or ISO standard? Of course there are multiple competing compilers which I guess is what Sun wants to avoid.
This is good for the community; maybe not so much Sun. It will at least force Sun to stay on their toes; maybe by doing so they'll manage to invent a new business along they way (and disappoint Cringely).
My God, it's Full of Source!
OUTSIDE_IP=$(dig +short my.ip @outsideip.net)
I think the last thing Microsoft wants to do right now is to put "lots of bugs == bad" into people's minds.
http://outcampaign.org/
The freedom to fork the Linux kernel has resulted in varieties of Linux running on all sorts of platforms, including many that that the mainstream kernel development team has absolutely no interest in.
That's the beauty of being able to fork the code -- people can use it as the basis for scratching their own itch.
The freedom to fork Linux distributions has resulted in something that most markets identify as "competition", something which the x86 desktop OS market hasn't seen in some time.
In spite of Sun's touching concerns, this can actually be a healthy situation, and usually is.
Mainframe/UNIX Bit Twiddler and long time Windows/Linux Hobbyist.
The Theorem Theorem: If If, Then Then.
i think this is a great idea. one of my biggest annoyances with writing java apps has been that if i ever wanted to release my programs and didn't want to make any assumptions about my users (mainly that they had any version of java already installed on their system let a lone a level of java that matched my own level) i would have to deploy a very heavy 50MB JRE with my 100K app... i think with the opening of the java source, much like in the linux world, someone will repackage the JRE and just keep the very bare-bones essentials so that instead of deploying a 50MB+100K apps i can deploy a 5MB+100k app.
--
http://unk1911.blogspot.com/
Well, for one thing, it is slower than native code.
Patently false. It has been false for years now. Ever since Chris Rijk published his earth shattering benchmarks. (More recent benchmarks here.)
It's now down to the skill of the programmer. A good programmer will write speedy code, and a bad programmer will write garbage. Who'da'thunk?
For another, its garbage collection has a tendency to result in really bad performance stalls
When was the last time you used Java? 1.1? The modern hotspot JVM uses a generational collector which should NEVER stall during runtime unless it begins running into memory pressure. Go try this game and tell us how many stalls you see. If you think that's too "simple", try this one.
For another, its portability has been hampered by not fully supporting interesting OS features, which means that there are all these OS-specific extensions to add things like audio support,
Is there something wrong with the javax.sound packages? I'm REALLY thinking that you haven't tried Java since 1.1.
They don't integrate well with other apps, don't do a good job of supporting OS services, etc.
Psst!
Finally, Java makes it hard to add debug functionality into your code without a performance hit.
That's just a weak argument. Debugging info can really screw up a codebase and should be removed after debugging. But if you're wedded to the idea, get one of the three billion preprocessors that are available.
The bottom line is that pretty much any compiled language has great advantages over Java.
The bottom line is that you haven't used Java since the days of 1.1, but you feel that you're fully qualified to make statements about a platform you know nothing about. Whether you intend to or not, you are trolling, sir. So I would ask you to stop spreading FUD by not commenting on Java until you are again familiar with the platform.
Javascript + Nintendo DSi = DSiCade
Finally, Java makes it hard to add debug functionality into your code without a performance hit.
That's just a weak argument. Debugging info can really screw up a codebase and should be removed after debugging. But if you're wedded to the idea, get one of the three billion preprocessors that are available.
Actually, you can use the assert facility (since Java 1.4, I believe) to achieve something similar as a pre-processor out of the box.
Specificly, about 60% down the document, the following can be read regarding removing any assertion code from the resulting class files:
Removing all Trace of Assertions from Class Files
Programmers developing applications for resource-constrained devices may wish to strip assertions out of class files entirely. While this makes it impossible to enable assertions in the field, it also reduces class file size, possibly leading to improved class loading performance. In the absence of a high quality JIT, it could lead to decreased footprint and improved runtime performance.
The assertion facility offers no direct support for stripping assertions out of class files. The assert statement may, however, be used in conjunction with the "conditional compilation" idiom described in JLS 14.20, enabling the compiler to eliminate all traces of these asserts from the class files that it generates:
"It is provably true. The proof is trivial, in fact. Java is non-native bytecode. Therefore, at some point in time, that bytecode must be translated. This takes time."
That may be, but if you acquire information while the code is running, then you may be able to speed things up a bit. Normally, natively compiled code does not do that. Besides that, this is all theoratically speaking. The same argument was used against C: anything you did should be slower than assembly, no? It turned out that compilers won from assembly most of the time: computers are much better in following guidelines and testing for optimum performance than users are.
Besides that, I would not mind spending a bit of time for added reliability and security on 90% of my applications.
"Since few OS services are bridged except those that are fully cross-platform, a Java app cannot fully take advantage of the latest technologies in any OS."
That depends. Some things are enabled automatically. But one of the main points is write-once, run-anywhere. Sure, you can get out of that using JNI, but you may have to rewrite certain bits. On the other hand, how do you know that an application that you write runs smoothly on another machine if you used C++? What if it is an older machine?
In my opinion, the main advantages of Java are the simplicity of the language, the well-documented and largely very understandable API, the availability of a very large repository of usefull components (check out Apache!), the inherent security architecture...the list goes on. Even if you were 100% right on the previous two points, there is enough merit in Java to take it seriously. And if you look at the penetration rate of Java, well, it's HUGE. Mobile phones, smart cards, TIVO's, blu-ray will use Java, embedded devices and of course many businesses that take security and reliability seriously.
What stops them from adopting one of the existing open source VMs, "embracing and extending" it (still open source, of course), and doing that now?
You do know that Microsoft gave the Kaffe project money, right? The stipulation was that Kaffe had to add Microsoft extensions to its codebase. Turns out, Kaffe never managed to produce a competitive VM (though it's looking pretty good these days) and thus never had the impact that Microsoft had hoped for.
Javascript + Nintendo DSi = DSiCade
Well, it's been available since 1999. Seeing as it has taken slashdot—oh about—7 years to figure it out, you can understand why I'm a little peeved over the number of responders who've claimed that the source isn't available.
If you have a problem with the SCSL license, fine. If you have a problem with the JRL license, fine. But to claim that Sun hasn't released the source code? That's just frustrating.
Javascript + Nintendo DSi = DSiCade