Saturday, March 17, 2007

Summary and thoughts of the AOSD Panel

I'm now back in Montreal. I still have a post about AOSD Conference Day 2, which I hope to publish soon. But I left my notes at home and there were some really witty John Lamping's quotes (mostly Googly and AOP unrelated) that I believe I must share. So please be patient...

But the AOSD Panel (Title: Panel: Beyond AspectJ: AOP languages in 2017) was pretty entertaining and was one of the highlights in the conference. Although the panel discussion eventually degenerated into a pointless debate between 1. dynamic v.s. static AOP languages and 2. how to involve the industry, there were some provoking thoughts in the first 30 minutes when each panelist presented their ideas about the future of AOP languages.

Theo D'Hondt, the fathor of logical pointcut: In what I think as the perfect prelude of the panel, Professor D'Hondt launched his attacks on two problems he sees in most young AOP researchers today: 1. too much concerns of the relevancy in the industry, and 2. obsession with bytecode (both are pretty evident in the AOSD conference). It is really up to the industry to decide if the ideas are applicable, and researchers are the worst ones to make a judgment on that. He also emphasized the most important factor in research should be the originality of the idea, not about its appeal to the industry (“Amen” from Gregor Kiczales). Not surprising from the place that produced logic pointcut (in Prolog), and other relatively abstract ideas. Although what he said was nothing new, it was refreshing at that time when most people think about how to extend the pointcut-language/annotation to make AOP more appealing to the industry and increase the adoption (maybe more funding). Although I wasn't able to attend as many research presentations or demos as I liked, I witnessed there were a lot of works that tried to replicate the AOP idea into other languages or platform, or tweaked the VM to do other crazy ideas. Has AOP reached maturity yet that no other more new ideas can be proposed and we should only be extending/porting AOP now? What kind of questions that have been asked but deemed too difficult to answer right now?

I also had some reflections on my own work too: is my idea of refactoring bits and pieces of program elements lacking in originality and I'm merely redoing the work that has been done (albeit separately) by others? I guess its a bit late to change now, but I think I am more inspired than before on the AOP idea.

The rest are summaries from other featured panelists:

Ramnivas Laddad, the "father" of AO refactoring

  • AspectJ is sufficient for industry and it is getting more prevalent
  • Java is not the most ideal platform for AOP. Future development should aim at another language that uses the JVM (i.e. Jruby, Jython)

  • “obliviousness” does not matter as much as we think

  • Criticizing JHotDraw as the primary AOP benchmark: shouldn't we use more real examples and a larger project rather than something that nobody actually uses? (Ya-hoo! That is one of the best quotes in the conference.)

  • Trend of language development: AOP is in fact an evolution of most significant languages features: procedural → functional → OO → AO. Future AO languages should not replace these ideas.

Hidehiko Masuhara from Tokyo U: In a series of slides, Sensei Masuhara from Tokyo U expressed his ideas of crosscutting indicators:

What AspectJ provides: modularization mechanism by using names (i.e. lexical data such as method names, simple type names). Therefore, names are crosscutting indicators (metadata where crosscutting may occur). AOP moves names from a metadata-level (a string) to a base-level (such as a pointcut descriptor in the code level). However, names is insufficient and in the future we should aim to move more crosscutting indicators (i.e. Types) to the base level.

Klaus Ostermann, creator of Caesar:

  • AOP should move from localization to modularization (Caesar, anyone?)

  • Should we keep dragging on with weaving? AOP is NOT code transformation!

  • Real modularization should involve removing secondary functionalities into separate modules. (Again, Caesar???)

  • We don't need anymore semantics sugar into AOP languages such as AspectJ.

Finally, Yannis Smaragdakis of U Oregon:

What is AspectJ today?

  • An advice language

  • A static analysis language

  • Intrusive transformation language

  • Automata merging language (through cflow()...)

But... AspectJ clouds the vision! A general purpose AOP language should be like AspectJ but has more power and yet more discipline (an oxymoron?). We should pursue something that cannot be done in AspectJ, such as having aspect co-existing with normal class, not as a special oblivious class.

However, he then got into his latest idea called Morphing (see ECOOP 2007) and spent quite some times explaining his ideas. As much as I liked inspirations, I really think that the panel should not be a place for idea advertisement and at that point I really didn't keep notes anymore.

Great quotes that I remember from the panel...

I believe that static dead” -- Dr. Theo D'Hondt

If you guys don't use the tools that you developed, shame on you!” -- Dr. Prem Devanbu , in questioning if it is valid for researchers to pursue an idea, then leave it in the dark and not touch it anymore...

I use it... when it is appropriate...” -- Klaus Ostermann, in responding to the previous quote...

Anymore that I missed?

Thoughts and suggestions on the future panels

As much as I enjoyed the discussions in the panel, it was evident that it got really sidetracked from the original topic and the audience only had a good laugh. The direction of AOP language still doesn't get any clearer (or closer) than before. I think it's the problem when you packed a whole bunch of experts (much like the joke about packing a bunch of evangelicals) in the same room.

I genuinely think, if the panel wants to be something more than a political debate, it is much better to mix people from different spectrum (not just researchers who research the same field in opposite direction, or else it would be like having a francophone and an anglophone discussing about sovereignty!). Why not invite people like James Gosling, Anders Hejlsberg (from C#), Steve Yegge (from Google), Guido von Rossum (from Python)? Hear about what other languages designers think and why they think the AOP idea is applicable or not. Experts like Bjarne Stroustrup, Anders Hejlsberg remain critical of the idea and they have some very good reasons. Why not hear from them and stimulate a technical but fruitful debate about the future direction of AOP?

Also... can AOP morph out of academia (see Stroustrup in MIT Tech Review) and become a real force? I guess AOP can really learn from Ajax, in that the idea can only be spread if 1. enough people know about it, 2. some start-ups (like Glassbox) apply the technology and become successful, thus become the poster child (much like Paul Graham with Common Lisp), 3. corporate mammoths like Microsoft, Google, Yahoo, start endorsing the ideas. I'm glad that both MS (Research) and Google are sponsoring the research, and Google will be in a much better position to endorse to technology just because of John Lamping, but the AOP community needs to produce students who go to somewhere other than IBM. I look forward to the days when MS Research and Google are submitting papers to AOSD.

Finally, I would say that if AOP really wants to step out of the ivory tower (which it's...), the most effective way is throught the blogsphere. I wasn't aware of the power of the blogsphere until the second day of the conference (after the impromptu open-source birds-of-features session), when I bravely approached Ron Bodkin to politely ask him if he would update his blog. Ron, who is it the founder of Glassbox, asked me if my name was Isaac and told me that he saw my not-so-favorable review on my blog. Of course, I was extremely flattered and surprised since I didn't expect it would get read by anyone except myself. (Note: my point in the previous entry was that the audience didn't comprehend the tool well because they were (me included) mostly students working on languages or VM.) Later I found out that Ron is actually a McGill alumnus :) But besides the McGill connection, what made him, a founder of a Silicon Valley startup, notice a virtually unknown student like me was nothing but the blogsphere (and Google...). I guess there are more people who know the subject much deeper, and write much better than me. The blogsphere is more connected than most people think (even when you have 0 comments). So the conference should encourage people to not only talk about it, but write about it, in the most simplistic if not totally idiotic manner. Although it is unrealistic to expect bloggers such as Robert Scoble, Jon Udell, Niall Kennedy, and Mike Arrington to come (it's a research conference after all, and you don't want it to be treated like CES), if some of us who are most intimate with the technology are able to articulate the AOP idea in a simple sense (remember: simple IS beautiful), they are bound to get noticed and talked about. Only when will the AOP idea tick off into the mainstream, I think...

Remark: well, it took way longer than I thought to finish the whole post and I learned that 1. the Firefox on my lab machine is extremely slow , 2. open office sucks at editing blog posts. So I will only use WL writer to write my post from now on, and I will try to do it only during my spare time (not during Sat afternoon when I'm supposed to work). Also, thank you for those who keep reading... now I know how hard it is to become a tech blogger and I will really think twice before switching from being a developer to a blogger :)

No comments: