OSI president asks Sun to opensource Java

Okay,

So what does it MEAN to “open source Java”?

Are you talking about making the specs for the VM and standard libraries available? If so then, as Cas has pointed out, they already are.

Are you talking about making the source for Hotspot available for viewing? Again under SCSL it already is.

Are you talking about making the definition of the language open to the community? Again, it already is through the JCP process. We have no special powers there.

Are you talking about allowing anyone to copy Hotspot code and use it in their own products for free? Why should Sun be required to do so? Hotspot is our implementation that we have spent a lot of effort, time and money on developing. We DO make it available for license to any and all comers (which I believe is more then IBM does with theirs) but why should we be required to just give away code that costs us a LOT of money yearly to develop??

So what is it you are actually calling for and why??

What Open Source means to those who advocate it strongly (and I’m not one of them - not by a long shot) means that the source to the product is not controlled my any one party. Anyone can commit something to an open source product at will. Any corporation can take that open specification and implement it entirely differently (like in Cobol) and the result would still be the same. What most OS advocates don’t like about the situation is that they see Sun as an impedement to progress because they cannot fix bugs and commit patches to the tree. Irregardless of the quality of updates to the tree, having that ‘right’ is fundamental in the view of open source. Its not JUST having the ability to see the source, its also having the ability to change it. The linux kernel is an example of this. It isn’t controlled by any one party. Anyone here can submit a patch or source code to it. The GTG core APIs are (mostly) another example of it. We can change the code on a whim and commit it to the tree to fix or change anything we want to. That’s the spirit of open source. When properly managed it is incredibly useful and powerful. Many good commercial quality products have come from that. What we’re talking about WRT Java is what Microsoft calls ‘shared source’. You can see the source, and you can tell them about problems but you cannot branch that tree nor can submit changes to a central repository.

[quote]What most OS advocates don’t like about the situation is that they see Sun as an impedement to progress because they cannot fix bugs and commit patches to the tree.
[/quote]
Okay but it doesnt answer my question. Are you saying "Java’ or are you saying “Sun’s implementation of Java.” If youa re talkign code then you are talkign an implementation. There are plenty of other closed implementatosn of Java around, why is there a moral necessity on Sun and not on any other implementation (eg IBM).

Pardon me, but it seems pretty hyopcrtical to say that ONE vendor should make their code available to all comers but that others don’t have to.

True although ultimately who ever is in charge of release gets to decide what is actually included in that release and what falls by the wayside. AFAIK thats true of most if not all OS projects so there still IS a single poitn of control over the ultimate code base.

Again thats not Java, thats Hotspot. One particular implementation of Java.

AT Sun we’ve long believed in open standards. Java is one exampel of sucha standard. The specs are al lavailable. You are free to develop an open implementation. Sun has even put money aside to help open implementors of Java APIs with the costs of validating their implementations. (Obviously we can’t fund everyones, it isa competitive grant situation. But i have yet to see anyone else who develops Java APIs commercially do the same…)

Because the standard WAS deemed important the one thing an implementation cannot do is call itself Java until it has passed validation. I think thats a pretty reasonable limit though I do wish we could find ways to bring the costs of validation down.

rant on

I have to be honest. I see people who rip off others code illegally as ntohign less then theives. And as a corollary I see people who try to argue that there is an Open Source Moral Imperative for others to GIVE their code away as con-men.

Open Source AFAIAC is not about brow beating others to give you their value. Its about the moral belief that drives you to donate your OWN value to the community.

IME The most vociferous supportes of Open Sourcing OTHER peoples code seem to be people who have never given anything of their own away. If you believe in open source, IMO, you should be out there CREATING open source materails, not trying to wrest existing closed source away from those who own it.

<<< rant off

[quote]Are you talking about allowing anyone to copy Hotspot code and use it in their own products for free? Why should Sun be required to do so? Hotspot is our implementation that we have spent a lot of effort, time and money on developing. We DO make it available for license to any and all comers (which I believe is more then IBM does with theirs) but why should we be required to just give away code that costs us a LOT of money yearly to develop??

So what is it you are actually calling for and why??
[/quote]
I’m talking about a license change of Sun’s JRE and SDK to make it an Open Source compatible license. (IBM could do this as well.) That said, no one (including Sun) is required to make their products Open Source. Of course Sun has invested a lot of money in their Java implementation, but they have invested a lot of money in the specifications, the JCP, … as well. What we try to discuss here is, if it has advantages for Sun, developers and users (these are different points of view!) to open source Sun’s implementation. Maybe they can use it to cut down their costs, fix issues faster and address the needs of the developers and users more directly (other benefits were mentioned before in this thread). Sun does a great job and is already very “open” in many aspects, so why shouldn’t they go one step further and make their implementation Open Source?

Sun said that everyone can do the job and create an Open Source implementation of Java. There are some reasons why this doesn’t work very good currently:

[] it’s very hard and becomes harder with every new release
[
] it’s not obvious for everyone, if it’s legal or not (the readers of this thread now know that it is legal)
[] people have almost no chance to be creative and implement their own ideas, because they are bound to the Java specification
[
] implementations already exist, it’s just a matter of reproducing code (a strong argument, if people work in their free time)
[] I was unable to find out how the validation process works exactly (for instance the costs). Generally it’s very hard to find out how things work in Sun and what their official opinions are.
[
] there is currently no united effort to create a free Java implementation, instead there are/were different efforts
[] there are currently no large companies sponsoring this effort
[
] If Sun/IBM makes their Java implementation licenses Open Source compatible, you have done all the work for almost nothing.

All in all it’s much harder for others to create an Open Source Java implementation, than it is for Sun/IBM to change their license (and the resulting consequences). This doesn’t give anyone the right to force a license change, but we can ask Sun politely (or less politely like Eric Raymond).

This is an interesting point. The world’s perception of Java is that it “belongs” to Sun (legally speaking, this is correct - and it’s what many people like myself want; a single powerful owner), including all the knock-on effects, such as most people seeming to take Sun’s JVM implementations as “reference implementations” with the authority of an implicit standard. I believe that many os-advocates want to see this “ref impl” open sourced; many many many people refuse to use non-Sun JVM’s. This is true even in some corporates, where the Sun JVM’s are mandated (as part of the internal standardization efforts). There is a logic to this - they are produced by the language’s owner - but Sun doesn’t (AFAICS) invest the huge amount of money that would be needed to make them genuine ref impls (i.e. it costs a LOT of testing effort to do that properly) - and it wouldn’t be worth it, either to Sun or to most developers. So, AFAICS Sun’s JVM’s have more meaning than Sun has put into them just because of the beliefs and expectations of the general public. I don’t think it should be like this, but it goes some way to explaining people’s otherwise weird (as you point out) concentration on Sun w.r.t open source.

Agree entirely; lots of people don’t see it as a landscape of vendors though - they see it as another Microsoft, where one company makes the “official” version and others make cheap rip-offs. In their perception what they are saying is not hypocritical. Sadly, to a certain extent, merely because of the number of people who share this perception, there is some validity in their belief (the insane man is not the one who is wrong, he’s the one whose version of reality the majority disagrees with…).

PS sun wasn’t always good at this process; I remember them causing lots of antipathy in the mid to late 90’s where the processes (e.g. JCP etc) were far more restrictive, where it was really difficult to have any input to java, or get access to key data / source etc unless you were a particularly rich corporation, etc. Sun fixed all of these problems as far as I’m aware - but getting close to a decade later there are still many who remember what it was like and gave up hope of Sun improving, so haven’t even checked to see if things have changed. It’s always a major problem with anything you promote to a general public - if you don’t correct mistakes rapidly enough, it can take many many years for your reputation to recover (e.g. think how many college professors probably still report an inaccurate picture to their students each year? These were among the earliest adoptes and critics of flaws in java, but many academics are poor at keeping up to date with changes in the business world. I’ve seen many slides and webpages on the web that are critical of Java which were correct but are now 4-8 years out of date, and many don’t have a datestamp, so you only know that if you know java very well!)

[quote][*] people have almost no chance to be creative and implement their own ideas, because they are bound to the Java specification
[/quote]
That doesn’t stop anyone from implementing their own ideas. It only stopps them from making incompatible versions of JAva. I see that as a good thing. There is nothing that stops someone from distributing something like JOGL for instance with their Java distribution.

[quote][*] I was unable to find out how the validation process works exactly (for instance the costs). Generally it’s very hard to find out how things work in Sun and what their official opinions are.
[/quote]
Excellent point - Sun needs to make this information easier to get at.

[quote][*] there is currently no united effort to create a free Java implementation, instead there are/were different efforts
[/quote]
I thought GNU was working to make the Open Source Java implementation. i don’t know why everyone advocating that Sun make their version Open Source doesn’t just help GNU finish what they’ve start and be done with it.

[quote][*] there are currently no large companies sponsoring this effort
[/quote]
Maybe because it is simply cheaper for them to license the code from Sun?

[quote]All in all it’s much harder for others to create an Open Source Java implementation, than it is for Sun/IBM to change their license
[/quote]
Well of course. But there is nothing stopping anyone from making an Open Source java implementation other than the actual work. It seems the Open Source advocates just want Sun to hand them more free stuff. Why do they think it is reasonable to simply ask a company to give up their IP and eliminate any income they get from licensing? I recall that I haven’t paid a single penny for Java SDKs, JREs, IDEs, etc… I don’t think it is reasonable at all to ask (demand?) that I get more stuff for nothing.

[quote]why is there a moral necessity on Sun and not on any other implementation (eg IBM).
[/quote]
I just thought I would bring up the point that IBM and likely almost everyone else has licensed Sun’s code to make ‘their’ implementation.
I assume that such a license does not allow them to Open Source their implementation because it would still amount to violating the license on Sun’s code.

[quote]That doesn’t stop anyone from implementing their own ideas. It only stopps them from making incompatible versions of JAva. I see that as a good thing. There is nothing that stops someone from distributing something like JOGL for instance with their Java distribution.
[/quote]
Of course this is a good thing. This was just from a developer’s point of view (and I should have make this explicit). Usually Open Source developers want to realize their own ideas and there is only a limited motivation, if they know they can’t do anything new. Motivation is important in Open Source projects.

[quote]I thought GNU was working to make the Open Source Java implementation. i don’t know why everyone advocating that Sun make their version Open Source doesn’t just help GNU finish what they’ve start and be done with it.
[/quote]
GNU works on an implementation, but they are not the only ones. There’s also classpath, kaffe, wonka and probably more.

[quote]Well of course. But there is nothing stopping anyone from making an Open Source java implementation other than the actual work. It seems the Open Source advocates just want Sun to hand them more free stuff. Why do they think it is reasonable to simply ask a company to give up their IP and eliminate any income they get from licensing? I recall that I haven’t paid a single penny for Java SDKs, JREs, IDEs, etc… I don’t think it is reasonable at all to ask (demand?) that I get more stuff for nothing.
[/quote]
Probably it’s reasonable to ask, but not reasonable to demand anything. (Btw. I’m not sure if Sun would lose money, if theyopen source JRE and SDK.)

For now I think it’s the best solution to use free Java implementations, for the ones who like the idea of Open Source or must not depend on non-free software. I think if Sun really wants to encourage an Open Source implementation, they should make the compatibility tests free and easy to use. I think this won’t happen soon (correct me, if I’m wrong). There are some compatibility test tools out there, but it would be good to have an official one.

[quote]…means that the source to the product is not controlled my any one party. Anyone can commit something to an open source product at will.
[/quote]
Erm… no and no. If that were true can you explain to me how the Linux kernel (and any other oss project) actually manages to function without crashing in about a heartbeat? There’s nothing in any open source definition I’ve seen that says the source cannot be controlled by one party and anyone can commit changes at will. That’s just plain bullshit, pardon my french. :slight_smile:

Look at how the Linux kernel is handled. Linus (one person) is in charge, and has a select team of developers committing changes. Sure anyone else could find a bug and submit a patch/fix/whatever, but it goes through Linus first.

What open source does mean is that I could take the source of the kernel, make my own version with features I wanted and distribute that in turn, assuming I kept all copyright notices and licenses intact.

Well according to your CEO, that’s not an issue for Sun:

[quote]“Sun, more than any company in the world, is less threatened by a zero-revenue model for software than just about anybody out there,”
[/quote]
(Which is the line that ESR quoted).

The big question for me, is what percentage of Sun’s yearly revenue is derived from Java licensing, and what future revenue do analysts anticipate considering competition from the Microsoft side of things?
That’s something I’ve never even seen guesstimates on.
My guess is that it is a small fraction of the money that comes in from all Sun’s other business – emphasis on the guess.

The other question is whether anyone outside of Sun contributes to the core development of Java? I’m not talking about new APIs that are incorporated in successive iterations of the platform. I’m talking about bug fixing, optimising existing APIs, working on the fundamentals, etc, etc. If there is no outside contribution, then that’s an advantage of Java becoming an open source project. It would still be lead by Sun developers (obviously), but could incorporate work from other developers (from IBM, BEA, etc, etc).
The key consideration is if you offset a reduced cost of development against revenue from licensing, does it even out in the end…?

Don’t flame me, just pondering aloud.

J

Surely providing proper bug reports with code that reproduces the problem is a significant help. Sometimes once you are aware of the problem the fix is obvious. I have offered code (free) in the past, but the response was so underwhelming that there is little motivation to do so again.

I was talking more about the core development team (i.e. the people who do 99% of the work). I was wondering whether that group is 100% comprised of Sun developers?

Quite a bit of the source code for the libraries have references to other companies (especially IBM).

And there’s all that org.* stuff in there and the endorsed standards override mechanisms etc.

Cas :slight_smile:

The free VMs have implemented almost nothing of the CORBA stuff and I don’t know if this will happen anytime soon. I wonder why it is in J2SE and not only in J2EE anyway. Do other packages in J2SE depend on CORBA?

[quote]The free VMs have implemented almost nothing of the CORBA stuff and I don’t know if this will happen anytime soon. I wonder why it is in J2SE and not only in J2EE anyway.
[/quote]
Why is NIO in J2SE? Why is XML parsing in J2SE?

Or, the biggy, why is RMI in J2SE?

RMI is just, like, totally useful :slight_smile: It’s got very legitimate use in games (I use it a lot in my crappy tiny arcade game), and it’s not very big anyway. But it should, as I think you think, be optionally included as most applications don’t need to make use of it.

The CORBA stuff is utterly pointless in J2SE. (Heh, pointless anywhere if you ask me but that’s another thread for a rainy day)

The XML stuff should always have been a separate package, less the interface layer.

NIO is fundamentally important for competitive IO, and that includes client applications, so it’s got to stay. In fact it’s found its best uses in client OpenGL applications so far IMHO :slight_smile:

And none of this has anything to do with the Open Source topic!

Cas :slight_smile:

RMI is smaller and easier to use than CORBA. I think CORBA is a typical enterprise-technology (much like Enterprise Java Beans), so it would fit into J2EE. Of course I’m aware it’s almost impossible to move it to J2EE. It’s just another reason why implementing a fully-compatible Open Source JRE isn’t easy.

Huh? RMI is basically just a Java CORBA implementation with one or two extra gizmos that were possible by removing the inherent platform independent nature of CORBA.

Aside from the points Cas has already highlighted, the other point of my question was that I thought people knew what RMI really was. There’s so little difference between RMI and CORBA that most people would hardly notice the difference switching from one to the other (although many java devs I know who use either prefer CORBA because of the easier interoperability with other langs).

[quote]Huh? RMI is basically just a Java CORBA implementation with one or two extra gizmos that were possible by removing the inherent platform independent nature of CORBA.
[/quote]
They are both platform independant. CORBA is also language independant (more or less). I think CORBA is slightly more complicated, because it has more features and you have to use IDL (not only plain Java). But you’re right, they are very similar indeed.

Now, let’s get back to thread topic. :slight_smile: