Re: Raise of hands (virtually): How many here use AOP?



I'll make this short.

Thanks for your thoughts. I'll try the same.

Are you saying that each implementation of AOP is essentially defining
a new language that is project specific?

Yes, insofar as it overloads existing language constructs with new
meaning.

I kind of understand what you are meaning (talking about pattern
matching) since the names of some class and methods are specific to a
project. Some Aspects may be specific to a project with behavior
attached by names referenced in the pointcuts. So behavior is specific
to the project on those bases. Not sure I would call it a project
specific language overloading or not though, since the same compiler
can resolve all projects. That and ultimate behavior is always
specific to and pretty much the definition of a project with or without
AOP. Otherwise it wouldn't be a project because the problem had
already been solved. From those two perspectives I wouldn't attribute
such a label to AOP including pattern matching features.

I think you're underestimating the impact of working in a language or
environment where surprising things happen.

Maybe I do work in such an environment. Maybe I'm so used to it...
It's not surprising. I don't know, maybe I'm speaking out of turn
since I am still in research mode, so going out on a limb... I can get
my head around it all pattern matching or not. I don't see what the
big surprises are as long as I know Aspects are in the picture and
especially if the IDE leads me right to them.

I think these concepts can be extended to the programming environment
itself, as well. It may only take a small amount of time to deal with
an issue, but if it's unexpected and interrupts what a programmer was
doing, it's costly.

I just don't see it any worse than a method call that I have to click
on to get the definition to open up in another tab.

Right, so each of them contains one line of code that calls some
function. I don't see the problem. All the stuff about keeping the
copies in synch, or telling the difference between this code and the
core functionality, etc. seem rather exaggerated.

How is it just one call? You're having to carry additional context
around where ever you go (what ever you call).

Yeah that's where communication breaks down here. You say it's ok
under the "annotations" condition, you have tools available to use
annotations, and then you say it's bad programming

No, sorry. I mean that overloading *existing* language features via AOP
is bad programming. I didn't mean for that to apply to AOP that doesn't
overload language features.

Ok, I'll stop "reading in" even where it seems...

I mean that AspectJ, to pick an example, would be considerably simpler
if it excluded the ability to use gazillions of types of information to
specify exactly where advice is weaved into code. If you get rid of all
that stuff about type patterns, method patterns, etc. and just define a
simple language that lets the programmer attach code to class, method,
or field accesses with a certain annotation, then you end up with a far
simpler, more elegant language.

That's where we disagree. IMHO it already is simpler because you can
choose to solve a problem with whatever constraints you want to place
on your source.

.



Relevant Pages

  • Re: A request for information please.
    ... Could language explain our intelligence? ... with instincts! ... not possible without possessing consciousness or a mind. ... But Pi is not considered random even though it has no pattern because ...
    (comp.ai.philosophy)
  • Re: dynamic vs. static: the age-old debate
    ... How is it possible to write something in a language that does not ... only Mathematica's pattern matcher and the FreeQ ... The core of the integrator consists of four "rules". ...
    (comp.lang.misc)
  • Re: Need advices regarding signature tunning...
    ... More advanced pattern matching engines will allow you to set simple state variables based on patterns and to use those state variables as conditions in later patters. ... Just like vulnerable clients and servers write their protocol parsers in full featured, turing-complete, languages this approach uses some programming language to implement bits of code that handle specific sets of traffic. ...
    (Focus-IDS)
  • Re: array or with non-array
    ... David A. Black wrote: ... > matching an IO object to a pattern. ... > there *should* be an explicit, intervening string representation. ... This works pretty well for every pattern without anchors. ...
    (comp.lang.ruby)
  • Re: "string match" and "glob" pattern rules
    ... So having none glob-style pattern matching engineen would only be ... something for tcl 9. ... I've often thought that a centralised string matching engine would make ...
    (comp.lang.tcl)