Went down to Bejug's exquisite AOP workshop yesterday and got to see both
- Rod Johnson of Spring fame, and
- Adrian Colyer from the AspectJ/AJDT corner. (his blog) - oh man, that easily shared (non-pretentious) erudition, didactical and fun approach all carried by loads of enthousiasm... refreshing!
I have to admit that this was largely my first introduction to the men and to their work, but their excelent presentations give me the feeling I'll have a well prepared start (shortly!) on that. Some new insights (at least to me):
- The peeps (and their projects) like each other, and show some active collaboration effort.
- (Dynamic) Proxy based approaches (like Spring) are also called AOP (sorry for being surprised)
- Great explanation on the AOP concepts (joinpoint, pointcut, advise, aspects, cross-cutting concern, introductions aka inter-type decorations) by Adrian (just ask him to do this EK-football-match routine, with singing! :-))
- Demo of the new ajdt in eclipse showed seamless integration (drooling on the crosscutting diagram) all the way up to the debugger. (I wasn't the only one anxious on that point.)
- Actually that demo also showed using the aspect language introducing compile errors and warnings regarding architecture aware rules of the kind: 'yes, it is public, but not from that angle!' This allows enforcing some additional dependency control over the accessibility modifiers of the Java language itself.
- IBM uses AspectJ to add-on their proprietary aspects onto strict functional and ready open source code (example given was wsif)
- It is not a <insert p-word here> meaning it's not going to solve *all* issues. And it is obviously NOT a replacement for OOP or CBD. It's complementary, adding new tools to the box, not replacing what we already have (don't abandon good design and known patterns, in fact: how long will it take before the first AOP-patterns book emerges?). Adrian got the lingo right when talking about this: if OOP is about verbs and nouns then AOP is about the adverbs and adjectives. (one without the other becomes meaningless or dull)
The big remaining question (although Adrian gave a great set of hints and experiences) is how one easily introduces this in an active developer community/organization... from that angle there remains some (p-word?) shift to be organized IMHO.
The show concluded with a well-done presentation from the local VUB-university on a research-AOP-language. (Ah, even more features, concepts and examples) It seemed like one of those things we could be easily proud of in this often surprisingly sharp-edged technology-country. In stead we saw the typical belgian reaction of anti-chauvinism: half of the room left after the international speakers got their say and the guy himself continuously downplayed the value of the work done.
Finally, big thanx to bejug - well done event!# Posted by mpo at 08:33 AM | TrackBack