Because it's all 0s and 1s, I recently took a look at porting JNN, an RSS reader from java.net, to Mac OS 9-. This meant going from Java 2 (which is Java 1.2+, currently 1.5) to Java 1 (1.0-1.1.x).

As it turns out, initially the biggest pain in the rear when porting is removing all the Swing extensions these people have added, like this silly Rounded Border. RoundedBorder gives, "Further mac prettification" like "Rounded borders on Mac".

How unJava can you get? To think this originally was a project by Mr. Java himself, James Gosling. What we have here is a number of hacks to the UI not in a separate package, much less where it should be, in a customized, pluggable Swing Look and Feel, but in the root of the app itself. There's no easy way to weed this out, which completely eliminates the advantage object oriented design provides.

This means JNN's design is failing on a number of counts. It does not properly compartmentalize GUI from backend. It does not use Swing's Look and Feel support adequately. It is targeting one platform to the detriment of the code's use on others (Mac over everywhere else). These are silly biases that are all examples of bad coding. Shame.

(Note: To Gosling's credit, when I downloaded jnn originally I don't believe it had any (no obvious, anyway) nonstandard GUI widgets.)

In other news, Blogger finally lets you publish images with your blog, up to 300 megs of 'em. Phew. I'd finally give Flickr a shot and posted one image with them a while back, but this is scads easier. Thanks, Google/Blogger/Microsoft. (Yes, the MS ref is hopefully a joke.)