Gosling on Opening Java
An anonymous reader writes "It sounds like James Gosling's nudging Sun closer and closer toward open-sourcing Java, as requested variously by IBM,
Eric S. Raymond, and Richard Stallman, though not by JBoss's Marc Fleury. 'Developers value Java's cross platform interoperability and reliability,' Gosling writes, adding 'If we do something to make Java even more open-source than it is already, having safeguards to protect the developer community will be something we pay a lot of attention to.' Surprisingly, 'the creator of the Java programming language,' as Sun usually calls him, seems to be at odds on this issue with his own CEO, Scott McNealy. So, who should have custody of the child, the father...or the boss?"
The boss. They paid him for his work, so it is there's to do with as they please.
So, who should have custody of the child, the father...or the boss?
Boss gets it on the weekends, father gets it during the week.
...we need java to be open source, so we can fix all the flaws he left in it. i mean, no goto?!
first maybe solaris....now maybe java...whats next...open source star office??? oh wait..
We played dungeons and dragons for 3 hours.....then i was slain by an elf
Question from the artice:
2. "Some have asked what IBM would get if Java were open-sourced: doesn't IBM already have the source?"
Gosling's answer: Again yes, they do have the source. It's also true that anyone can get the source. The major restriction is that if folks want to redistrubute their changes, they have to pass the test suite. Which means that about the only thing that they could get from liberalization is to be able to skip testing.
So it doesn't seem to be such a big issue after all. The source is already available, and all that is required to change it and redistribute it is to pass a standard suite of tests. Now, call me crazy, but I think that's not A Bad Thing. This restriction is what helps Java to be uniform and platform-independent.
The benefits of making Java fully open source therefore seem overrated. Isn't the availablity of the source most important? Or perhaps I'm misunderstanding something ...
I hear there's rumors on the Slashdots
"If we do something to make Java even more open-source than it is already"
/.-er in their right mind say OS X is open source?
Is it even possible for something to be partially open source? As far as I've always been concerned, something either is or it is not.
I know someone will definitely say "well, X part of Y OS is open source, while the OS isn't" but Java isn't an OS. Even in that case, let's use OS X. Are its Darwin portions open source? Well, yeah. I doubt we'll argue that? Will any
Hell no. And I love my Macs.
This sounds a lot like pkware's strategy with DCL. They actually tried to tell me I should use it because its patented. I told them it's surprising that we'd even consider using it in spite of it being patented.
that they open-source it before Sun tanks, or before some nasty company takes control of it. In short, they ought to do like Netscape did, and I'm sure even McNealy would rather do that than any other alternative...
"A door is what a dog is perpetually on the wrong side of" - Ogden Nash
McNealy gets Ja, and Gosling gets Va.
Now that's a fork.
I think I need a new sig here.
The reason for this is that IBM is the big money maker in the Java/J2EE Space. It is fighting strong competition from BEA and now JBoss, maybe soon to be Jonas and Geronimo.
I think it's a credit to Sun that while they help build and manage the standards, they are not the big players providing the solutions that are being sold in that space.
They would like to sell more of their Java middleware components and are working towards it but they are not dependant on that to make (lose) money. The fact that they haven't made changes to the specification to favor their products over any one else's products speaks volumes. They have said they were going to open the standards so that others may benefit and everyone will compete on other merits while offering a lot of common features. The market proves they've kept their word.
I don't see IBM doing the same. Look at Mark Fluery's comments on how IBM forked a version of Axis back into a proprietary product. They did the same with other products they worked on. JetSpeed I believe is one.
They get the open source developers to help build the application, help people get buy in, then they take the codebase in house and work on it from there making improvements and selling it for mucho dinero.
That's not a bad thing, and is allowed under the license. The OS community has a good base to start building based on the initial investment by IBM. It's just something that isn't acknowledged by others.
With the JCP, the new arrangements with the Apache Group, Java keeps getting more and more open (with a little 'o').
Sun IS doing good things with Java and for the java developer community. They are making it easier for people to contribute back to java. Sun has a lot of things it needs to do in other areas but they really are doing a good job with Java. If it ain't broke why fix it?
One of the reasons's Java/J2EE is doing so well is because of the competition in the marketplace. Different vendors bring different things to market. Some wind up becoming standards, some get coppied from others. It works out to the advantage of the user community who relies on these different technologies to do their jobs.
Whether IBM will do this, we really don't know. They have more of an incentive to do this as JBoss is cutting into some of their installations. We do know that Sun isn't.
Open Source Java DAO Generator
I think making Java open source would be very cool. But I am sure all of the developer who invented Java were paid well for their time, and Sun should make the decision.
Great ideas often receive violent opposition from mediocre minds. - Albert Einstein
What kind of idiot would confuse a freakin' computer program with a child?
A computer program is much like a child : when you release the first versions, it keeps on crapping out and you're constantly after it to fix it, then it slowly grows and grows and costs more and more money to maintain, then it's big enough that it becomes an ugly unmanageable thing that keeps on making unreasonable demands on the system, then when it finally matures, it leaves the development team and goes in maintenance mode until it's end-of-lifed.
"A door is what a dog is perpetually on the wrong side of" - Ogden Nash
I don't like programming in Java, but having a free Java (as in speech) would be really great !
There is a very good free java implementaiton. GCJ (GNU Compiler for Java). The library lacks a few things (e.g. AWT/Swing), though, but other than that it is a great implementation. And it is not based on a JVM, but is a traditional ahead of time compiler, so the related disadvantages (as well as the advantages, if any) dissapear. It uses the same (or at least a very similar) object model as C++, so interoperation with it is much easier.
Think about how it can be easy to include Java in a Linux Distro.
Sun's Java JVM can be included in linux distributions without problems. Knoppix, SuSE and SoL include it. Don't know about others. The reason some distributions don't include Sun's Java implementation is because they don't want to include it.
If Java becomes free, I can imagine a lot of thing. Why not bindings with GTK for example They already exist. Check Java-GNOME. It includes GTK and GNOME bindings for Java.
There are also bindings for Qt and KDE.
You can also use GTK via the SWT toolkit .
Java is NOT a proprietary language (despite some ignorant people who say so), you can find many open source libraries for it, and there is at least a high quality free (as in speech) implementation of it.
My heart is pure, but make no mistake, it's pure evil
Monday: Open source Java
Tuesday: Forked
Thursday: Enormous whirling clusterfuck
Saturday: Start on new language
Business isn't willing to pay for products, innovation and careers, so we get brands, mortgage commercials and layoffs.
When you download java, you get the source files along with it. GPL is not the only license that makes something open source.
Actually, the source code you get is for the standard library, not the JVM source code. That one is a separate download.
My heart is pure, but make no mistake, it's pure evil
One thing Gosling neglects to mention is that it costs tens of thousands of dollars to get access to the test suite.
While compatibility is great, a major advantage of open source is the ability for people to make and distribute experimental changes (after all, new features often start out as experiments).
While anyone can get the source code to Sun's VM, there is concern that looking at the code taints you for life, unlike open source.
I think -- and I'm really serious -- Sun should probably be looking at open sourcing Java as a response to Mono, if for no other reason.
.Net environment themselves, from scratch. To me, that sounds like a fairly heavy indictment, and one that Sun should be looking into, if they're smart.
Miguel and Ximian took a look at Java and decided it didn't suit their needs, as far as developing rich desktop applications for Linux (e.g. Evolution). So rather than use Java, they decided it was actually better to implement the
Now you've got Mono humming right along, with the developers busy implementing two distinct stacks: One that's a Microsoft compatibility layer, for using all the stuff you might have written with Visual Studio, and another that's more Linux-oriented, with GNOME and GTK bindings, Linux printing architecture support, and so on -- the kind of things that people hope would come of an open-sourced Java.
If Sun doesn't care about this, they've got more problems than I realized.
Breakfast served all day!
Anyone is free to make their own implementation of a Java framework. There's an (outdated) list here of alternative implementations (and possibly more here as well).
For example, SableVM and Joeq are the first two that I found on Sourceforge (and there are several more).
So it's not really a question of "open sourcing Java" - because there are already open source implementations of Java (and a few commercial ones as well). It would be a question of Sun opening up their reference implementation of Java.
So the main advantage of opening up their reference implementation would be to focus the software community's efforts more on one Java implementation and to stop the fragmentation. People would still be free to develop their own Java compatible VM's & compilers, but it would provide less of an incentive for them to do that if there's one central, relatively community-oriented distribution.
Because it would be one hell of a Free software killer application. There's so many people using Java already, and Stallman's point against Java right now is that when writing code in Java (which many do simply because it's easy and beautiful to write in Java), you create dependencies to non-Free software making it practically impossible to run an entirely Free system using such dependent Free software.
Consider this: if Java were Free, it could easily be the world's most used piece of Free software (before you say Apache or something, let's say 'most used by private persons')
You might be a troll and I did bite, but it was just too good an opportunity to point out what Freeing Java could mean.
Yes, there be ports to other platforms (I'd love to see Java on *BSD). Yes, there'd be performance patches and probably security patches. But with this comes the down side to all open source projects: Fragmentation.
One of Javas goals is to provide compile-once-run-anywhere. At the moment, it does a decent job of doing this. Other platforms do this better (Read: Inferno) but Java is trying. With fragmentation, compile-once-run-anywhere disappears and would be impossible to bring back.
Let Sun has Solaris and Java. Stop trying to force them to open source their software. They already are the second largest contributor of open source software, the first being Berkeley.
Stallman is less open minded than Java is open source.
./configure.sh to see why Sun is so anal about this!
... so there's a bit of sour grapes.
OK, here's the deal with the Java source code: You can get it. You can modify it. You can redistribute it.
BUT...
It has to pass Sun's compatibility tests.
OK, so yes, I can see how an ideologue like RMS would lump Sun's Java implementation into the same category as closed-source software. But really, you do have quite a lot of freedom with Java. It's just that Sun (and the Java community, myself included) are very concerned about compability: cross-platform dependability is one of Java's must important features, and forking is a big concern. (Sun was already bitten once by Microsoft making an incompatible "Java" and basically wreaking havoc on the client Java market for years.) Just look at all the crap that goes into the typical C/C++ project's
Gosling explains this well in the article (for those who actually read it...).
On top of all that, Java != Sun's implementation of Java. Everything in Java is determined by a spec -- the language, the runtime, the libraries, everything. If Sun's requirement that you pass their test suite is too restrictive, just write your own damn implementation of the specs. Yes, I know that's a lot of work. Boo hoo hoo.
JessLeah is totally wrong on this point: the reason that the GNU Java projects are not "Java proper" is not that Sun didn't make them, but that they are immature and don't completely implement that Java spec. I think this may help explain why RMS is so sore (and unfair) on this point: GNU Java kind of sucks, even after many years of work, his "free software" baby isn't winning in the Java world, and nobody really cares except GNU
s/Java/Netscape/
I'm sure people said the same thing when the Mozilla project came to life -- and see where they're standing today. Of course things might go wrong -- but we, the Free Software community, can have an influence on that. And frankly, we don't really want "forks with incompatibilities" either. I don't really think that "the end of Java" is a possibility.
Except that it seems "Solaris maybe, especially if we can knock Red Hat, Java unlikely even though its creator gets it".
Sun need to keep a tight rein on the java name, and maybe the standard process. You want it to be called Java, you make it pass the test suite. That bit makes sense, although its hard to take too seriously given all the things out there like vnc java versiosn "patched to work with macos", "patched to work with ie5" etc.
What matters is that a JVM+class library called "Java" or "J2EE" etc behave in the defined way. Just as "Posix" and "LSB" matter. Implementation, reference code, no reason that can't be truely open.
In the Sun case the fact some of the interface specs are secret for tests for some of the extensions is not umm helpful. Imagine C++ programming where you had to sign an NDA to open a file 8)
Opening up a development process tends to bring more brains to the table, and that exposure, history has taught us, tends up to open the technology up in ways we had not imagined before.
Consider the flurry of activity surrounding Python after its internal reorganization around the time of version 1.6 -- modified license, python-dev list, PEP system, more lenience towards experimental and backwards-compatibility-breaking changes -- after which we have fantastic new language features, as well as strange, clever new techology such as Stackless Python, Pyrex, Psyco, PyPy etc.
Or, indeed, consider Linux. We all know what happened with that little insignificant grass-roots project. If Linux had been closed off around version 2.0, would we have an O(1) scheduler today, or configurable swappiness, or hyperthreading, or pre-emptible kernel?
Regardless of the quality of Sun's engineers, Sun's hold on the Java is constraining its growth. For example, what if I have a wild new idea to make the JVM's synchronization locks lightweight enough to have barely any overhead at all, thus improving the speed of applications? There's a large barrier to incorporating that kind of change. With something like Python you can grab the CVS sources and start hacking. Just the existence of such a point of entry is enough to inspire curious visitors.
Does Java need hacking? Sure. While my main point is that Sun possesses a finite number of brains -- what wonderful ideas and inventions aren't happening at Sun? -- there are specific areas that will benefit from the attention of outside hackers. JVM performance is still lacking, for one. The bytecode instruction set is still to specific to Java-the-language, as opposed to Java-the-platform, leaving potential other language platforms with much to desire.
Furthermore, anyone who has struggled with a bug in Sun's Java implementation knows that the process to get a bug fixed is often arduous, sometimes impossible. Last I checked there were serious problems reported years ago and not yet fixed.
Any language needs to develop in order to catch up with the times. With Java, it has been going rather slowly. With 1.5, Java is, in many ways, playing catch-up with C#. Other technologies spend much time in the pipeline before they are ratified and implemented. JDO took years. Support for "web services" is lacking, at best.
To me it seems that Sun does not have the resources to drive Java development. Witness Eclipse, which did what Sun never could do: produce a solid IDE. Eclipse is a multiplatform program, yet appears native on every platform it runs on; and supports a myriad of modern technologies, such as background compilation, refactoring, version control, remote file systems, and profiling; and is also a teeming breeding ground for experimental technology, such as AOP, fine-grained source-level version control, graphical editng, and quality control. Eclipse built this house in record time. To see what Sun did, over a considerably longer period of time, check out the ancient, outdated monster that that is Netbeans/Forte.
In summary, Java is better off in the hands of the community, not Sun alone.
When we say "Open Sourcing" why do we really mean "GPL"? Granted, the GPL has the advantage from Sun's point of view, as they get any changes back.
But Perl was released for the longest time under the Artistic licence, which (IIRC) allows derivitive works, but doesn't allow you to call them Perl. This could keep the one, true source of Java unsullied by broken or incompatible implementations yet gives everybody else the hope that when Sun tanks Java won't.
I think that there is exactly one person who thinks that Java should be GPLd.
As opposed to what other license? (L)GPL would probably be the best choice for Sun because it ensures that people cannot create proprietary forks (Microsoft anyone?). BSD or similar less freedom-guaranteeing licenses would be an awful choice. And if you think Java shouldn't be open source at all, well.. you're just an idiot. It's going to happen whether Sun wants it to or not. This whole discussion is only a question of whether they remain a player.
Two main things.
The generic any-language answer is that a pre-processor is awkward, fragile, and ugly. It's parsed, processed, and structured differently from the code -- it has different tokens and different semantics; it can lead to code that's a nightmare to maintain, and makes automatic source processing much harder.
And the Java-specific answer is that, as the parent says about 'goto', there are better ways to do any of the things you might want a preprocessor for:
- Probably the main one is to work around different compilers, OSs, architectures, and platforms. But Java is one platform; if you need to do something that different on each underlying OS or system, then you're doing something wrong!
-
Another reason is isolation of constants and other singletons (is that what you mean by your comment about 'login'?); but Java has better ways to handle these (class constants, static finals, singletons, &c).
-
A third reason is optimisation; but that's the sort of thing that a dynamic compiler can probably decide better than you can, especially given that your code may run on different JVMs with different characteristics. (Some 'optimisations' made to early Java code actually slow it down when run on more recent dynamic JVMs.)
-
A fourth is conditional compilation for assertions or other development aids; again, you can do this more neatly with a simple 'if' statement -- and a decent compiler or runtime will optimise it away when not used.
In short, there are no reasons for a preprocessor in Java, and lots of reasons against.Ceterum censeo subscriptionem esse delendam.
For an implementation to use the Java trademark, it must pass Sun's tests. The source is already "open" (easily available). Anybody can make changes and call it "Java", as long as it still passes the tests.
That sounds like "open source". We all want Java to retain its portability, so Sun requiring the tests is valid. The tests could be (and effectively are) under the control of the JCP, so that process is "open", although it is design by committee, which frightens me, but is the basic premise of the FSS community.
The issue is how to make Java free to redistribute. Under the current license, no JVM can be included in a totally free distribution. Is there some license that can protect the trademark and portability that allows free distribution? Can such a license be written that is acceptable to Sun?
Transfer the Java trademark to the JCP. Fund the JCP to protect it. Allow the JVM and all associated tchnologies to use the trademark if the tests score 100%. Allow free redistribution of certified code.
You could still modify your JVM for internal use, but you must recertify it if you want to distribute it. Is that close enough to the intent of the GPL to satisfy RMS? (No, they would not be using the GPL, but that should solve all real world issues without allowing Java to fragment.)
---
MS JVM:
Why do most people assign to malevolence what can easily be assigned to stupidity?
MS did not write a JVM that met the standards. In THIS case, they did it to add proprietary extensions to better allow virus and other integration with their OS.
But MS has a very lengthy record of not being able to write programs very well. Their original claim-to-fame was the BASIC interpreter that could not interpret the BASIC language. Their version became the standard we all learned to program in the early 80s, but they did not change it because they wanted to steal the market from all those other (nonexistent) BASIC interpreters; they changed it because they did not have the technical ability to write it correctly.
They have since won many software markets. I do not know of one case where the software they sold to capture the market was better than the current leader. The closest examples are when they leveraged MSWindows3 to capture the GUI market while making certain their competitors did not have the APIs to be able to write software for MSWindows3. Usually MS writes programs that work worse than the existing leader, then use their marketing and monopoly to conquer.
Every programmer will tell you that it is easier to write an application when there is already a working version. MS has repeated failed to match the existing functionality for their early releases.
Did MS change the JVM because they wanted to corrupt it? Or was it simply that they did not have the technical expertise to write it without corrupting it?
I spend my life entertaining my brain.
At present, anyone can build a clean-room implementation of the Java specs; if it passes Sun's compatibility suite, then you can call it 'Java' and do what you like with it. I'd say that's pretty open already.
What more could be done? Well, one thing is to open up the specification. Sun already accepts outside input to that, via the JCP; any further would probably mean dropping the compatibility requirements, and letting anyone call anything 'Java'. A Very Bad Move(tm)! We'd get lots of competing 'Java' platforms that were all incompatible with each other, no-one would know what to write for, and it would kill the language.
The other thing is for Sun to open-source their own particular implementation. That would have several good effects, e.g. much easier porting to other platforms, fixing of bugs, optimisation, &c -- but they'd have quite a job to ensure that the results still had to pass their compatibility suite. (Or, again, chaos would reign.)
One final thing: Java gets a very biased press on /. If you believed what you read here, you'd think no-one used it, that it had died a death, that it never ran beyond a crawl, and that it epitomised everything that was bad about closed standards in comparison to the wonderful openness of C#. But that's all rubbish. In the real world out there, it's about the highest-demand skill; it's behind a staggering amount of development in the corporate, commercial world; implementations have come an awful long way in the last few years; and the platform as a whole is far more open than C# will ever be. I think it merits a place on the 'Reports Of My Death Have Been Greatly Exaggerated' list, alongside BSD and Apple...
Ceterum censeo subscriptionem esse delendam.
Yes, there be ports to other platforms (I'd love to see Java on *BSD). Yes, there'd be performance patches and probably security patches. But with this comes the down side to all open source projects: Fragmentation.
Open Source fragmentation is a myth largely propagated a certain proprietary vendor's FUD campaign. Successful open source projects simply do not fork. Why? Because there's no interest and it's way too difficult with large scale software. There is one GNOME, one KDE, one Apache, one Linux kernel, one GNU Compiler Colection, one OpenOffice, etc. Similarly, an Open Source Java would be a large project with so much momentum that any unlikely attempts to fork would be rapidly ignored and wither away. Not to mention Sun would still hold the Java trademark..
One of Javas goals is to provide compile-once-run-anywhere. At the moment, it does a decent job of doing this. Other platforms do this better (Read: Inferno) but Java is trying. With fragmentation, compile-once-run-anywhere disappears and would be impossible to bring back.
Wrong again. Open Source developers are terrifically anal about sticking to standards. You don't see a dozen different C compilers each with a slightly different dialect do you? You don't see KHTML or Mozilla trying to extend web standards do you? Even more obvious: You don't see the existing clean-room Open Source Java projects deviating from Sun's specifications do you? -- and they're not even under legal obligation!! Fact is, an Open Source Java is the only way WORA can ever hope to fully live up to its promise. (btw, that's Write Once, not Compile.. minor correction) Three reasons: 1.) more ports 2.) better quality control 3.) less Java implementations floating about, whether proprietary or open.
Let Sun has Solaris and Java. Stop trying to force them to open source their software.
Nobody's trying to force Sun to do anything. They're simply asking because it would be mutually beneficial.
There are now 3 projects who will use the X windows standards, and I can tell you there will be fragmentation. Each will try to improve it somehow and bye bye compatibilty.
There may be one GNOME and one KDE, but each use a different GUI toolkit resulting in the same effect as fragmentation.
GCC has it's own extensions, as does the GNU C library. Same goes for gmake. You can't compile software that use these extensions on Solaris using native compilers. No, it would only hurt Sun and Java.Of course, you're assuming it will be forked.
KDE and GNOME have never been forked.
GCC was forked once, as egcs, and the forks were later rejoined. It was also forked because GCC had serious problems--the fork was rejoined when GCC was effectively halted and egcs became the new official GCC.
XFree86 was forked once, and only very recently. There was also a damn good reason to start a fork--this wasn't something done on a whim.
I support the Center for Consumer Freedom
"Open Source fragmentation is a myth largely propagated a certain proprietary vendor's FUD campaign"
:) I could see the same easily happening with Java; different bright folks wanting to take it in different directions, without a leader, ending up disagreeing too strongly and going it alone. Would Sun and IBM and Microsoft and Oracle and so on always agree on the next level to take Java to? I doubt that.
Yes. A certain vendor that did itself try to fork Java, and now has a competing product that is extremely similar to Java. If Java went GPL, this company would not hesitate to muck around with it, just because they can, and the company has a history of doing anything it can to 'win'.
"Successful open source projects simply do not fork."
Sometimes yes, sometimes no. I would not expect Java to fork in the classic sense of the word (except the version that one particular company would make), but look at Linux as a whole; multiple distros out there, by companies, by individuals, by governments. That kind of "forking" alone would make it more difficult for WORA with Java; it'd increase the amount of tweaking neccessary. Every distro tweaking the JVM a little differently than the others... code then running great on some and flakey on others... well, maybe that's already true. Why make it worse, though?
And what about BSD? I'd call that successful, and it has most definitely forked. Even its forks have forked. BSD is totally forked!
For the record, I'm undecided about the opening-up of Java. I like the language, and it's the one I use the most. I'm not as against the idea as I may sound in this post.
The Linux itself is fragmented across distros. Try taking a Red Hat binary to SuSE, there will be trouble.
This is an improper example. Try taking some C source and compile it on both RedHat and SuSE -- same results. Fragmentation would be if RedHat or SuSE modified the Linux kernel or supporting GNU software so much that code would need significantly re-written to work.
There are now 3 projects who will use the X windows standards, and I can tell you there will be fragmentation. Each will try to improve it somehow and bye bye compatibilty.
Not even close. Read this: http://www.xouvert.org/faq.html#2.1 It should be especially noted the strong emphasis on sticking to standards. There are many X11 implementations and they are very much compatible, though some are at different levels of specification advancement.
There may be one GNOME and one KDE, but each use a different GUI toolkit resulting in the same effect as fragmentation.
This is an example of diversity, not fragmentation of an original standard. Would you say that there should only be one programming language? I should hope not. Each has its advantages. It should be noted, of course, that there is a growing movement to harmonize GNOME and KDE, but that's another topic of discussion.
GCC has it's own extensions, as does the GNU C library. Same goes for gmake. You can't compile software that use these extensions on Solaris using native compilers.
It can be easily argued that the only reason C compilers have extensions like this is because there does not exist as active a standards body as say, W3C or SCP, to recommend changes before they are tried experimentally. There are also different ISO C versions. I believe some of the GNU C "extensions" are actually part of the C99 ISO spec. Solaris's native compilers may be using an older spec, but I'm not familiar. Also, you can use the -pedantic option with gcc and it will warn you of any code that uses extensions beyond C89. There is little to make me believe a similar scenario will exist with Open Source Java. The industry has learned since C/C++ the value of creating standards early and then sticking with them. As I said, Open Source developers tend not to deviate when solid standards exist. Java is a solid standard.
No, it would only hurt Sun and Java.
How much have GNU ClassPath and the various open JVM's hurt Sun and Java? And how much have they deviated from Java specifications? The answer to both is: not at all. If Sun relaxed licensing on code for their implementations, it would only serve to promote their own over the clean-room versions.
Yes. A certain vendor that did itself try to fork Java, and now has a competing product that is extremely similar to Java.
.NET and CLR. MS is really out of this picture. Oh, one more thing: they won't touch anything GPL with a ten foot pole because that would only further legitimize it to those on the fence.
What this proves is that it doesn't take Sun Open Sourcing their own implementation for a fork to occur! And yet, the existing Open Source implementations of "Java" are not forking from the spec.
If Java went GPL, this company would not hesitate to muck around with it, just because they can, and the company has a history of doing anything it can to 'win'.
How exactly could they muck around with a GPL (or similarly licensed) Sun Java to win? They couldn't release proprietary versions. They couldn't make changes without telling everyone. They couldn't completely fork the code and still call it Java (Sun trademark). And they don't even need Java anymore since they have
Sometimes yes, sometimes no. I would not expect Java to fork in the classic sense of the word (except the version that one particular company would make), but look at Linux as a whole; multiple distros out there, by companies, by individuals, by governments. That kind of "forking" alone would make it more difficult for WORA with Java; it'd increase the amount of tweaking neccessary. Every distro tweaking the JVM a little differently than the others... code then running great on some and flakey on others...
Linux distros are not a proper comparison because they are a conglomeration of very diverse software. Here, we're only about talking the JVM and a set of libraries. There's no incentive to fork and any 'tweaking' would only be within the implementation of the specs. With Sun still holding the trademark, they would still be the sole source of endorsement. So "Bob's J*** Derivative" could fork and tweak to heck and back, but typically only experimenters would use it. And if they came up with something really great that SCP approved of.. cool! roll it back into the official codebase that normal people use.
well, maybe that's already true. Why make it worse, though?
Because there's virtually nothing to lose and a lot to potentially gain.
I could see the same easily happening with Java; different bright folks wanting to take it in different directions, without a leader, ending up disagreeing too strongly and going it alone. Would Sun and IBM and Microsoft and Oracle and so on always agree on the next level to take Java to? I doubt that.
Sun would still be a strong leader, even if they Open Sourced their implementations. Weak leadership or poor quality is what encourages forks. As for IBM and Oracle contributing, that's what the SCP is for. It works and is well established. Why would anyone want to diverge? All that would do is make them look bad.
For the record, I'm undecided about the opening-up of Java.
Java is already being opened-up. (http://www.kaffe.org/links.shtml) It's just a matter of how long that takes. If Sun helped out, it would happen a lot sooner and dramatically increase their influence over the whole 'open Java' scene.
Let me.
.NET. In a year or so parrot will come out of beta and preliminary results show that it will be faster then the JVM. If parrot fulfills it's promise (and there is no reason to think that it won't) you'll get all the advantages of the JVM while being able to use perl or python.
.NET/mono. Right now they are simply pretending that there is no threat and they can go along like they always have.
It would help propagate java further by having it included by default in every single linux distribution.
The OSScommunity could fix some of the long standing bugs in teh JVM. The bug parade also include tons of feature requests which although very popular are not important to sun. If Java was open sourced these feature requests would be implemented and make java a better platform.
They could save money that they spending on java development now.
Last but not least. It would prevent java from becoming another cobol. Java is facing heavy competition from
Parrot has the potential to be a very disruptive development for java. Sun needs to be proactive about defending against it and
evil is as evil does