Even for certain categories of Java code, it's a useful discipline.
"Write once, run anywhere" is certainly possible to do quite nicely
--- IBM's Java chess-watcher applet was very nicely done, aside from
the teensy-weensy text window (which was at least equally lousy on all
platforms) --- but when serious windowing is involved, in the current
state of the AWT, it can become at least a little awkward.
There are also subtle gotchas involving thread behavior on some
platforms.
rst