Updated: 5/5/2003; 7:04:03 PM.
Patrick Chanezon's Radio Weblog
P@'s links, comments and thoughts
        

>

Friday, April 25, 2003

The future of AOP ? Intentional Programming !


I've been following with a lot of interest the The AOP caching challenge thread that Cedric Beust started 3 weeks ago with his post Aspectwerkz: aspects done right.

This led me to discover Renaud Pawlak's excellent JAC, and  AspectWerkz, but I've been too busy with my real world job and well deserved vacations in the past few weeks to experiment with these or participate to the challenge.

Renaud Pawlak wrote a JAC Tutorial on Javaworld that I heartily recommend.

Hugo José Pinto wrote yesterday that: "Jonas Bonér points out the AOP stantardization project Renaud Pawlak started over at Sourceforge."

I look forward to participate in this AOPI - Aspect-Oriented Programming Interfaces project, which could become the J2EE of AOP, or at least the base for a future AOP JSR that  Jame Strachan's suggested in Time for an AOP JSR?. Ted Leung argues that it is too soon for a JSR. Maybe, but the AOPI project can be a good start towards a standardization. I agree with as Jonas Bonér comment to Jame's proposal.

Seeing the heated discussions going around about implementing AOP in XML, in the language, or in a mix of the 2, I think discussing in the context of a federating open source project is a good idea to sort out the different point of views. I hope the JBoss folks will participate.

To come back to Cedric's The AOP caching challenge thread: I wanted to comment about 3 of his posts: More on caller pointcuts , AOP epiphany and Gregor Kiczales on the AOP caching challenge.

In  More on caller pointcuts Cedric ranks Pointcut specification by complexity,  "complexity being the amount of work the weaving engine has to do in order to produce the advised classes".

Caller pointcuts are the most complex since the weaving engine needs to classload all the advised classes and locate the call. He then suggests that IDEs that implement incremental compilation could do that, but it would be more difficult for automated build using ant.

So he suggests the following:

Of course, it would be quite overkill for both ant and the IDE to maintain their own "code repository", but imagine that just like they publish their plug-in API's, IDE's could also document their internal code repository so that ant could use it.  How cool would that be?

Okay, my head is spinning now.  I will get back to aspects very soon.

I think Cedric identified a real problem, and I agree with him that the next evolution will probably come through this sort of solution.

 In AOP epiphany he quotes Booch "In the next two years or so I think aspect-oriented programming will bear fruit in testing, deployment, and business rules." and finds these estimates conservative.

Let's be realistic.  Is AOP going to deliver all its promises?  Or is it at least going to address these problems?  I don't know.  What I know is that some methodology will, because just like with the book of the Gang of Four, "once you go Design Patterns, you don't go back".  But as of today, AOP is in a pretty good position to fulfill some of these goals, so I hope these early experimentations blooming left and right are just the beginning of a new paradigm shift in the programming world.

I wholeheartedly agree with him: AOP is just the beginning of a new paradigm shift.

Which leads me to the topic of this post: I had this "paradigm shift" feeling when reading a great book that I found when browsing books randomly in the CS section at the Stanford Bookstore in University last time I went to the US:

Generative Programming by Krzysztof Czarnecki & Ulrich Eisenecker.

I picked it because there was a section on AOP that seemed to cover more than just AspectJ.

Generative programming is described as: "A set of techniques that enables programs to be automatically constructed from smaller domain-specific programs. Generative programming brings the benefits of automation to software development" from Intentional Software's glossary.

I did not finish it yet but I was blown away by the ideas developped there: the same kind of feeling I had 5 years ago when I discovered the GoF's Design Patterns.

Here's a book review at the ACCU.

AOP is one of the techniques of Generative Programming, and seeing the flurry of tools and experiments that florish in the java community these days i think it's the first one we'll enjoy in our work lives.
 
But the most promising technology described in the book is something called Intentional Programming.
It is a project created by Charles Simonyi at Microsoft research.

Intentional Programming (IP) was a research project at Microsoft until spring 2001. In IP source code is stored in a hierarchical database were each node is an instance of a programming language construct. Programs can be edited using a structured editor with full graphics layout capabilities. An extensible compiler architecture enables the introduction of new user-defined keywords. There was also a work focus on representing traditional languages like C++ and Java inside IP.

The Intentional Software Corporation (intentsoft) is trying to evolve this technology developed by the Microsoft Intentional Programming Team into a shipping product.

This is not an open source project, there is no source code, not even some downloadable demo, not even any docs online. But the IP system and its design is very well described in the book and looks very promising.

The idea is that there is no textual source code, but an editor that lets you edit what they call "active source". Active source carries with it runtime methods to do the following: rendering of the code (to present it, type-in (to type or enter it), reduction (to compile it to bytecode, that they call R-code), debugging, editing and refactoring, version control.

What you edit then is not a text file but an abstract syntax tree (AST), ie the representation that your compiler would have of your text based code. This means that the costly parsing step of regular languages is removed, so is the need for IDEs to determine the structure of your code based on text files (the code repositories of current IDEs that that Cedric advocates should be shared by other tools).

But you edit it in a form that is domain specific: if I do math, I'll get a math formulas editor to edit my formulas, by importing the Math intention, but I can mix this code with some C or java code using the C or java intention. The good thing is that at debugging time I can inspect my Math objects at runtime, and not some obscure generated code, because debugging support will be provided by the Math intention.

This is a perfect environment for AOP, since AST nodes are perfect pointcuts, and in order to use them I just have to link to them at edition time.

I was very impressed by the decription of IP in this book. Then I did a little Googling to determine what had become of it, and found that:
The Home page of Intentional Software, the company he created to develop IP.
and more importantly, this press release on their web site: New Venture Set for Dramatic Improvement of Software Code
Bellevue, WA—September 17, 2002---Dr. Charles Simonyi, Distinguished Engineer at Microsoft and Professor Gregor Kiczales of the University of British Columbia today announced the formation of Intentional Software Corporation (ISC), a new company that will develop technology to greatly improve software development productivity by capturing the design intent clearly in the code. In addition, a licensing agreement with Microsoft has been signed that – in essence – gives Microsoft a “first right of negotiation” for developments in the critical early years.
...
Kiczales notes, “There is tremendous synergy between intentional programming and aspect-oriented technology. Working together, Intentional Software Corporation will be able to give developers some exciting, and very useful tools. Our AspectJ users are already asking for tools like these.”
I think it says it all: after creating AspectJ, Gregor Kiczales is going to implement the next paradigm shift with Simonyi at IntentSoft: what a dream team !
Which brings me back to Cedric's Gregor Kiczales on the AOP caching challenge: Kiczales thought experiment is very convincing to me, and I think outlines very well the drawbacks of the XML approach. Static Typing is a great advantage ... and by the way, it is at the heart of IP, where "anything you use has to be declared and defined somewhere" :-)
 
Thanks Cedric for asking the right questions: I always learn from your inquiries.
 

4:52:49 PM Google It!      comment []

[OS X] iTerm rocks. [James Strachan's Radio Weblog]


[OS X] iTerm rocks. [James Strachan's Radio Weblog]

Can be useful when i finally get my new powerbook !


2:10:54 PM Google It!      comment []

Liste des SSII française. [eboudrant::blogsbuster]


Liste des SSII française. Voici une liste (non-exaustive) qui peut être utile ;)

http://indep.hitechpros.com/info/list_ssii.asp?titlebar=Liste%20des%20SSII 

... [eboudrant::blogsbuster]

Can come in handy.


2:08:54 PM Google It!      comment []

Will Ericsson Bail out of SonyEricsson?. [Russell Beattie Notebook]


Will Ericsson Bail out of SonyEricsson?. [Russell Beattie Notebook]

One of my friends just bought a P800. I should fwd him that post :-)

 


2:08:07 PM Google It!      comment []

Twisted Python. [Meerkat: An Open Wire Service]


Twisted Python. The Twisted application framework provides rocket-powered tools for your next network application. [Meerkat: An Open Wire Service]

I need soon to create a new Python category in my weblog :-)


2:06:53 PM Google It!      comment []

Moving from Radio to MT ?


MT. Dave has his Movable Type migration well on the way. [Simon Fell]

I've read Dave's previous post, Spring cleaning,  about why he chose to move and can echo very similar feelings. I just renewed my UserLand registration and am too busy these days to consider a migration, but I am definitely thinking about it.

I really agree with his characterization of Radio: the object database and UserTalk was interesting to look at and is an original architecture, but I don't want to delve too deep into it because it is not reusable elsewhere. After I got my hands dirty fixing Jon Udell's blogroll macro (to discover that he had fixed it himself before and much more elegantly) I wanted to implement trackback in UserTalk but never found the time to get to it. What I've read about MT's plugin architecture made me salivate enough to want to play with it.

 


2:05:06 PM Google It!      comment []

Sudhakar gets a little help from his new friends


Request for help from a Geek Volunteer. Over the years, we've donated books to many nonprofits and schools in developing countries. Last October, I received an email from Sudhakar Chandra, a self-described "geek volunteer," that got me thinking about how O'Reilly and other companies could do a better job of supporting the good works of people like Sudhakar. [Meerkat: An Open Wire Service]

I'm glad that Tim's helping Sudhakar. I used to work with Sudhakar when he was at Netscape and he was both an extremely competent geek and a good guy (I till have his old email address in my Netscape addressbook Sudhakar Chandrasekharan <thaths@netscape.com> :-)

I had heard from friends at Netscape that he left the company to do some humanitarian work, and that was well before the dot bomb: I admired him a lot for making this choice then.

Good luck Sudhakar.

 

 


1:58:10 PM Google It!      comment []

Google buys Applied Semantics [InfoWorld: Top News]


Google buys Applied Semantics. Deal will boost Google's search and ad programs [InfoWorld: Top News]

I hope they'll apply this technology to a more interesting (for their users) use than ads :-)

I can see some synergy between this kind of semantic matching technology with the blogger techno they acquired recently. Blogging + RSS feeds + matchmaking = community forming.

 

 


1:51:33 PM Google It!      comment []

The World as a blog [Raw Blog]


The World as a blog. the World as a Blog is doing some interesting things...... [Raw Blog]

Looks like an interesting visualization... but I don't see anything apart from the map !


1:47:56 PM Google It!      comment []

© Copyright 2003 Patrick Chanezon.
 
April 2003
Sun Mon Tue Wed Thu Fri Sat
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30      
Mar   May


Click here to visit the Radio UserLand website.

Subscribe to "Patrick Chanezon's Radio Weblog" in Radio UserLand.

Click to see the XML version of this web page.

Click here to send an email to the editor of this weblog.

Listed on BlogShares

currently subscribed to 105 feeds:

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link <big>kev's</big> catalogue of this and that.

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link ::Manageability::

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link A Frog in the Valley. Communication + Technologies

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link Aaron Swartz: The Weblog

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link Adam Curry: Adam Curry's Weblog

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link Ascription is an anathema to any enthusiasm

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link Blogging Roller

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link Blogzilla - a blog about Mozilla

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link boson2x

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link Brian Behlendorf's Blog

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link CNET News.com

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link CNET News.com - Personal Technology

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link Collaxa's Take

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link crazybob.org - web log

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link Crowbar Tech

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link Danno Ferrin: ... Speling Errors

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link Dictionary.com Word of the Day

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link dive into mark

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link dive into mark/Projects

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link Don Box's Spoutlet

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link Duncan's Blog

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link eboudrant::blogsbuster

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link Eclectic

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link Elwyn Jenkins: Google™ Village

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link Erik's Weblog

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link freshmeat.net

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link graham glass: what's next?

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link grubbel

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link hackdiary

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link Holovaty.com

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link Hugo Out There

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link I bla-bla-bla

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link InfoWorld: Top News

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link InfoWorld: Web Services

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link James Strachan's Radio Weblog

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link java

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link Java and Me

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link Java in France

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link JB's Weblog

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link Jeff Turner's Weblog

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link jelly

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link Jeroen Bekkers' Groove Weblog

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link Joel on Software

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link Joi Ito's Web

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link Jon Schull's Weblog

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link Jon's Radio

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link Karl & Cow - The Boring Weblog

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link Kevin Lynch

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link kuro5hin.org

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link Loosely Coupled weblog

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link Marc Barrot: aRupdates

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link Marc's Voice

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link Meerkat: An Open Wire Service

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link meltsner

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link Mitch Kapor's Weblog

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link Mozquito XForms

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link Nature: Human Genetics

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link Nelson's Weblog

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link New York Times: Business

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link New York Times: Technology

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link O'Reilly Network Articles

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link ongoing

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link OpenSymphony Wiki

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link Otaku, Cedric's weblog

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link Padawan.info

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link Perl.com Perl.com

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link Peter Drayton's Radio Weblog

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link Pierre's Web

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link Raible Designs · We Build Web Apps

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link Random thoughts

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link Raw Blog

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link Ray Ozzie's Weblog

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link rebelutionary

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link Release 4.0

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link Ross Mayfield's Weblog

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link Russ Lipton Documents Radio

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link Russell Beattie Notebook

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link s l a m

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link Salon.com

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link Sam Ruby

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link Scientific American

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link Scripting News

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link Servlets.com Weblog

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link Simon Fell

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link Slashdot

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link Smart Mobs

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link Stefano's Linotype

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link The .NET Guy

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link The FuzzyBlog!

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link The GrooveLog

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link The Motley Fool

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link TheServerSide.Com: Your J2EE Community Forum

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link Thesis Weblog

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link Tomalak's Realm

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link UserLand Product News

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link Webmink: the blog

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link Welcome to the real world

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link Wired News

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link World Wide Web Consortium

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link WriteTheWeb

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link xmlhack

Radio UserLand users: click to subscribe. Other folks: use the RSS link to acquire this channel. RSS link YOULA French broadcasting network

Here's how this works.