Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
RE: [aspectj-users] AspectJ and JBoss AOP implementation

On Thu, 22 Jan 2004, Gregor Kiczales wrote:

> So then the question is, if you're going to have a new language
> for describing the crosscutting structure of aspects, would you
> rather have that embedded in the existing OO language (Java) or
> as a bolt-on. I can actually see arguments either, although I
> clearly prefer the embedded in Java solution personally!
>
> What do people think of the above argument?

I think there's a mental barrier in learning a new language that isn't
really there with a preprocessor. For example, people knew C++ was an
extension to C, but that didn't make it any easier for them to learn, and
there were exceptions where C++ wasn't quite like a superset of C.

A full compiler also says something about the complexity of the language.
Because ajc needs to see every source file and not just make passes over
them one at a time it implies that the added semantics go deep. When I
learned C++ in high school the only thing that made it click for me was
reading about the implementation of v-tables. Suddenly the abstract
concepts became very concrete, which is to say, it started to make sense.
I think learning call/cc is similar. You can discuss abstracts for quite
some time, but I find eventually people want to know "so how is it done?"
Probably the people who best understand Lisp know that lambda doesn't
require self-modifying code. Given that, I think the message people get
from the AspectJ story is that "it adds code before and after your
methods."

So, I think the sociological barrier of "not everyone is a language
expert" or "not everyone likes languages" is a factor. People want to see
small (but complete) code examples with explanation of what's going on.
They don't mind learning new vocabulary, but they should probably be given
a short introduction to the big ideas before tackling something like
"Getting Started with AspectJ."

-Macneil


Back to the top