Long in coming...

A Thinkpad sale seduced me into upgrading my laptop. My feeble rationale was that I could stop dual-booting, use Linux on the new laptop and Vista on the old one. So, I got a shiny new Thinkpad T500 for under $1,000, blew away Vista Homeless Edition, and installed Ubuntu Jaunty Alpha 4. I expected the usual fussing with wireless networks, display adapters, and futile fights to activate exotic peripherals. I was totally disappointed. Everything, and I mean everything, down to the webcam, worked after a 30 minute install with one reboot and no fussing. With an alpha release.

This is the end of an era that began with the famous words in Linus Torvalds' original Linux announcement: “Do you pine for the days when men were men and wrote their own device drivers?” Years ago, I religiously posted pages with my install experience, such as this one, filled with arcane drivel, so that my fellow sufferers could glean a few morsels of wisdom or at least share the pain.

Now, there would be no point. Installing Linux has become so much easier than removing the crapware from pre-installed Vista that it isn't even funny. (No flames please—I am not saying that you should run Ubuntu. If you run Windows, Mac OS X, OpenSolaris, Fedora, or whatever, I am sure you have excellent reasons for your choice, and I am not trying to change your mind.)

So, what's this to do with Java?

My point is that some technologies undergo a relentless process of continuous improvement that ultimately pays off, and it is easy to be deceived by all the naysayers who were disappointed by a prior version. As we say in German: “Was lange währt, wird endlich gut.” (Long in coming, but worth it in the end.)

In the Java space, I see that with Java EE. In the beginning, it had a noble goal—to deal with hard problems of clustering and failover. But the price of entry was very high. EE 5 did a good job learning from the competition, and significantly lowered the price of entry. Now JSF 2 and other EE 6 features do this again, and there is ample room for an EE 7 that turns the crank one more time.

There are some people who still think that Java EE is an elephant or that Linux can't do wireless. That was yesterday, but today, it probably pays to research the most recent offerings before opining how Java EE or Ubuntu is too hard to use.

With Java SE, it's less clear. Will the Java language and essential libraries, such as Swing, stay essentially frozen in time? Like the Amiga? I hope not. For example, I dislike the idea of separating JavaFX from Java SE. I want better UI effects and more powerful language features in the core platform. All this talk about “complexity budget” is overblown. All successful technologies that have been around for some time have some degree of legacy cruft, and a way of dealing with it. Mark it as deprecated in version n + 1, isolate it in an optional package in version n + 2, then ditch it in version n + 4.

What is needed in SE is an effective stewardship. There are isolated calls for a better Swing or modern language features, but not by people who run the show. What the heck is Java SE 7 doing anyway? I can tell more from Alex Miller's blog than from watching JSRs. Here's hoping for relentless and continuous improvement of the core Java language and platform