I attended my first meeting at the Atlanta Java Users Group tonight, and the main speaker was Dave Thomas. It was a great session. Dave is originally from England, and he is both funny and informative. As one who is in the process of transitioning to Java from Microsoft-based development, it was good to hear from someone who is highly-experienced and frank. Some of the material you read and almost all Java-related sites can paint an all-too-rosy picture sometimes. This was more of a "living with Java and making that life better" instead of "how Java is going to make every bit of your life better", if you know what I mean.
It surprised me to see how many of Dave's suggestions and the pitfalls he illustrated are cases where developers abandon some of the fundamental tenets of OOP, like "don't break encapsulation". Perhaps it is more accurate to say that it surprised me and relieved me at the same time. Sometimes the body of knowledge and the paradigm shifts of moving to Java and real OOP can be daunting, and you wonder "geez, am I ever gonna get to a point of productivity in this stuff?"
If you ever have an opportunity to hear Dave speak, I highly recommend it. Dave is the author of two books, The Pragmatic Programmer and Programming Ruby. He is actually speaking again in Atlanta tomorrow night 09/17/2003 at a combined group meeting of the Atlanta XP and SPIN groups, see the XP site for more info. The title is "Herding Racehorses and Racing Sheep"; if I didn't have a prior commitment I would make that one for sure. His teaser of the topic sounded very worthwhile.