Talk:Metaobject
From Wikipedia, the free encyclopedia
[edit] MOPs in Java?
Do Java's java.lang.reflect.* classes implement a limited, if any, form of a MOP? Or is intercessive reflection an essential requirement? --Wouter Lievens 13:08, 1 May 2005 (UTC)
- I would say that, no, the java.lang.reflect does not implement a mop in any sense. It is purely a way of performing reflection. A mop, would, for example, allow a programmer to alter the way inheritance is implemented, or alter the way dynamic dispatch works. Providing a standard means for (meta-)programmers to change the garbage collection algorithm of a java implementation is another example of what a mop could do. --Andrew Eisenberg 23:08, 5 May 2005 (UTC)
[edit] Aspect orientation
- The lack of a meta-object protocol in languages such as Java is one of the motives for the development of aspect-oriented programming.
I disagree with this comment from the main page. AOP came about as a way to modularize crosscutting concerns, it has nothing to do with not having a mop in Java. It is true that a mop is one way to implement an aop language. It's also true that the many people who worked on early mop implementations are now working on early aop implementations. A better way of saying this would be:
- A metaobject protocol is one way to implement aspect-oriented programming languages. Many of the early founders of MOPs, including Gregor Kiczales have since moved on to be the primary advocates for aspect-oriented programming.

