Tuesday, November 16, 2010

Java SE 7 & 8

Sometimes doing the right thing can be extremely difficult. In spite of and because of my commitment to Java, I had to decline an invitation to join the Java SE 7 and 8 expert groups. Talk about a tough decision!

Why did I decline? I'll contribute to open source projects and open standards, standards I can independently implement and license as open source. Java SE, with its anti-competitive licensing restrictions, is not an open standard. It doesn't belong in the thus far open JCP, and I can't support such a charade. I stand by Apache, and I hope Eclipse comes around.

I'm not a lawyer, but I can't help but wonder whether Oracle even has a right to apply additional licensing restrictions to the intellectual property in Java SE. Oracle didn't create Java SE on their own. Look at the list of JSRs pulled into Java SE 7 and SE 8 (see the Contributions sections). Look at the experts on those JSRs. Most of them aren't from Oracle. For example, JSR 310: Date and Time API comes from our own Stephen Colebourne.

The JSPA section 4.D protects experts in these situations, enabling them to withdraw their IP contributions if a spec lead, Oracle in the case of Java SE, changes the licensing terms:

Withdrawal of Contributions due to Change in Announced License Terms. If the Spec Lead for an Expert Group in which You are participating makes significant changes to the terms and conditions of any license granted pursuant to Sections 5.B or 5.F below after those terms and conditions are first disclosed pursuant to the Process, then You may, upon giving notice to the Specification Lead and the PMO, withdraw any copyright or patent licenses concerning Your Contributions granted pursuant to Section 4.A.I or 4.A.II above (but not patent licenses granted by You pursuant to Section 6 below).

It's not clear to me exactly how section 4.D applies to umbrella JSRs like Java SE, but I'd say that changes preventing independent open source implementations qualify as a "significant."

28 Comments:

Blogger grandfatha said...

What a loss to those JSRs and to all of us this is.... Thank you for all your contributions to the Java community.

It is a pain to see my RSS-reader's Java section filled up with political mumbojumbo and laywer-speak instead of people blogging about how they applied Java to built better products.

11:45 PM  
Blogger LaZee said...

Yes, this is truly a loss! I must say that I'm really worried about the future of Java at the moment. Not just because experts like you are questioning the way Oracle deals with Java and the communities, but most of all because of the negative atmosphere that surrounds Java at the moment. Like Daniel says, its no longer fun picking up the latest Java news. It is now up to Oracle to convince the world that Java still is the platform to count on. If they fail, I think a lot of companies will consider other more open alternatives.

12:37 AM  
Blogger Idiot Monkey Coder said...

So you'd rather be out, and not have a say in how things are done and influence your peers? Talk about cutting off your nose to spite the face...

3:20 AM  
Blogger Stephan.Schmidt said...

I absolutly agree with that this is a loss. Oracle is painting itself into a corner.

Stephan
http://codemonkeyism.com

6:58 AM  
Blogger Bob said...

Ioannis, nah. I have a finite amount of time and more than enough things to spend it on. Plus, there are plenty of open Java standards (like JSR 330!).

7:37 AM  
Blogger Vic said...

Oracle paid a lot to own Java and they don't want Apache to fork a free version.


Apache did this when they copied JBoss and IBM ended up with that code.
And as a professional programmer I am sick with Google for copying.

There is plenty of people who do want to work with owners of Java. Look at the model of JRockit when Sun owned Java.

7:39 AM  
Blogger Bob said...

Vic, plenty of people besides Sun/Oracle, including me, contributed to Java. We did so because Sun promised it was an open standard.

Also, Google did not copy any code. The facts will come to light.

7:50 AM  
Anonymous Anonymous said...

I think a useful link re the JCP licensing and IP is this:

http://www.jroller.com/scolebourne/entry/sun_apache_ip_in_pictures

10:15 AM  
Blogger Daniel Leuck said...

I'm with you Bob. I also worked on several JSRs that are part of Java SE. I'm very concerned about Oracle's stewardship, and it makes me questions how much more involvement I want to have. Its very painful when you've had a 15 year history with a technology and worked hard to contribute to bettering the platform.

You got my vote for the Executive Committee. We need more Bobs and fewer...well...I'll leave it at more Bobs.

2:13 PM  
Blogger Eric said...

Is there actually a viewable list of IP that is included in each JSR somewhere? I'd be interested in seeing such a beast.

I suspect probably not (like for "Java (TM)" reasons) but could someone else become Spec Lead for Java7/Java 8? Maybe producing a similar draft JSR but with a revised licensing section?

Or is participate in the JSR and requesting changes on licensing possible?

2:26 PM  
Blogger Eric said...

Just reading some JCP articles and found an interesting entry in the FAQ. From http://jcp.org/en/introduction/faq

"Q: What prevents Sun from controlling or dominating the groups that develop and maintain Java specifications?
A: Sun, and the other Executive Committee (EC) members, serve as technology oversight groups for the work of the Expert Groups. The ECs do not micro-manage the day-to-day workings of Expert Groups. Rather, the ECs have the opportunity to review the work of each Expert Group at well-defined points as their specifications proceed through the JCP. The primary function of the ECs is to ensure that specifications do not overlap or conflict with one another and that the specifications meet the needs of the industry segment for which they are being written."

Does not "licensing" related to "the needs of the industry"?

2:31 PM  
Blogger Bob said...

Eric, the spec, RI and TCK are copyrighted, so there's that. Patents aren't listed anywhere. Only Oracle can lead platform JSRs (one of the JCP rules).

2:32 PM  
Blogger Vic said...

Bob,
Lots of people donate to all kinds of open source and don't get paid, why is it n issue now?

As far as goolge copying code, what is public information now, it looks like they did. Do you have a link to share that is otherwise?

6:50 PM  
Blogger Bob said...

Vic, Java SE isn't open source, and it's not an open standard. Lots of companies besides Google contribute to Android.

6:54 PM  
Blogger Frans Thamura's Global Opinion said...

ORacle spend 200billions more and finally own Java in the end.. most the acquizition based on Java, to market him as #1 in anything, middleware, SOA, etc. in tragic, the brand getting far away from cult of owner Java.

6:59 PM  
Blogger pron said...

After reading Stephen Colebourne, I must say that I don't think the changes to license agreement would have any practical difference from what they were under Sun's leadership. Sun didn't license the TCK to Apache either, and they showed no intention of changing their mind. The new wording just clarifies what it is that they are prohibiting (basically a third-party open-source implementation of the Java platform).
So this is exactly as it was before, only specified more clearly. So, yes, the Java SE specification is not entirely open, and it never has been.
Somehow, this rebellion broke out only after Sun's acquisition. It seems to me that the reason is that Oracle just seems an annoying organisation (which it definitely is), and Larry Ellison seems like an annoying guy (which he probably is). Also, Oracle is just too powerful. IBM and Google like the Java leader to be weak. Sun was. Oracle isn't. That's the only reason this is all happening now.
I don't think this affects the Java user community that much. We have the OpenJDK, and commodity Java products have never made much use of Harmony. This only affects huge companies that want to distribute their own Java platform without licensing it from Oracle.
Well, IBM, HP, Apple and some other smaller companies have licensed their Java implementation. Only one major company hasn't, and that's Google.
So while I sympathize with the desire to see Java truly open, it never has been, and the current struggle is simply a corporate struggle between two giants (now that IBM allied with Oracle) - Oracle and Google.
Google simply, cleverly enough, conduct their corporate battles by proxy, this time using the Java community.
This is all fair, but I hope Google would spare us the hypocritical morality talk. If they continue down this path, soon they would be as annoying as Oracle, or even, god forbid, as annoying and as hypocritical as Apple.

3:06 AM  
Blogger pron said...

And by the way - great talk at Strange Loop, Bob.

3:11 AM  
Blogger mass said...

pron,

Things were at a stand-off with Sun. Rather than face the heat they developed Java 7 without any JSR. This new conflict is because people have been waiting for Java 7 to turn into a JSR before escalating.

9:49 AM  
Blogger Eric said...

Regarding "Only Oracle can lead platform JSRs (one of the JCP rules)." Is this an "unwritten rule"? Where is that indicated?

The closest thing I can find to indicate that might be:

"APPENDIX A: EXECUTIVE COMMITTEE POLICIES AND PROCEDURES

"A.1 SCOPE
"The Executive Committee (EC) oversees the development and evolution of the Java technologies within the JCP.

"A.2 MEMBERSHIP
"The Executive Committee is composed of 16 Java Community Process Members plus a non-voting Chair. The Chair of the EC will be a member of the Process Management Office. The 16 voting members will be selected from Java Community Process Members. Sun Microsystems, Inc. will have a permanent voting seat on the EC. That Sun representative will not be a member of the PMO.

"No Member may hold more than one voting seat on the EC at any given time. For example, if a Member has majority-ownership of one or more other Members, then that group of Members can have only one seat on the EC at any given time."

Additionally...

"definition - Umbrella Java Specification Request (UJSR): A JSR that defines or revises a Platform Edition or Profile Specification. A UJSR proceeds through the JCP like any other JSR."

I understand Sun (Oracle) owns the Java TM and may have some major say over such legal things, but what prevents someone else from submitting a UJSR?

Ref: http://jcp.org/en/procedures/jcp2

11:49 AM  
Blogger Unknown said...

I pretty much saw this time coming and I can't blame anyone for leaving. In fact I support them. Many people state that Oracle bought Java and can do with it what they want. They want to make sure they make money from it and thats fine. It would be a good idea to aim to make enough to cover the cost of the free contributions to the ecosystem that may cease to be made.

3:55 PM  
Blogger steve said...

Well, if Oracle wants to make Java proprietary they can try to do it.

But they should not expect any outside help from experts then, therefore => good decision, Bob!

Wanting to have contributors without giving anything back ... good luck with that free-loading, Oracle!

3:11 AM  
Anonymous Anonymous said...

Bob, I agree with your decision and I would do the same in your place. But there seems to be some inconsistency... if the JCP is a charade, why did you run for election to the Executive Committee?

6:45 PM  
Blogger Unknown said...

One JSR I would love to see soon: JSR-000666 InDependency Injection (of Oracle) for Java. ;-)

8:23 AM  
Blogger Bob said...

njbartlett, pretending Java SE is an open standard would be a charade.

8:20 AM  
Blogger Sagara Gunathunga said...

Thanks Bob for your ideas , I'm not a lawyer too but even in common sense this is a shameless work by Oracle. During last few years thousands of people spend their time and knowledge to improve java echo system believing it as a open standard.

12:02 PM  
Blogger Unknown said...

Bob, I completelly agree with your move.
> [...] there are plenty of open Java standards (like JSR 330!).
Could your please clarify, if Java SE is not open, why waste your time to work on open Java standard(s)?

4:20 AM  
Anonymous Anonymous said...

I still don't understand how the current situation is different from what we had when Sun was in charge. The TCK wasn't free then, and it isn't now.

I hate Oracle with a passion, but what is it that they have done differently that enrages everyone now?

1:30 PM  
Blogger Bob said...

Everyone has been waiting for Sun/Oracle to actually submit a JSR w/ FOU restrictions. Sun/Oracle has threatened it for years, but that's not the same as actually doing it. Basically, Apache et al gave Sun/Oracle the chance to do the right thing.

1:36 PM  

Post a Comment

<< Home