Simon Phipps on the Process of Opening Java 152
twofish writes "Simon Phipps, the chief open-source officer
at Sun Microsystems, has reaffirmed Sun's
commitment to Open Source in an interview
with computerworld.
The focus of the interview is Simon's efforts to fully open source Java.
He points out that many problems need to be resolved before
Java can be open sourced — ownership, legal, access, encumbrances and relationships
with Java licensees. It took Sun a full five years to solve these issues with
Solaris. However Simon predicts that it won't take anything near this amount
of time to complete the task with Java.
Of course, one of the other concerns for OS Java is the resulting incompatible
versions and breaking of the Java WORA
model (Gosling himself has always been particularly concerned about incompatible
forks resulting in the introduction of an open source version of Java) and this opens
up additional problems for the open source Java model."
Incompatible Java forks (Score:5, Insightful)
Exactly (Score:5, Insightful)
I can understand Sun's fear as Java has been a huge part of their business, but I think as long as they keep pushing the standard forward forks will be irrelevant.
Re:Exactly (Score:3, Informative)
Re:Exactly (Score:4, Informative)
You're somewhat misinformed. Sun's implementation has never been a basis for determining what's "standard". That's because Sun's implementation, like every other Java implementation (and there are quite a few [dwheeler.com]) is required to adhere to a written specification [sun.com].
People (including everybody at Sun) often say "Java" when they mean "Sun's Java implementation". That can be misleading. When you talk about "open sourcing Java" you're really talking about open sourcing a particular implementation of Java.
Re:Exactly (Score:2)
People (including everybody at Sun) often say "Java" when they mean "Sun's Java implementation". That can be misleading. When you talk about "open sourcing Java" you're really talking about open sourcing a particular implementation of Java.
I agree with that.
And that is my problem with Open-sourcing Java.
There are many Open-Source Java projects out there. GNU and Apache each have their own.
So why is everyone clamouring for Sun's implementation? I believe the problem is that we haven't found a suitable
Re:Exactly (Score:2)
As with any OS project owner, Sun has the option of not using submitted changes. And I have no doubt they will reject many.
The big danger to this Java implementation is that Sun is losing money hand over fist. If they can't afford to pay people to work on the JDK, that project is dead, whether its OS or not. No doubt Sun is hoping that they'll get some free development effort in exchange for opening up the JDK. But if the JDK dies for lack of work, it will be because Sun doesn't have the money to hire pro
Re:Exactly (Score:2)
http://www.gnu.org/philosophy/java-trap.html [gnu.org]
Re:Exactly (Score:2)
Re:Exactly (Score:2)
wrong (Score:2)
What you're pointing at as a "written specification" of "Java" is a book on the Java language. Standardizing the Java language isn't the problem, standardizing the libraries is. There are specifications for the Java libraries. Conformance of new implementations is checked via a test suite. As far as I know, no implementation besides Sun's and its license
Re:wrong (Score:2)
That's a popular method. (Score:5, Insightful)
If the process is followed - hey, that's great, but is needs to be done right if it is to be worth the doing.
Re:That's a popular method. (Score:2)
Re:Incompatible Java forks (Score:4, Insightful)
Re:Incompatible Java forks (Score:2)
sure, which is only slightly different from the current truth: "write once, debug everywhere"
Re:Incompatible Java forks (Score:3, Interesting)
sure, which is only slightly different from the current truth: "write once, debug everywhere"
It's not that I disbelieve you, but could you give me examples where you've needed to do something platform specific with code written for J2SE or J2EE? I have written several very large Java apps (both standalone and web applications) but never had issues with running the resulting code on different platforms. Heck, the last system I worked on ran out of the box on Solaris, Windows, Linux and NetBSD. The only t
Re:Incompatible Java forks (Score:2)
Cheers
Rich.
Re:Incompatible Java forks (Score:2)
One could make the same argument about developers who complain about having to recompile their applications for each platform. WORA is entirely about saving work. True WORA would mean the testing on any platform would be exactly the same as testing on them all. So those "lazy" developers are really complaining about Sun's exaggerated claims about Java.
Re:Incompatible Java forks (Score:2)
Re:Incompatible Java forks (Score:2)
If it were true WORA, you would only have to test on one platform, because since it's running on a virtual machine, o
Re:Incompatible Java forks (Score:2)
Re:Incompatible Java forks (Score:2)
No, it isn't. It's perfect logic. "Anywhere" means anywhere. It doesn't mean almost anywhere. When we mean that, we say almost anywhere. See how that works
If it's not 100%, then it's a lie. Plain and simple. I don't think anyone really expected it to be true, but that doesn't make it any less of a lie. It only reduces the impact.
Project DOPE and CORBARF (Score:2)
Sun has a long track record of making promises they couldn't keep.
That's why Sun had to rename Project DOE (Distributed Objects Everywhere) to Project DOPE (Distributed Objects Practically Everywhere)!
-Don
Re:Incompatible Java forks (Score:4, Insightful)
Which of these two scenarios do you think is most likely to cause that situation?
It seems fairly obvious to me that forcing people to create another Java implementation instead of letting them use the "canonical version" as they wish is far more likely to bring about another J++ situation.
Re:Incompatible Java forks (Score:3, Insightful)
But they can't call it Java, as that's a trademark owned by Sun, and so merely have a runtime that's nominally compatible with Java.
In that situation there is a danger that people will start using it in preference to the real Java, as "it's practically the same, only better (in $ways)", but then that's a danger posed by
Re:Incompatible Java forks (Score:2, Interesting)
If J++ were created with an GPL-like opensouced java, it would be easy to port J++ to run in linux and firefox, which was the whole point of making J++ incompatible.
It's not Microsoft trying to kill java like with J++. They want their java to continue being theirs. They dont want to give it away.
Re:Incompatible Java forks (Score:2)
Which is exactly what Sun already does with the Java Compatibility Kit [sun.com]. There are, in fact, a fair number of third-party Java implementations that are released on this basis. And one famous lawsuit was filed agains a certain company [uakom.sk] that released an incompatible version of Java.
However, there have always been issues with the JCK, with claims that it is too complicated and inconsistent. Also, once everybody has access to the Java Development Kit source, you can expect to see a lot of forks. Enforcing compa
Re:Incompatible Java forks (Score:3, Insightful)
Re:Incompatible Java forks (Score:2)
So hold onto the trademark, the same way the Mozilla foundation do, and only let implementations that pass a rigorous testsuite use it.
Sure, then what you are asking for is a battle of trademarks.
MS forks and names its product 'J++'. They keep it just compatible enough that it segments the Java development community. This isn't far-fetched since that's what they were doing with the original J++.
Now good luck going against Microsoft, who has more money in the bank than many 'developed' nations and ha
Re:Incompatible Java forks (Score:2, Troll)
J++ didn't segment the Java development community, if it had been allowed to continue it would have brought Windows developers in the Java world. Instead Sun sued MS and doomed Java to the minor leagues of desktop development.
Re:Incompatible Java forks (Score:2)
- www.x86abi.org
Java already breaks the WORA model (Score:3, Insightful)
What a mess! I can't really see how opening it up will make it any worse than it already is today.
Re:Java already breaks the WORA model (Score:5, Insightful)
Usually this is because they have some old version of Microsoft's Java Runtime installed, which only supports Java 1.1 (badly). What a mess! I can't really see how opening it up will make it any worse than it already is today.
Okay so MS broke the law and released an intentionally broken JVM to try and kill Java as a dev platform. The courts stopped them, but you're still dealing with the mess with a few remaining legacy systems from that time. You don't see how giving MS an opportunity to bundle a new broken version on every computer sold in the world could make things worse?
Re:Java already breaks the WORA model (Score:2, Informative)
Re:Java already breaks the WORA model (Score:2)
No, no. That was the fastest one. That was also the buggiest one.
Re:Java already breaks the WORA model (Score:2)
Re:Java already breaks the WORA model (Score:2)
If someone is already willing to break the law to get what they want, making new laws probably won't stop them either.
The law acts, but very slowly especially when big money is involved. In this case MS was stopped after most of the damage was done. Changing the licensing may give them an opportunity to do it again. With the current licensing, the courts have already spoken and doing it would result in immediate punishment for violating the court order.
Re:Java already breaks the WORA model (Score:2)
Oh, sorry I didn't realise you get an immediate punishment if you violate a court order. You mean like the immediate punishment that Microsoft gets when they break agreements made under the Anti Trust ruling?
If Microsoft wanted to mess up Java again, they are powerful enough to do that whether the courts like it or not. Open Source or not Open Source, it makes no difference (as long as they retain
Re:Java already breaks the WORA model (Score:2)
This makes no sense. Sun retains the trademark, and control of the standards, which is precisely why Microsoft can't mess up Java.
Personally I think Java is already badly enough messed up that Microsoft no longer need to be afraid of it.
Microsoft are definitely af
I think they mean the "WODE" model. (Score:2, Funny)
Re:Java already breaks the WORA model (Score:3, Interesting)
MS broke the WORA model (Score:3, Insightful)
J++ wasn't java. Byte code from J++ included new non-optional instructions, violated the specification, and thus could not run on any VM but Microsoft's. Microsoft's VM did not support 1.1 features for handling native code. How would Sun have benefited from a non-java VM pretending to be java?
Re:Java already breaks the WORA model (Score:3, Interesting)
The majority of "interesting" Java applications I've seen were restricted to a single platform for various reasons, mostly because they apparently (somehow) were making platform-specific system calls. (I don't know the exact details of this, all I DO know is that there are plenty of Java applications out there that are restricted to a single platform for whatever reason. I may be wrong about the reasons, but the fact is that WORA failed on the
Re:Java already breaks the WORA model (Score:2)
Are you sure that it's a pure Java application or do these applications make calls to native code of some sort? If they are calling an OS specific resource, the problem is in the development. We could throw in that the developer had some reason that forc
Re:Java already breaks the WORA model (Score:5, Interesting)
A good example of a portable J2ME app is opera mini which exists in only two variants the both of which work across pretty much all java capable phones except maybe for the really crappy ones, such as your Palm based one (blame Palm, not Sun). J2ME is a modular specification which unfortunately leads to the interesting situation that the more of the modules your app uses the less portable it becomes. Pretty much all of the modules are optional and with MIDP 1.0 many vendors added loads of vendor specific APIs as well. Many applications written for that mixed bag of standard and non standard extensions are not portable.
MIDP 2.0 mostly removes the need for vendor specific APIs (though many vendors still ship them). Upcoming MIDP 3.0 is even better apparently. of course many games need to make assumptions about device specifics (e.g. screen size, number of colours, keyboard layout) which unfortunately leads to many portability issues. These problems are hard to solve and currently J2ME seems the best solution the market has come up with. Most device specific binaries of J2ME apps merely include some minor modifications, optimizations and packaging. I agree that testing for all that is a major PITA for developers. If you have a better solution that works for non trivial applications across the thousands of different brands and types of mobile phones, get some venture capital and get rich!
Re:Java already breaks the WORA model (Score:2)
Re:Java already breaks the WORA model (Score:2, Informative)
Re:Java already breaks the WORA model (Score:2)
Then again, that's why you have the static method getByInetAddress().
If you don't know the IP address you want, you "can use getNetworkInterfaces()+getInetAddresses() to obtain all IP addresses for this node." (Quoted because it's in the Javadoc for getNetworkInterfaces().)
It's a moot point. If you're messing with NetworkInterfaces, the end user should know which one they want, or you should ask them which NetworkInterface you want it to bind to during some sort of first time initializ
Not always (Score:2)
So, it's possible. You just have to work at it.
(not representing the company, just a happy customer)
Re:Java already breaks the WORA model (Score:5, Informative)
In 6 or so years of doing server-side Java development, I have never needed to do that, nor have I ever heard of anyone needing to do so. I humbly suggest that if someone does find themselves needing to do so, they've done something very wrong.
Re:Java already breaks the WORA model (Score:3, Insightful)
Re:Java already breaks the WORA model (Score:2)
Tell me about it!
I have a Windows program on my webserver and half the mails I get are because the program doesn't work on people's computer. Usually th
Re:Java already breaks the WORA model (Score:5, Insightful)
What a mess! I can't really see how opening it up will make it any worse than it already is today.
Guess what! I have some Linux software that won't run on the 1.0.x kernel or with really early versions of libc. By the same reasoning this must surely mean that Linux is broken and you can't write the same code for different platforms.
Of course this is nonsense, and isn't what WORA is about, and certainly shouldn't have been rated 'insightful'. WORA does not include some kind of time machine facility to allow software written to current VM and language and library specifications to work on 10-year old VMs and old libraries. The idea is, of course, that if you write for Java 1.4.2, your software will run on any Java 1.4.2 VM (or later) on any platform.
Quit the talking (Score:4, Interesting)
Other Open Source languages don't seem to suffer (Score:5, Insightful)
etc.), and they don't seem to have a problem with forking or
compatibility.
If Sun fosters a good development community, there shouldn't be a
problem.
Re:Other Open Source languages don't seem to suffe (Score:3, Insightful)
And it's naive to think that python or Perl are good examples. There was such huge energy behind Java in the commercial world that Microsoft made a clone. You better believe J++ would come back again if Sun gave a half a chance for it to sneak back in.
Re:Other Open Source languages don't seem to suffe (Score:2)
I have. The only imcompabilities I encountered were the obvious ones (executables being marked by filename ~= ".*\.exe$" instead of an attribute and very slow fork(), e.g.). Other than that, perl does a far better job at it than Java ever has at being crossplatform.
Of course, Java is a big mess of a language. The only good thing to say about Java is that it is an improvement over Fortran. In some ways, anyway :).
How long has Perl6 been in development? (Score:3, Insightful)
There are many open source programming languages already (perl, python, etc.), and they don't seem to have a problem with forking or compatibility.
And how long has Perl6 been in development?
Sure there hasn't been a fork. That's because there aren't enough resources to development even the main branch!
Perl, Python are large scale under-funded open-source projects and thus highlight what I believe to be one of the main reasons not to open-source Java just now.
We haven't answered the question of who will
Re:How long has Perl 6 been in development? (Score:2, Insightful)
Perl 6 has had five or six funded man-years of development. By my estimation, Microsoft developers spend as much time on-clock reading e-mail in a week.
Re:Other Open Source languages don't seem to suffe (Score:2)
etc.), and they don't seem to have a problem with forking or
compatibility.
They certainly do. Perl 6 will have incompatibilities with Perl 5. Future versions of Python and Ruby are certainly likely to not be backward compatible in many ways. There may be good reasons - not guaranteeing compatibility can allow a language to evolve faster, but to claim that there are no problems with compatibility is simply wrong.
JavaPosse discussion (Score:4, Informative)
Re:JavaPosse discussion (Score:2)
Can't argue with that line of reasoning!
Bizarro version (Score:4, Funny)
Solaris - solved? (Score:5, Insightful)
Solved? We should be so lucky. Things are far from solved. If Sun had released Solaris under the GPL, that would be good and done. Instead, it's under their own CDDL, which isn't easily compatible with the far-more-common GPL. This leads to issues for interesting projects like GNU/Solaris [gnusolaris.org] (Nexenta), which should have been quickly welcomed by the Open Source community. Instead, Sun's choice of the CDDL makes things complicated where they shouldn't be.
So, in short, I would not say that Sun 'solved' these 'problems' with Solaris, and I sincerely hope they do a better job with Java.
Re:Solaris - solved? (Score:2)
Compatible with GPL == Relicensed under GPL.
It's the GPL that is incompatible with any other license.
Re:Solaris - solved? (Score:2)
Re:Solaris - solved? (Score:3, Insightful)
Sun solved "their" problems. I highly doubt they to
Re:Solaris - solved? (Score:4, Insightful)
I guess they weren't, since they didn't. And this is certainly a problem for the Open Source community. But this is also a problem for *Sun*, I would argue. What are the chances of OpenSolaris taking off, if the vast majority of the Open Source community can't use its code with the code they are used to? They can't improve OpenSolaris as they would like, and vice versa.
The whole CDDL issue seems to be an attempt to challenge Linux. Perhaps they envision a 'two-power' future for Open Source, where there is the GNU/Linux camp, under the GPL, and the Solaris camp, under the CDDL, and no code shall pass between them. This sounds a bit like the cold war to me (but maybe I'm just too old and/or senile, and mixing my metaphors).
To get back to the point, Sun open-sourced Solaris at a time when there was already a large and fruitful Open Source community. They chose not to play nice with that community, and seem to want to start a new base of power. If this is their 'solution', I'm not sure what the problem was. I find it hard to envision a promising future for OpenSolaris under current conditions.
open java equals forks for major vendors (Score:2, Insightful)
Re:open java equals forks for major vendors (Score:3, Informative)
lots of folks have considered creating a full fledged java environment. they end up taking sun's and tweaking it. a full blown jvm is just plain hard to do. the gnu folks have been trying it for eons now
Processes (Score:2)
Chief Open Source Officer? (Score:3, Interesting)
Please.... someone, tell me why there needs to be an "officer"--much less a "cheif"--within a corporate environment. Aside from convention, what practical use would such a high paying position render? Management? Bah, the realities of management... is a given with shuttles exploding on international television and multi-billion dollar corporations such as Enron, to the everyday corporate life of meaningless and unproductive meetings setting deadlines, project goals and planning... it's all crap, and never useful.
But, even if it's "management"... it's interesting that a corporation would feel the need for such heirarchy to "manage" any aspect of a system which itself, has no such structure.
Honestly (Score:2, Insightful)
Open Source Java would be nice because you'd never rea
WORA (Score:2)
There is no WORA (Score:2)
Excuse me? Where does the interview mention WORA? It doesn't, because WORA has been dead for years. And it was never more than an advertising slogan.
The word you want is "compatibility", which is an issue with Java, as it is with every other language or platform.
Who will fund future development? (Score:4, Insightful)
My main concern with Java being Open-Sourced is that Sun may lose its incentive to continue funding Java development.
Java is not Python nor Perl. Even then, how long has Perl6 been in development? "It's ready when it's ready" is not good enough to much of the corporate world.
People asking for Java to be open-sourced believe that this will increase the amount of resources put into Java. I'm not so sure.
Re:Who will fund future development? (Score:2)
They either get the first version that is grossly inadequate, or they wait till the real version is finally released (after being delayed 4-5 times)
The time frame is the same, the facts are just spun a bit differently.
Re:Who will fund future development? (Score:2, Interesting)
The corporate world can deal with it, or it can fund development. As a multi-year volunteer on Perl 6 design and implementation, I can proudly say that the corporate world's opinion doesn't matter unless it's willing to do something about it.
Misleading (Score:2)
Java is an open standard, anyone can go and implement his own pet implementation of Java, except that but for few major sharks (SUN, IBM, BEA...) no ne has quite been able to get a production quality implementation out of the door!
So why is everyone after SUN's goat ? SUN's JDK/JRE are just damn ONE of the many implementations of Java that exist. Where is
I've already opened Java (Score:3, Funny)
I've already opened Java
And I can tell you the lid reads "WARNING: HOT CONTENTS"
Re:As a web app developer... (Score:2)
Re:As a web app developer... (Score:4, Insightful)
Re:As a web app developer... (Score:5, Funny)
Re:As a web app developer... (Score:3, Insightful)
If you are serious, seek help.
Re:As a web app developer... (Score:2)
Re:As a web app developer... (Score:2)
I'm in it for the glory.
Re:Someone has to say it (Score:5, Informative)
Naw. Here's the real deal, from someone who knows quite a few languages:
- Java is adequate for just about every programming task
- Java's generics are mostly adequate
- Java's GUI support is good once you let Swing twist your head into a fleshy knot
- Java's library support is above average
- Java's floating-point performance is quite good, especially with HotSpot
- The HotSpot runtime is freakin' amazing at what it does
- The Java language is wordy, which mostly has to do with strict typing (and lately, from adding generics)
- Server-side Java (JSPs, servlets, etc.) is unnecessarily complicated and probably designed by Satan himself
Hope that helps.
Re:Someone has to say it (Score:2)
I'm no huge fan of JSPs, and the multitude of Java web frameworks is definitely ugly.
However, I'm curious about your beef with servlets. From my own perspective, they're simple enough to work with easily yet complex/powerful enough to handle a lot of uses. Do you have a specific gripe about them? Or did you just lump them in with the others?
Re:Someone has to say it (Score:2)
I like servlets themselves just fine. They're a great idea. It's the servlet containers I think are designed by Satan.
Re:Someone has to say it (Score:2)
Re:Someone has to say it (Score:2)
Java works. Python is fun.
Re:Someone has to say it (Score:2)
I'd love to have a language that's as easy and fun as Python and not much slower than Java. I'd be in heaven.
Re:Someone has to say it (Score:2)
(Disclaimer: I only know what it is, not whether it's any good)
Re:Someone has to say it (Score:2)
As a working language, I'd agree with parent -- Java is adequate. But as a teaching language, it's great. I'm all for keeping Java out of the workplace (Why is it there in the first place?!) but keeping it in colleges, where it can do no harm, and encourage millions of aspiring undergrads to write object-oriented code.
Or, they could just learn in Ruby. Yea. Ignore the above.
Re: Someone has to say it (Score:3, Interesting)
Re: Someone has to say it (Score:4, Interesting)
Java 1.5 made the language a LOT nicer and more expressive.
Re:Someone has to say it (Score:2)
Or herself!!
Gosh... sexist pig! Typical slashdotter
Re:Someone has to say it (Score:2)
Except perl's, python's and C's are about a thousand times as good. Which says a lot about your understanding of 'above average'.
Look, you can get anything in a C library. What you can't get it in is libc - the standard, comes-with-the-compiler-so-everybody's-got-it library. Compare the standard library of Java to the standard library of C or perl, and I think you'll see his point.
Re:Someone has to say it (Score:2)
If you have any feedback on what you'd want a PDF library to do, and how you'd want it to behave, I'd be interested to hear it.
Re:It's too late.. (Score:2)