Kirill Grouchnikov has released version 4.0 of his Substance project for Java. This is an attempt to provide a much more aggressive set of Look and Feel capabilities to Swing interfaces: the Swing team at Sun has recently been spending a little more time on these issues, for example with Synthetica, Nimbus and SwingX, however Kirill’s work pushes in different directions to the ones that the Swing team wishes to go in. For example, the Swing team are rather keen on interfaces that look like iTunes or Google Maps or which simulate the official looks and feels from 1990s window managers, while Kirill is perhaps more concerned with generalizing the latest features of Vista, Office, Aqua and the Linux managers.
Kirill spun off a few sub-projects from Substance: the Flamingo project for example has various modern controls, notably an Office-2007-like ribbon control. Today he sent me a heads up that he has added a Subversion browser, which uses Topologi’s Breadcrumb Bar control (which we contributed to Flamingo).
I am pretty scathing sometimes about Sun and Java on the desktop: the continuing lack of any ability for an application to configure its memory on startup to optimize the usage based on available pyhsical RAM is pretty much a show-stopper for any serious desktop application, and it is an issue that Sun and the Java team don’t acknowledge. They spend so much time on fancy language features and formal models of memory use, yet you cannot even configure the JVM to say “Use 80% of RAM, after allowing 200K for OS etc.” It seems like an application framework is no-one’s business: the Netbeans people have their Rich Client thing, the Swing people have their little single window thing, all for something that should have been finalized 5 years or a decade ago. (But, to be fair, Sun are not completely spinning their wheels: elsewhere on Kirill’s blog I saw a reference to an early release of the Consumer JRE. )
What is interesting about Substance is that it has the seeds for a cohesive extended widget and feature set for Swing in it. Substance needs some good graphic designers to bring out the best in its features, but where Kirill has been very smart, I think, is that he reaches out to other projects: Quaqua, JGoodies, SwingX, Napkin, etc. Personally, I think that the LAF and control-making community needs to get a bit more organized and present a unified, branded set of capabilities, consortium style, for example in collaboration with SwixML. Tracking dozens of separate controls and LAFs and their interactions is a strong disincentive against their use. But this is where the myth of open source hits the road: unless there is corporate sponsorship or resource contribution, it is difficult for such a project to be viable.