Entrepreneur, executive, and investor; octo-dad; former Googler, now VP Product at

Posts from the Nimbus Category

Now that the dust has settled a bit in my life, let me provide some additional details on Nimbus.

First off, I apologize for the problems people had viewing the mockup and the specs on Flickr I linked to in my earlier blog entry. I had forgotten that Flickr makes you log in to see them in their original size. So, without further ado, here are some links to the full-size pics:

Small Nimbus Widgets

Regular Nimbus Widgets

Star Office Mockup

Second, let me talk a bit about where the project is at and where it’s headed. Right now, Nimbus is an early alpha release. The team hasn’t yet finished initial rough cuts of the various widgets in the Nimbus spec, much less polished them into final implementations. So to those that have tried out the Nimbus SwingSet2 demo and come away unimpressed, take it easy. There’s tons more work to come. I personally feel SwingSet2 is an easy way to look at individual widgets but a very poor way to get a feel for how a look-and-feel might look in real applications.

We’ve a goal to reach beta on the project by JavaOne ’07, but that’s just two months away and will take some doing to get there. What is certain is that Nimbus will be ready for use in Java 1.6 projects by the of the year. We have a major goal to back-port to 1.5, but that may not make release grade by year’s end (though I very much hope it will).

Is 1.4 compatibility important to you? Let me know (comment on this blog entry).

Third, I want to talk a bit about why I’m so excited about Nimbus. I believe that the designs Sun came up with are better than any other Swing look yet implemented and will allow Swing applications to be competitive visually with Aqua and Aero. Nimbus will include some innovations, including an easy way to chose from three different standard widget sizes (inspired by Cocoa and improving on Quaqua’s implementation); it will make healthy use of Chet’s timing framework for nice effects (though some of these may be optional); it will go to great pains to guarantee cross-platform fidelity; it will provide a great reference implementation of a Synth skin; and more that I’ll talk about as time goes on.

Thanks for all the kind words and interest so many of you have shown, and watch this space (and others) for more details on Nimbus as the project progresses.

NOTE: Check out this newer blog entry for more details on Nimbus and for easier-to-see screenshots.

At least a year ago, perhaps longer, some of my friends at Sun showed me the designs for a custom look Sun had designed for the Java Desktop System called Nimbus. At the time I was advocating that Sun create a “frickin’ cool amazing cross-platform look-and-feel” and I was impressed at how well Nimbus could fit that bill — or at least how much better it was than Metal / Ocean.

Back then, Sun had no plans to create a Swing look-and-feel around Nimbus. I’m pleased to say that work is now under way to do just that. The Swing Team and I have partnered to create an open-source project around an effort to take the detailed specifications of Nimbus (along with an existing implemention of Nimbus as a GTK theme as a guide) and implement it as a Swing look-and-feel (actually, a Synth skin).

Experienced Swing UI wizards like Jasper Potts (of Xerto fame) and Romain Guy (who needs no introduction), and popular independent software vendors FormDev Software and JIDE Software have already begun work to support Nimbus. Jasper has by far made the most significant contribution to the coding effort, having implementing the majority of the components in the spec already.

I’ll be posting a bit more info on Nimbus, but for now, here are a few screen shots of Nimbus application mock-ups and some of the specs.

StarOffice Mockup of Nimbus
Normal Size Widgets

Smaller Widgets