At sixes and sevens

Geir Magnusson expresses surprise that the collaboration site for Dolphin JDK 7 was recently unveiled despite the fact that Mustang JDK 6 hasn’t shipped yet.

I’m not sure why this is a surprise; it’s really just good software engineering.

Toward the end of any big software project the rate of change in the code base must be throttled down dramatically in order to achieve the stability and quality required in the final product. The rate of change in the JDK 6 code is far less now than it was even just a few weeks ago. As of today, heading toward the release-candidate build, the core release team is looking at a short list of a couple dozen showstopper bugs. Once we fix just those bugs then we’ll start several weeks of intensive testing, and—if all goes well—we’ll ship that as the first release candidate.

Now the world doesn’t stop turning—and developers don’t stop hacking—just because JDK 6 is in stabilization mode. Engineers both inside and outside of Sun are already working on fixes and features for JDK 7, so the question arises: Where should those changes go? We could ask people to keep their changes to themselves until we’re good and ready to open up the JDK 7 workspace (i.e., source repository), but our own experience suggests that this is a pretty bad idea. This approach basically results in lots of little forks of the code base, and reweaving all those forks together when the official workspace opens up can be a pretty painful process.

So the JDK 7 workspace was created internally a few weeks ago, and the first build was promoted shortly afterward. (The only changes in that build were to version strings and such.) Not many changes have been integrated since then, but that’s no reason not to make the sources available for collaborative development even though they’re not yet under an open-source license. We’ll be promoting JDK 7 builds every two weeks or so and doing minimal “warm and breathing” testing on them until JDK 6 ships, at which time we’ll switch to weekly promotions and the full force of our mighty quality team.

Geir is also surprised that the JDK 7 code isn’t licensed as open source, but I’m not sure why that’s a surprise either. We can hardly put our source code under an open-source license when we haven’t yet chosen which license we’re going to use. Rest assured that once that choice is made we’ll then make the (unencumbered) code available under that license.

Comments:

Mark, I don't get why this stuff would be a surprise to anyone, but thanks for taking the time to explain it.

Posted by David Gilbert on August 18, 2006 at 02:05 AM PDT #

:)

Actually, I was surprised that Sun didn't bother filing a JSR for Java 7, but just started doing it. I know you've also done this in the past, but I guess I never cared enough. Why not submit the JSR, form the expert group, and get going?

I understand the desire for "good engineering", and that can easily be achived with a "Java Next" project dedicated to innovation on top of the non-open-source Project Formerly Known as Mustang codebase to keep new work separate from the codebase going to production.

As for the open source license for Java 7, I thought it might be cool if you had your cake and ate it too :

  1. Do continued innovation on the Mustang codebase in "Java Next"
  2. At the same time, develop an open source community and governance model for Java SE 7, transferring code and effort from Java Next as you finalize the license decision for the codebase.

I think that Sun is doing a good job of having 1-1 and 1-many conversations with the community on this transition, but an open source Java SE 7 can be a forum for many-many, which will be essential for long term success of your instance of an open source Java community.

Posted by Geir Magnusson Jr on August 25, 2006 at 04:08 AM PDT #

Post a Comment:
Comments are closed for this entry.
About

This blog has moved to http://mreinhold.org/blog. <script>var p = window.location.pathname.split('/'); var n = p[p.length - 1].replace(/_/g,'-'); if (n != "301") window.location = "http://mreinhold.org/blog/" + n;</script>

Search

Archives
« April 2014
SunMonTueWedThuFriSat
  
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
   
       
Today
News

No bookmarks in folder

Blogroll

No bookmarks in folder

Feeds
RSS Atom