Re: AspectJ: solution to Java's repetitiveness?
EricF wrote:
I've only touched AspectJ a bit, some code I inherited at work. Basically a
regular expression is used to insert bytecode - that's the weaving. You're not
weaving in methods, you're weaving in lines of code. You do have access to
"this".
The weaving I saw -- possibly Spring, since that's one framework I
looked at a long while ago -- wove directly in byte code. In other
words, directly on the .class file, not in source code. (Early versions
of Aspect Oriented Programming I think used source code instead of byte
code.)
I thought it used annotations instead of the "regular expression" bit,
but I could be mistaken.
Anyway, with access to a this pointer, it seems like code weaving could
solve at least some of the OP's issues. I think it would work for
toString(), it might work for Clonable. Add a weave for Copyable and
DeepCopyable and you might have it, which weave into a clone() method,
and you might have it.
Java gets really close to full support for most of the OP's concerns.
Its toString() works fine, just not how the OP wanted. clone() and
serialization (with XML) are there, they just need a bit of tweaking.
I don't see the need, but if you really must drive a code base to the
minimum number of lines, and also support a lot of wordy, tedious
interfaces on every object, code weaving might get you there.
OTOH code weaving and GWT might throw the hell up. Weaving on byte codes
at least I'm sure would not be supported when your "byte codes" are
Javascript. Source code weaving... might work.