I spend most of my time as a Java developer happily writing code without explicitly thinking about encapsulation, polymorphism, and inheritance as underlying principles. I mean those things are given. It would be like noticing wheels are round each time I get in my car.
The debate on handling exceptions and dealing with potential errors continues. You may remember this from James Gosling's July blog entry Flying at Mach 1 "If you want to build something really robust, you need to pay attention to things that can go wrong and most folks don't in the C world because it's just to damn hard."
My company is not really an eXtreme Programming shop, but we are somewhat inspired by it. We are currently doing a project in which some people are involved in pair programming. I recently witnessed an amusing situation involving this practice. The team that works at the other desk in my office found a bug which they could not figure out.
XML and SOAP messages may mask the the underlying infrastructure from developers but the data center still needs to be brand aware.
After you finish writing your Java desktop application and QA it and polish it up - how do you deploy it? In some ways that depends on your audience. If you are targeting fellow geeks then maybe a jar file or a directory with an Ant build.xml file is enough.
I recently wrote an article, "Create Desktop Applications with Java-Based Web Technologies" for O'Reilly ONJava.com, and I was just pondering some of the feedback I got.
RMI is part of the J2SE stack. As more power becomes available on "limited devices" you may find J2SE running on devices that were once targets for J2ME. In the meantime, there have been several ideas on how to bring RMI to a phone near you.
I've been thinking. We have lots of software crashing these days. Some
due to bugs. Some due to viruses and worms. Some due to hardware failure. And yet software is becoming more common and important than ever before. So what can we do to make software more reliable?