Java's new look and feels, Ocean and Synth, are essentially worthless. Not that I expected them to, but the Sun folk certainly didn't pay much attention to the posts I placed on their blog posts soliciting Swing comments. Look, the write once, run anywhere [looking the same] bit is only really appreciated by programmers, and even they aren't overly impressed.

What does Sun's new crossplatform look for Java, Ocean, give you? If you ask me, different scroll bars, slightly beveled button rendering (a la the now unsupported Kunststoff LaF), and, most importantly, further proof *NIX guys don't have the first clue what looks good. Metal looked pretty good when it was released, both on Mac OS and Windows, but let's face it, today neither Metal nor Ocean is anything to brag about.

And what does the fancy smancy Synth Look and Feel give? Oh, now we can add another whole arena of bug testing simply by referencing included XML files rather than what used to belong in Java code. Does Sun really think the reason Swing didn't pick up was because it was too hard to create a new look and feel and not because everybody who cared about looks only wanted an app that looked native? Items like the Quintessential Player nonwithstanding, most people prefer their apps to look like every other -- and why not? Looking the same and -- just as if not more importantly -- acting the same is horribly important for users. Wouldn't you like to take advantage of that training your user has gotten from their "native" OS? Until Java challenges Windows for the preferred operating environment on your clients' boxes, your answer'd better be yes.

The fact that you can now change looks through XML is not a step forward. Do you really want to make it easier for programmers to make apps that look like this? That's what people are doing with Synth. Great stuff. (And before you flame that this is an example app, recall that that picture was the author's concept of colors that looked good (strawman for "bad" is here).)

I'll say it again, though nobody's listening. Hey, Sun! Freeze Swing, allowing those who need the same operation xplat to have it. But do yourself a favor, regain those Swing resources you're burning internally, and restart AWT development or throw some weight behind integrating SWT. Make Java GUIs look and act native, because they are native, not because you're still trying to get Swing to mimic Windows. Crazy idea -- make it act native b/c it is. Java 1.0 was [unintentionally] smarter than Java 5.0 in more ways than one.

Merry Xmas!