This post originated from an RSS feed registered with Java Buzz
by Vinny Carpenter.
Original Post: No Fluff Just Stuff - Day Two
Feed Title: Vinny Carpenter's Blog
Feed URL: http://www.j2eegeek.com/error.html
Feed Description: Welcome to my blog. I am a total Java geek that lives in Milwaukee, making my living as an architect/developer, spending all my time with Java, J2EE, OO, Linux, and open source. In my spare time, when I am not in front of my computers, I spend every other minute with my other loves: My wife, books, music, guitars, Formula-1 racing and StarGate. Check out my blog @ http://www.j2eegeek.com/blog
I have been dabbling with AOP and was really interested in learning more in the 2 sessions about AspectJ as I had only played with AspectWerkz. I have to say that these were the two best sessions I attended this weekend. Ramnivas Laddad did an incredible job in explaining all of the AOP concepts before diving into AspectJ. AspectJ is a simple extension to the Java programming language that adds to Java aspect-oriented programming capabilities. In my real life, I work for a Financial Services company and we need an easy way to enhance existing applications to comply with new regulations, compliance and auditing requirements. I have been working on a proof-of-concept application using AOP as the solution for these new requirements. Ramnivas did a great job in walking us through AOP, AspectJ while writing, showing and deploying real code. In the 3 hours of the session, Ramnivas ran through several real working examples of Aspects. I really enjoyed the code walkthroughs via Eclipse.
After attending the sessions, Ramnivas confirmed my opinion of AOP. He described AOP as a new evolutionary new programming methodology that facilitates the modularization of crosscutting concerns and I have to completely agree with that statement. Once the light-bulb goes off, you really see the potential of AOP. I know people feel AOP and OOP are either/or solutions but I strongly feel that they are completely complementary technologies and work best, when used together. I’m looking forward to the final release of AspectJ 1.2, but just downloaded AspectJ 1.2rc1.
After lunch, I attended the panel discussion with Bruce Tate, Stuart Halloway, Richard Monson-Haefel, Ben Galbraith, and Ramnivas Laddad. There were some very interesting questions from the audience. Karen from Harley Davidson started off with a question about Sarbanes-Oxley and AOP. Somewhere along the way, UI (Swing/SWT) bashing started and Dave Thomas chimed in with his two cents on the issue of UI and usability. He said that his son can walk up to any video console and figure out the game in 5 minutes flat but if you put him in front of a Swing application, he’ll be lost. Ben Galbraith made some valid points about usability and how developers don’t spent enough time on usability. He also mentioned the new Donald Norman book entitled ‘Emotional Design: Why We Love (Or Hate) Everyday Things’. I’ve read Norman’s other book ‘The Design of Everyday Things’ and I love that book. I guess I will have to check out this new book. Vibhu asked an interesting question about complexity and/or confusion in the industry about having all these choices in terms of OR mappers, frameworks, specifications, etc. The panel pretty much felt that having options was better than not having options and it’s hard to disagree with that. All in all, a good discussion and quite a few barbs back and forth with the panel.
After the panel came my afternoon with Stuart Halloway. I am a big fan of Stuart’s writing and presenting and I attended both of his sessions: ‘Introduction to Reflection’ and ‘Metaprogramming: Making Patterns Better’. I love his presentation style where he has a few slides but most of the time is spent slinging code inside IDEA. I attended the reflection session last year and couldn’t resist it the second time around. The topic of his talk is always these core topics that aren’t sexy like Hibernate or Spring, but I always end up learning a lot more about core concepts like ClassLoaders and Reflection.