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.
C'mon Sun, we're sick of hearing about the pending open sourcing of Java. Show us the license!
I know, I know, Sun's afraid that Eclipse is going to... well eclipse the sun, but c'mon! make it GPL, retain the trademark and you won't believe the explosion in Java coding you'll see!
There are shills on slashdot. Apparently, I'm one of them.
but some more comment here:
E E9AA6A7CC257170006C0371
http://computerworld.co.nz/news.nsf/news/EE511308
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.
*picks jaw off floor*
Must be trying to keep up with the times.
This is going to be one loong /. discussion.
:)
Especialy the "I told you so" parts
Free Beer!!!!!!!
Come on now.. I see java all over the web, so I guess the answer to who cares would be a lot! Even in this here Slashdot page, I see the java tag used all over the source code for this page.
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.
Really, who cares about Java any more?
Just about everyone except you.
I can't believe anyone modded this troll up. Isn't the fact that he's posting at +0 a tipoff to anyone?
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.
That would explain why the lines are long at Starbucks... the employees drink Java. As long as they get the whip cream in with my grande mocha, I really don't care.
Slashcode is written in Perl.
The title should read "Sun to Open Source Java". The source code has been available for a long time.
A SABDFL is the answer. I don't think any fork of the Linux Kernel is very popular, thanks to Linus
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.
To be frank, I'd rather Sun hadn't open sourced Java, because that would probably reduce its (admittedly already very poor) uptake still more. As you can tell, I'm not a big fan. In trying to overcome the disadvantages of both compiled and interpreted languages, it actually incorporates them all: you get the slow startup times associated with JIT, and slow execution due to fiddling with bytecode. Let's not forget that the only type of optimisation carried out on the bytecode is peephole optimisation, which is inadequate for the majority of I/O intensive operations. The list goes on and on.
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.
no way! Hell froze over
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.
IANAP(rogrammer), but I can see how it would make a variety of things possible within the open source community.
For instance, if one knows exactly how Java works, one should be able to make code intended for a Java VM compile into native binaries. That means that every Java app out there, and there are a lot, should be able to run much faster and in native windowing environments within Linux - and that Java code written natively for Linux would also be (somewhat) portable between platforms using VMs.
Again, I'm not a programmer, so someone correct me if I'm wrong.
Step into a huge movement. Don't Tread In Me.
Again, I'm not a programmer, so someone correct me if I'm wrong.
You're not wrong, but such tools already exist. IMHO, all this will do is lead to incompatible versions of Java.
But GPL'ing it would create the requirement that every project that used it would also have to be GPL'd because at runtime everything links to its runtime environment.
Which would make the commercial use of Java impractical.
I can't think of a faster way to kill it that to put the GPL on it.
File under 'M' for 'Manic ranting'
People have been able to see how Java works for quite some time now. You just have to agree to a very restrictive and invasive license that no free software developer would agree to.
My guess is they will release it under CDDL, like OpenSolaris. For all of Sun's idiocy, I appreciate their graceful march to death.
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
Gee, given your handle, is it any surprise what sort of Java you'd be focused on?
It's not offtopic, dumbass. It's orthogonal.
I don't think the VM and compiler apps have been open-sourced.
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.
Oh, hey Sun, look at all the forks Python has, I mean it's IMPOSSIBLE to code for it because of all the variations and lack of a standards body! Keep fighting this evil demon called Freedom and don't give in!
I bet IBM is just foaming at the mouth ready with its fork just ready to scoop up the source code and create some stiff competition of who has best version of java. Look at SWT and eclipse and you'll see just how much they have accomplished without the source code.
My favorite Java feature is that it works well when you export the DISPLAY.
Some excellent examples of this are
Java in Mozilla, OpenOffice, Veritas NetBackup and UGS TeamCenter products.
I too think that it's important that Java does not get forked.
Oh well, that my 2 cents.
"""A group of developers could split off from the main Java community and form a second, independent group that follows an independent course. This could lead to confusion with developers and cause Java to lose focus.""" Am I the only one tired of hearing nonsense like this? Java has already been forked. Multiple times. There are already open source implementations of both the VM and the base class libraries. These implementations are distributed by default in most big Linux distributions: RedHat, Ubuntu, at least. I know. I started the port of Eclipse 3.0 to Ubuntu/Debian. It runs on GCJ and Kaffe or IKVM. All very high quality *FREE AND OPEN SOURCE* virtual machines. It uses Classpath as it's base class libraries. Exactly what more is there to fear? There are ALREADY other entities out there who have "forked". Why don't most people realize this?
Really? Not in C/C++? How do you get the first compiler to run on a new architecture? Probably a cross-compiler.
(Not a troll: genuinely curious & ignorant)
Slashdot entertains. Windows pays the mortgage.
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.
That means that every Java app out there, and there are a lot, should be able to run much faster
Compiling has trade-offs. You must target the end environment (CPU, OS), and also try to optimize code (for the target CPU). But you can only do static optimization.
Modern JVMs optimize on the fly. So the more you use a particular path through the code, the more it will be optimized (obviously only so far...). See this article: "The dynamic nature of the Java language provides opportunities for better optimization based on runtime profile information, and this is a significant advantage of a Java dynamic compiler over a traditional static compiler."
So having a compiled executable may not yield faster run times. It may have faster load times, which is where most of the perception of slowness comes from.
I use a rather large Java IDE (Eclipse) for development. It takes 10-15 seconds to load up the IDE from a cold start (2.1 GHz laptop). After that it is just as fast as I can type, which includes on-the-fly error/syntax checking, code assist, and so on.
- - - - - - - - - - -
I am a programmer. I am paid to produce syntax not grammar. Deal with it.
You don't want to fork your project, keep it for your bloody self... How could the code be free if you prevent it from evolving in various, now unthinkable ways?
This is not your signature.
Cue the slashdot crowd, with cries of, "IT'S NOT ENOUGH!"
Don't get me wrong, I'm all pro-FOSS, still... We have this: http://java.sun.com/j2se/1.5.0/source_license.html and I don't see how this "new" turn of events will further help Java. I think it will be like with OO.org, it's open still, only a handfull of devs care about it for various reasons. I really like Sun as a company and as a source of hw and sw (no, I'm in no way affiliated or related) and I hope this turn will be in the right direction.
I am putting myself to the fullest possible use, which is all I can think that any conscious entity can ever hope to do.
General Public License
Seriously, there's a reason it's so popular. It ensures that noone can hijack the project and the source code will be legitimately free. You will make the most people happy with your decision if you go that route. Anything else will be seen as hedging your bets.
Tom Caudron
http://tom.digitalelite.com/
-Tom
Slashcode is a POS from 1996. As are the mentalities of slashdot's posters
There are already open source, free, and feature complete Java Virtual Machines. There are also open source and nearly complete class libraries. Check out kaffe, gcj and classpath.
These can run most non-Swing applications perfectly. They are distributed By Default in Redhat and Ubuntu. Eclipse runs on them, Tomcat runs on them. Most Java applications run on them. This is old news.
It is not under question how "java works". It's easy. It's well published and well known.
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.
Are the various demagogues of Open Source going to track how the new license helps Java grow?
:)
I'd say that this is a classic situation where Java will not be the only thing worth studying. Once the license is decided and the code is even more out there for even more possibilities will we see IBM do even more with it? Will we see schools teach more Java because it has passed open source muster? Will this help it gain market share? Force M$ to open its languages? What about a new free Delphi?
I hope everyone, including Sun, is pleased with the outcome of this. Its not everyday such a big player takes this step. What do people think will happen?
We'll have to see.
LS
That would explain all the Java I was taking at school. Of course, the fact that it took the school three years to find the money to upgrade the Microsoft site license to .NET was probably a coincidence while Java was so big.
if people didn't like 'em, they wouldn't happen.
Twenty years ago people were all the time telling me that the biggest problem with unix was all the different versions, nobody was ever gonna use it if they couldn't be certain tht the version they picked will still be around in ten years. They were for the most part MVS bigots (or CDC cybernaughts).
I've heard a lot of the same stuff 'bout linux, mostly from windows washers.
This talk about forks doing harm to java is pretty much the same type of FUD.
I just see Emily Latella saying "Forks are good! I think there should be more forks. Just imagine how much more the Chinese could have contributed if they hadn't spent so much time fumbling around with those chopsticks..." Finaly, Chevy leans over and whispers "fork me"
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.
I know that Perl goes under the OSS "Artistic License" that, basically, says that there's only one true "Perl" out there.
:)
I wonder if it would meet their requirements? Sure, there might be forks, but they'd no longer misleadingly be called "Java" so...
Then again, they might end up with Ruby or Python type competitors, so I dunno
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
The best thing they could do is release it under a very liberal license (like the MIT license), but continue to maintain it. As long as they provide a solid platform, that is suitable for most people, the community won't have any incentive to switch.
Projects only often get forked when there are major philosophical or technical issues. Other than that, people do tend to coexist, even if they disagree on certain points. It's rare that the two forks of the same project both become very popular.
Take the XFree86 project, for instance. It was the main X11 implementation on many systems for years. Licensing issues developed, and a fork was made. Now X.org is more popular. Once people saw that X.org had benefits over XFree86, there was a mass exodus from XFree86. There was very little strife in between.
GCC is another example. The EGCS fork was created due to problems with the development process. They coexisted for some time, but in the end EGCS won out.
Then there's the whole DragonflyBSD/FreeBSD split, and the NetBSD/OpenBSD split. I think we can all agree such splits were for the better. They allowed certain corners of the community to better focus upon their goals, and now we have fantastic platforms each with their own strengths and weaknesses.
Regardless of the fork, the main thing to keep in mind is that there must be a high degree of dissent in the community to allow for a fork to be useful. As long as Sun keeps everyone mostly happy, or happy enough not to want to fork, it's not an issue they have to deal with.
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
There is demand for a Free implementation of Java and its standard libraries. One way or another, it will happen. The question is, how is it going to happen?
One way is for Sun to keep a tight grasp on Java and not open-source their implementation. That means a from-scratch implementation has to be written.
Another way is for Sun to open-source their implementation. That way, alternative implementations don't need to be written.
The question is; which do you think will produce most divergence? A competing, from-scratch implementation, or a continuation of the existing implementation? I think it's obvious the latter is the obvious solution if Sun genuinely want to retain interoperability between implementations.
Bogtha Bogtha Bogtha
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?
So Ubuntu can't package it in such a way that gcj and java reside on the same system (forget alternatives)
So Mark Shuttleworth must have been quoted before reading. Sorry Mark, Sun tried to fool you and the Free Software community!
At this time, I stopped reading the license as it's irrelevant. gcj is turning proprietary java irrelevant by the day.
A meaningful license would be a GPL and DFSG compatible Open Source license. Anything else is just jerking the community around and won't change the resistance to Java, or could cause forks.
Firstly, IBM are the good guys nowadays. They like open source, because they make their money selling integrated systems and it's nice if someone else does the donkey work.
Second, MS may be as evil as they ever were, but the whole "they'll fork Java" thing is so 1990s. Java is (a) very very solidly entrenched in its serverware and small cross platform app niche (b) a competitor to their flagship C#, so the last thing they want is draw people back to Java, of any fork or species.
Microsoft's probable response to OSS Java, would be to comb through the source code for bugs, and call a press conference to announce "one gadzillion bugs found in open source Java, more probably exist".
should we start calling you "non-dairy" or "half and half"?
It's not offtopic, dumbass. It's orthogonal.
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)
because it will condem java to the obscurity to which it deserves to go.
everytime java activates, my computer slows down.
why shd i put up with this ?
"Microsoft's probable response to OSS Java, would be to comb through the source code for bugs, and call a press conference to announce "one gadzillion bugs found in open source Java, more probably exist"."
.net apps seems more stable.
No.
like before, M$ will be able to ship inside windows a m$ java virtual machine with limited compatibility with the real java. This alone will be a major blow in the java brand, where everyone will see applications breaking in every desktop while
On the other side you will have J++ (or whathever name they will give it) in visual studio and claim that is the same java, but will be a M$ fork designed to run with optimizations in windows machines and behavig strangely in other VM's. No one will care about this in the beginning as 90% of the desktop machines are running windows, but will split the Java community into 2, a Java for windows community and a Java cross platform community.
To make a long story short, will be the end of Java as a cross platform language/platform
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.
Personally, I'll probably stop at a near-future release and not go forward. I'm guessing I'm not the only one.
I expect java will fork a few times, then the forks will fork. It will quickly descend into dozens of incompatible custom builds while those who want to get work done stick with 1.5 or 2.0 or whatever sun ends with.
I imagine an official sun build going forward for a while--pulling along behind it an ever-increasing pile of hanging-on junk projects. Eventually it will lose it's steam because of the fragmentation of the user base and the requests to "Keep up" with features in these side versions until it grinds to a complete halt.
All this time, committees will be adding "Features" that sun has been holding off on. Features that might save a programmer two keystrokes or allow some trixy maneuver while sacrificing "just a little" readability (like Generics did--IMO sun is already moving too fast!).
I guess now I'll start the search for the next beautiful language that can pull itself up above the fray--above the garbage that is the syntax of Ruby, C++, VB and all these other pretenders.
I suppose that it is possible that Sun will manage to keep control over the language definition via licensing, but I'm not going to hold my breath.
It's been fun.
Anyone can use the code... Is there any reason why such an approach wouldn't work?
I'd have to toss in "can modify and redistribute." Open Source ain't Open Source if I can't let others try my dodgy hack.
Stop-Prism.org: Opt Out of Surveillance
The Java specs (for JVM and language) are published, right?
If there is such a demand for an Open Source Java why hasn't someone just gone ahead and released their GPL/BSD/etc implementation of Java? With the superior Open Source development model it shouldn't be too much effort...
There is no way to prevent fragmentation. Open source projects fragment when a single code base can't serve every community anymore, or when the people running the project are screwing up. That's a good thing. Giving users the freedom to fork an open source project when they choose is what open source is all about. The concept of open source without the ability to fork and fragment doesn't make sense.
Sun is right to fear fragmentation; the minute they open source Java, they will lose control. Personally, I think that's a good thing for Java. but Java zealots disagree. In any case, I stopped worrying about it. It's taken Java only 10 years for its spectacular growth, but it can disappear even more quickly than it has grown. if Java continues along its current path, it will collapse under its own weight and become irrelevant in 5-10 years.
...It's to do with cash.
The more you have invested, the more it's worth sticking with. If the cost of maintaining your own branch is cheaper than migrating to another, you stick with the branch you've got...
All you need to do is make the features you need on the branch, and make a lot of money on that, then the only reason you'll consider merging with another branch is if it's financially advantagous (sp?) to do so.
Invest a lot of money on a particualar branch, it'll not be financially viable to merge with another. The longer the branch lasts, the less likely to merge it is. Therefore it's a battle of money.
Don't you remember the non-standard java implementation Microsoft had?
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/
Suggesting that Microsoft wouldn't bundle a look-a-like product in their monopoly OS and then do exactly what the parent post suggests (start making small changes) makes you sound naïve. For God sakes man, they did already try it once!
Microsoft hasn't learned to play fair and not cross that good ol' antitrust line. They wouldn't think twice if they decided that they could destroy Java that way.
The race isn't always to the swift... but that's the way to bet!
I will finally be able to run Tomcat on my NetBSD/mac68k box without waiting for Kaffe to mature. Hooray!
Constitutionally Correct
Well, as a developer, I will tell you THE one and only way to prevent forking and fragmentation...
Don't release the source code.
What? You claim that, say, Microsoft doesn't have huge issues with code forking in different versions of operating systems and office products? Several bugs, including the XPSP2 ping of death coming back are direct results of forking off old code and trying to tie things back together. Forking and fragmentation will happen internally anyway, especially if a company ever gets bought. What happens to Java if Sun goes belly-up and gets bought by Microsoft?
Java's strength is in the bredth of the standards that are defined for it. Look at C++, the only libraries people use with any great consistency are the ANSI standard libraries and they are infintesimally smaller than the Java Standard Libraries.
A "fork" will happen no matter what. What needs to be prevented in an incompatable fork that is non-standard Java. They need to prevent others from taking over the standard. One way that has worked is the way Ada did it. There are many Ada compilers (including the Open Source gcc Ada front end) but the language spec for Ada is closely followed by everyone. What they should do is hold onto the trademark but offer to let anyone use it whos Java implementation passes a large test suit. By "large" I mean something like a 100,000 lines of Java code. Should there ever be a problem they can extend the test suite. After all the whole point of OSS it so people can change the software. The first time one guy checks it out of CVS and make an edit you have a "fork" but hopefuly these get checked back into the main brabch after so testing
Right to fork is the most important one in the open source definition. Where do these guys live??
evil is as evil does
So, after resisting for years, let's see what is happening in the GNU world to change Jonathan Schwartz mind
Perl, Python, Ruby, and so on. All are Open Source yet not fragmented. Look at TCL, though it lacks a "dictator" like the others above, it still has not fragmented.
Me too; When did this come about; Could not do it before.
I prefer the "u" in honour as it seems to be missing these days.
It's just TOO LATE!
Compiling has trade-offs. You must target the end environment (CPU, OS), and also try to optimize code (for the target CPU). But you can only do static optimization.
Modern JVMs optimize on the fly. So the more you use a particular path through the code, the more it will be optimized (obviously only so far...).
Don't forget runtime optimization like that has trade-offs, namely that you have data-code confusion. Data is not code. The stack, heap, and writable shared and anonymous memory are data; when these are executed, we usually see nasty things like security holes (Code Red, Slammer, Blaster, Zytob/Mytob...). Preferred solution is to make sure the only stuff we execute came with the program-- i.e. an image and shared libraries.
Any bug in the JRE-- and we love assuming it's perfect-- can be exploited. We can't deploy proactive protections against it unless we use slower disk-based solutions-- write the generated code to a file, mmap() the file executable. From a security standpoint, we can't make "guarantees" mathematically; we can only speculate on the language's design and the hope that it is implemented properly. (By contrast, we are otherwise hoping that the program is implemented properly; and if that fails, that the OS implemented its prot properly; failing that we're finally screwed).
I really don't like runtime code generation, because it requires runtime code execution.
Support my political activism on Patreon.
Sun owns the Java name right ? so people can fork the source code as they want if Sun refuses this forked "thing" to bear the Java name, then it can't be called this way, it's as simple as that. Only the Sun blessed version will be allowed to use the Java name. I don't see any risk of forking here.
Unfortunately for Sun, Java will be Open Source with or without them. GNU Classpath is already mostly Java 1.4 compliant.
They basically have a choice. They can either make the Sun JVM the defacto JVM now by complying with open source demands, or they can be the stodgy corporate-only JVM while everyone else uses GNU Classpath. Even by fixing the Sun JVM license the people working on GNU Classpath aren't going to stop. They want a GNU, true open source alternative. Do we need any reminder on how the UNIX / Linux battle played out?
So like the Sun execs have said, it is not whether the JVM will be open source. It is HOW it will be. Will it be Sun or GNU Classpath in 5 years? Clearly, Sun realized this and is scrambling to make it happen before it is too late and a thriving community leaves them in the dust like with Solaris v Linux.
JAVA source code has been freely avaible for many years now. If that wasn't that case, you wouldn't be able to for example, build the native FreeBSD JDK...
As far as IBM goes they still own a lions share of the server market and could easily fork J2EE. That would also suck.
Why? IBM is committed to open computing and standards. IBM will/do drive standards, but as for forking - that would hinder the IBM strategy.
You want a signature? You can't handle a signature!!
There have been very few problems with the JVM so far. The good thing is that the JVM is a very small target to hit, and it's pretty easy to test it and make sure it works correctly. Everything that runs inside the Java JVM, including all libraries that do not directly call native code, is bounds checked. Many of the examples you have pointed out would never have worked inside a Java VM, where buffer overruns are *very* unlikely. I believe up till now one has been found.
The VM does make a very clear distinction between data and code. If you want to create code, you will have to pass the byte verifier. And if that is using a security scheme for e.g. applets, you cannot even write to disk. Maybe the underlying system cannot see that it is data or code, but who cares? Of course any bug in the JRE (that is visible to a Java program, pretty unlikely) can be exploited. But the JRE has proven to be a very stable environment. Much more so than any other runtime environment I've encountered so far.
You are also trying to make a distinction between native code environment and the Java environment. There really isn't too much difference. But while normal, native, platforms are horrendously complex, use pointer arithmetic, huge numbers of instructions etc. etc. Java runs in a pretty well understood and much less complex environment, where most of the risks of a native platform have been rooted out. All in all, Java is pretty well suited for security and stability.
If you don't like runtime code execution, I would advise you to stay as far away from your computer as possible.
The "problem", if you will, is that no distribution comes with a Sun standard JVM. Why? Not allowed to distribute it. Licensing issues.
... they would be HAPPY to build, maintain, and bundle JVMs and JREs for Sun for all their supported platforms and have it installed by default.
That is unacceptable. If Sun can just change the license a little then Red Hat, Novell, FreeBSD ports
Instead we have to do stupid shit like the jpackage-sun-jre SRPM which essentially downloads a file from the Sun website, makes you look at a EULA, expands it, and repackages it as a binary RPM. Utter useless horseshit. Projects like blackdown java and jpackage (which exist primarily as technological measures to circumvent/handle issues due to Sun's licensing) are proof that there's something wrong with the One True Release model that Sun has been pushing.
The ramblings of a few OSS advocates who have never coded a bit of java in their lives is not the issue here. That's just noise that distracts from the real issues.
In fact, the only reason why they rant is because they look at their Fedora box and say: "Hey, where's the java package?" They go on the forum and ask, "WTF?". The response they get back is "Lol Sun suxors java isn't open sauce looool". Which isn't really true, its just Sun is being assisine about groups like Fedora distributing it.
It's everyone else who hates having to jump through hoops to standardize on java on whatever platform they want to play with who are complaining. Sun is finally listening to them. Hopefully someday soon my RHEL 5.0 extras CD will come with official Sun RPMS and SRPMS for all my platforms. One can dream.
THIS THING CAN TURN ON A DIME, MACROSSZERO STYLE ALSO FUCK BETA, ~NYORON
Have a look at Rick Moen's essay Fear of forking to see in more detail what causes successful forking.
Sure they can - there are other ways to pevent forking than in the license. Look at most of the major OSS projects around and you'll see that there is very little in the way of forking - sure minor forks exist but they quickly die.
Ultimately, the only way to prevent forking is to do such a good job at managing the project and on the technical side that few people will want to use a fork.
I don't think that Sun is up to that standard, and it's pretty clear that Sun themselves doesn't think that, otherwise they wouldn't be so worried about forking.
Sun's press release
Offical Sun JDK Distros Project
Like a lot of people are already saying, you've been able to get the JDK source code for a long time now. The goal here is to fix the things that keep most Linux distro from including a JRE/JDK.
My Hello World is 512 bytes. But it's also a valid Fat12 boot sector, Fat12 file reader, and Pmode routine.
Remember, Microsoft already tried to pull that routine with the NON-OSS version of Java.
.NET shows. Microsoft even provides tools to let you convert all your Java programs to the .NET platform, but the reverse migration is pretty much impossible since .NET has functionality that Java cannot emulate efficiently.
.NET, with the effect that .NET and Mono are already far more prevalent on Linux distributions than Java.
Microsoft didn't need Sun's source code to create an incompatible version of Java, as the existence of
By not permitting Microsoft to fork Java and create a somewhat incompatible version, Sun has created a competitor for itself that is far, far worse than a slightly incompatible "Microsoft Java".
And the icing on the cake is that Sun was such an ass when it came to dealing with the open source community when it came to Java that they have antagonized large parts of the open source world. They've also dropped the ball technologically on Java (there wasn't much debate on 1.6 because few people outside Java's core zealots give a damn anymore). The open source community has instead created its own, open source, high-quality implementation of
The notion that Sun could control Java by playing hardball was hubris, and it backfired. Now, a few years later, Sun is scrambling trying to pick up the pieces of their broken strategy. And Schwartz still doesn't get it--he is still trying to square the circle and come up with a "non-forking OSS license".
Microsoft says "Great Sun open sourced Java". We will take it bundle it with windows, change all the underlying code so that it actually uses windows API's, remove anything that competes against our stuff like SWING, EJB's, Servlets, messaging API's et al, and make it so that our Java only runs on Windows, and even if you try to run a "normal" Java application , it will not work unless you change it to support com.microsoft.xxx libraries, and jump through a ton of hoops.
.NET. It's an open standard and there are open source implementations. It provides excellent desktop integration on Windows and Linux. It gives you a choice of native toolkits or cross platform toolkits. It's technically superior to Java and the implementations are better than Sun Java. Recent Linux distributions include a dozen or so Mono applications as part of the Gnome desktop, and they work so well that most people won't even know it. Even Gnome's desktop search is based on it. And both Microsoft and Mono provide backwards compatibility with Java (you can even run Eclipse on top of Mono).
The already did this. It's called
By giving the finger to both Microsoft and the open source world, Sun really screwed themselves.
The fact that Sun has made it easy to obtain Java source code under license by merely clicking through is a trap; it lulls people into the belief that they can download the source code without consequences. It is cynical and deceptive to say that the source code is available without being clear how seriously encumbered it is. Windows source code is available under restrictive licenses as well, but frankly, I consider the fact that you have to do more than click through a license a bit more honest than what Sun is doing.
Let me say it again: do not donwload Sun's Java source code unless you are absolutely clear of what the legal implications are. Sun is serious about their licenses and they have enforced them in the past when it suited them. Neither the JRL nor the SCSL are open source licenses and violate many of the implicit assumptions you may make about downloadable source code. In addition, keep in mind that significant aspects of the Java platform are patented by Sun, so that it's not clear that merely having source code, even if you could use it, would help you.
Well, we could always contribute them. But hopefully now they'll actually get applied.
They cannot include all suggestions, because huge number would be detrimental to the language (and runtime).
Now, just add one and one and see if you got two.
I'm confident, it is only the Sun's restrictive licensing, that prevented them from bundling Java as well. Not any more...
Of course, you will still be able to use the already installed Java using the --with-system-java switch, but it will subtly break various things, because the OO.o's automated builds would never use it themselves.
In Soviet Washington the swamp drains you.
The java community is many orders of magnitudes bigger than that of any other product. Also the members of the community themselves are, next to individual developers, the largest software companies in the world. Sun could never be 'responsive' to this community in general, since a lot of its members have conflicts of interest and widely different opinions. I think Sun does quite a good job of reconciliating these interests. But still, forking, when so much money is at stake, remains a very big risk and cannot be prevented by being responsive.
What does it matter that the JRL or SCSL licenses put "limits" on what you can do? So does the GPL. At least Sun is upfront with their clickthrough license. Maybe it seems scary that you have click "I Accept", but if you download GPL source, you have also accepted the GPL license terms. It is just implied.
JRL and SCSL are open source in that anyone can download the source today, and not pay anything.
JRL and SCSL are not "Open Source" because they are not GPL. So what? GPL has some restrictions and so does JRL and SCSL. Until the world switches to BSD or Artistic licenses (which have even fewer restrictions), we have to accept GPL, JRL, and SCSL.
If preventing forks (as in forks made by proprietory interests), then GPL is the way to go. The GPL makes it stupid for anybody to make a fork unless they think that the present leadership is not doing its job properly. So Microsoft or IBM will not make a fork because it will be better to just contribute to the base. Proprietory forks are disallowed by GPL and OSS forks cannot survive because there is an inherent bias in merging the forks, because it improves the code base faster. As past has shown us before (GCC fork, X11 fork), they only happen when the current leadership is not working well. These kinds of fork are a good thing.
BTW no non-viral license can do the job of preventing forks effectively, and that includes BSD and others. Not to flame BSD users but BSD license is great in instances where you want a particular protocol to be used everywhere including proprietory implementation. I would think it would be good if there is an ODF implementation in BSD License then everybody except MS would use it. And we will have a similarly working ODF readers. BSD TCP/IP stack is a reason why TCP/IP is so popular. But preventing forks is not one of its features.
Does your linux distribution come with Sun's Java? No? Well once Java is open-sourced, it will.
Java out of the box, that's a big change.
Sure it is :)
I wouldn't consider your average Java developer to be part of the Java community (as far as the source code for the VM and compiler is concerned). The vast majority of Java developers don't give a crap about the source code to the JDK. To say that all Java developers are part of the JDK community is like saying all open source C programmers are part of the gcc community.
-matthew
"THERE IS NO JUSTICE, THERE IS ONLY ME." -Death
The company is asking developers to provide feedback on how to best get there and prevent forking and fragmentation.
Well essentially, they want to stay in business - and don't want to give away code for free to competitiors. What if IBM/MS/any_other_company takes their code, repackages it and calls it "Their-Own-Kawa(TM)"? Their lead in the business as the premier Java would be lost.
I think they're thinking at it, purely from a business point of view. And it wouldn't help if the Chinese get a whiff of it (no offence intended).
Get ready for the fragmentations! Here comes FreeJava, NetJava, OpenJava, JavaOne, FreeJavaOne, NetJavaOne, OpenJavaOne.. JavaFree, JavaOpen, JavaOpenFree, JavaFreeOpen..
You feel bad for them, but it's still funny when they jack off in public.
Interesting. Could you please provide a definition of derived work (as opposed to mere aggregation) in the context of Java bytecode and JAR files?
Don't release the source code.
We've already got Sun java, MS java, IBM java, Apache java, and GNU java -- most of them created because of sun's restrictive licensing.
Compare similarly sized open source projects -- the linux kernel, the mozilla suite, openoffice, X, etc. All those put together have had fewer forks and fragments than java, and in all cases it wasn't so much a fork as a new path, leaving the old to die, returning us to the state of a single good branch.
I mod down anyone who says "I will be modded down for this", regardless of the rest of their comment
And this is the genius of Sun's licensing of Java. Sun, being a fairly poor as a software house, managed to slow down every single one of their competitors that adopted their Java technology. Sun was able through this licensing to dictate the pace of innovation effectively slowing down everyone to a grinding halt.
r cing-of-java_17.html
More here: http://spellchecked.blogspot.com/2006/05/open-sou