Denver JUG: AspectJ and Grady Booch
Well, I made it to the DJUG Meeting and there's wi-fi - sweet! I just got here (20 minutes late), so don't have much to say. I might be a little late to follow the AspectJ stuff, but I'll try. The meeting room is packed - it's a huge auditorium, so that means there's probably a couple hundred folks here - wow! This Booch guy must be good (or at least famous).
Joseph Gradecki is presenting on AspectJ. I don't really know a thing about AspectJ, except that it's an implementation of AOP. One of these days, I might quit writing log.debug statements and start using AOP - but I don't know if its mature enough yet*. I know Rickard is using it like a madman, but he's always on the bleeding edge.
It looks like Mr. Gradecki has written a lot of books - all very recent titles.
* I've had a heckuva time introducing the concepts I've learned over the past couple years to new development teams. It seems that most teams I've worked on haven't worked much with webapps or their frameworks. Because of this I seem to get a fair amount of blank stares when I start mentioning things like Hibernate, XDoclet, Validator and Tiles. I couldn't imagine trying to introduce using AOP on a project - IMO, most clients would never go for it. Maybe I need to put together some presentations on the different tools I use, and then present that to new teams. For now, I guess I'll just have to recommend they buy Professional JSP, 3rd Edition (which rolled off the presses today BTW). I doubt they're going to want to read 704 pages, so there's probably still some motivation to create short and sweet presentations.
Back to the topic at hand, IDEs that support AspectJ: JBuilder, Eclipse, Sun ONE (Forte). Problem with using AspectJ - it's actually been patented (6,467,086), as well as AOP. They started the application in 1999 and it was approved this year. One gent in the room mentioned that you're safe as long as you use it as part of Eclipse - if you try to fork it, that's when there's issues (I hope I'm quoting him correctly).
The major question from this preso: How do you use AOP in a production system, outside of logging? If you're using AOP in production (and its not just for logging), how are you using it and how has it helped your application(s). An audience member mentions JBoss 4.0, but is anyone using it in production?
During the break, I discovered that James is coming to the Boulder JUG in October. Boulder is actually closer to my new gig.
Next up: The Architecture of Unusual Things by Grady Booch, IBM Fellow. Don't let his picture fool you - he looks like someone you'd like to hang out with (balding, long greying hair, nice voice).
Here's his first slide:
The Limits of Sofware
- the laws of physics
- the laws of software
- the challenge of algorithms
- the difficulty of distribution
- the problem of design
- the importance of organization (human issues dominate from here down)
- the impact of economics
- the influence of politics
- the limits of human imagination
Grady mentions SourceForge and that he loves it (as a community collaboration space). I agree, the idea is great. Features I like: CVS, Mailing Lists, Downloads. Features I don't: it seems to be down whenever I cut a release (not very often), the forums need some work.
He's been talking about DNA Architecture for the last 20 minutes - sorry, I lost interest and did some blog-reading... now I'm back - and he's comparing DNA Sequencing to SETI@home (the first attempt to use large-scale distributed computing to perform a sensitive search for radio signals from extraterrestrial civilizations).
His point? Common architectures may be found in uncommon places.
If you're still reading this, I'm amazed - I usually blank out and don't read long posts. I tend to read blogs for quick tips and tricks, not for long interviews/arcticles. Here's the first automated stalker: Asimo (Brady had a cool video - I can't seem to find it). He recommends getting a Lego Mindstorms Robot.
The most noticeable thing about Grady's session is the PowerPoint presentation. It's got pictures on almost every page, URLs in the bottom-left corner and he's had several videos. I doubt that he created it, but whoever did deserves to be recognized.
"All legacy systems exhibit sedimentation." Hmmm, the Computer History Museum might be cool to visit. Good luck in getting your wife to join you for that visit! At the end of October, Grady is meeting with some gents to work on putting some more source code (i.e. Bill's early stuff) on the web.
4th Generation of Web Sites (we're in the third generation now): Aspects (simplifies architecture) and the Semantic Web (bits of the web have self-knowledge and self-behavior, agent-based architecture).
Lesson: An architecture must grow and adapt or die (i.e. eBay, Amazon). These companies have done a major re-architecture several times over the years (eBay = Websphere plug). 1/2 life of a software architecture? Grady's opinion: 3-5 years. Web Services - allow for refactoring bits of a legacy architecture bits at a time. However, sometimes you have to break the foundation.
Brady recommends honing your skills in Patterns, as well as in Java. Warning: IBM may patent some of its business process patterns. Another lesson: Fundamentals never go out of style.
Final Note: The driving force behind software engineering is the rising levels of abstraction.
Good stuff - glad I came. Didn't really learn much that I can use tomorrow at work, but I did learn more about architecture and the history of computing.
Update: You can now download Grady Brooch's The Architecture of Unusual Things (5.1 MB zipped) presentation.