"I stands all I can stands and I can't stands no more!"  (Popeye the
Sailor Man)

As most of you may (or may not) know, we have a fairly active Java
Metroplex User Group (http://www.JavaMUG.org) here in the DFW area.  One
of our members (George Lawniczak)is totally sold on Aspect Oriented
Programming (AOP) and gave a two hour talk way back on August 27th on
the advantages and benefits of AOP.  George is also a MicroSoft Maven
but, then, we all have our skeletons in the closet.  Some of the
advantages that he covered were

1. Multiple Inheritance, even allowing the "dreaded diamond" effect 
2. Removing objects from scope or putting them into scope willy nilly 
3. The power to "not inherit" some attributes from a parent class 
4. Changing inheritance of a class from one to another 
5. Making all or some of the AOP advantages available to all members of
the project 6. Event-driven type programming, i.e., triggers 7.
Dynamically have classes/objects inherit or not inherit "on the fly" 8.
Rules don't care what happens outside of the rules.  When we get the
"stuff" it's static.

etc., etc., etc.  One of the "selling features" of Java, originally, was
getting rid of multiple inheritance and moving it over, or up, to an
interface.  An interface is, after all, a design concept rather than a
construction concept.  (Thanks, Hafedh.)  The other "advantages" really
went out into the Twilight Zone, taking over from the basic Java
compiler and saying that, from now on (for this project) we will have
thus and so, thereby putting these things in the hand of all programmers
on the project.

On the positive side:  On a small, tightly-coupled project, I could see
using that kind of power.  Maybe.  If we really needed it.  On a large
project with lots of "newbies" all I could see was disaster and mayhem.


Didn't we have lots of power with C/C++ programming?  And wasn't it
really tough to get "newbies" to learn to code properly?  After all,
most of us had to memorize Scott Meyers 85 rules (contained in two
books) in order to properly code a C++ project.  Basically, AOP looks
like C/C++ Templates on steroids.  And STL could REALLY mess up some
good C/C++ code in the hands of a renegade programmer.  Admittedly, Java
took away a lot of the "power" that we enjoyed in C/C++ but it also
restored a certain degree of order.  

Another email is coming concerning that "procedural vs. declarative
programming paradigm" part of this thread later today.  Richard Halsey
calls it "deterministic vs. non-deterministic" but I think that all
computer programs are state machines (well, they ARE!) and that any
program is deterministic such that with the same rules and the same data
you get the same result, otherwise it would be chaos and I don't
subscribe to the chaos theory.  (Mostly because I don't understand it.
:-)

Now, I've said all of this without reading a single book on the subject,
just the articles and the talk from George and reading some of the
information on the web.  For example, here's an interview with Gregor
Kiczales.

http://www.theserverside.com/events/videos/GregorKiczalesText/interview.
jsp

And here is link to Doctor Dobbs Journal with lots of articles, etc., on
AOP.  You have to sign up to read the articles but there's no charge.

http://www.ddj.com/articles/2002/0208/

There's even a bi-annual DVD magazine devoted to AOP

http://www.aspectmag.com/?OVRAW=AspectJ&OVKEY=aspect&OVMTC=standard

enjoy...  :-)

SDG
jco
 
-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
On Behalf Of Alan Moore
Sent: Wednesday, October 01, 2003 11:28 PM
To: '[EMAIL PROTECTED]'
Cc: [EMAIL PROTECTED]
Subject: Aspects and rules (was RE: JESS: Jason Morris interview)


Right on. Good interview - I like the bits about "back to the future"
;-D

Speaking of the future, I was lurking on aosd-discuss and the
discussion:

http://aosd.net/pipermail/discuss/2003-August/000887.html

was about event vs. aspect oriented programming and I posted asking
about how those compare to rule based programming. A paper by Filman and
Friedman (no relation?) was quoted as saying:

Long quote from: http://ic.arc.nasa.gov/~filman/text/oif/aop-is.pdf

"Rule-based systems like OPS-5[4] or, to a lesser extent, Prolog are
programming with purely dynamically quantified statements... If we all
programmed with rules, we wouldn't have AOP discussions. We would just
talk about how rules that expressed concerns X, Y, and Z could be added
to the original system, with some mention of the tricks involved in
getting those rules to run in the right order and to communicate with
each other. The base idea that other things could be going on besides
the main flow of control wouldn't be the least bit strange.

But by and large, people don't program with rule-based systems...
They've destroyed the fundamental sequentially of almost everything. The
sequential, local, unitary style is really very good for expressing most
things. The cleverness of classical AOP is augmenting conventional
sequentially with quantification, rather than supplanting it wholesale."

R.E. Filman and D.P. Friedman, "Aspect-Oriented Programming is
Quantification and Obliviousness", Workshop on Advanced Separation of
Concerns, OOPSLA 2000, October 2000, Minneapolis.

As it turns out, it isn't as hard as all that - especially with jess. It
appears that these are complimentary rather than conflicting
technologies.

Aspects help create events or the aforementioned control structures from
which rules can reason. The noisy work of maintaining "computed"
value/state can also be lifted out the rules and data model and sliced
in via aspects leaving a cleaner rule set. Rule oblivious components can
be easily integrated via aspects - today.

"What are you waiting for?" (tm)

alan

-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
Sent: Wednesday, October 01, 2003 6:18 PM
To: Jess Mailing List
Cc: [EMAIL PROTECTED]
Subject: JESS: Jason Morris interview


Hi all,

Jason Morris has done an interview with me that he's prepping for
publication; you can see an excerpt along with a handsome photograph of
yours truly at http://www.morristechnicalsolutions.com/ .

---------------------------------------------------------
Ernest Friedman-Hill  
Distributed Systems Research        Phone: (925) 294-2154
Sandia National Labs                FAX:   (925) 294-2234
PO Box 969, MS 9012                 [EMAIL PROTECTED]
Livermore, CA 94550         http://herzberg.ca.sandia.gov

--------------------------------------------------------------------
To unsubscribe, send the words 'unsubscribe jess-users [EMAIL PROTECTED]'
in the BODY of a message to [EMAIL PROTECTED], NOT to the list (use
your own address!) List problems? Notify [EMAIL PROTECTED]
--------------------------------------------------------------------

--------------------------------------------------------------------
To unsubscribe, send the words 'unsubscribe jess-users [EMAIL PROTECTED]'
in the BODY of a message to [EMAIL PROTECTED], NOT to the list (use
your own address!) List problems? Notify [EMAIL PROTECTED]
--------------------------------------------------------------------

--------------------------------------------------------------------
To unsubscribe, send the words 'unsubscribe jess-users [EMAIL PROTECTED]'
in the BODY of a message to [EMAIL PROTECTED], NOT to the list
(use your own address!) List problems? Notify [EMAIL PROTECTED]
--------------------------------------------------------------------

Reply via email to