Hi Florin,
Eliot wrote:
Hi Levente, in my experience playing with the Dan and Alan Borning's multiple inheritance implementation getting things to work was one thing, reasonably straighforward, but getting tool support right (file-out format so that things filed back in correctly, etc) was another, an dth ebulk of the work. Looking at your proposal below I see no problem getting it to work but see lots of problems integrating it, e.g. with Monticello, etc. Traits is already integrated with Monticello, supported with tests, etc. As such it is a much less risky or effortful proposition than a new scheme. So with that in mind are there important functional benefits of your scheme's direct state access as compared with traits that use accessors to access state that each user of a trait must implement? i.e. what are the key benefits you see in direct inst var access? best Eliot
Hi Eliot,
I think there is a strong argument for stateful traits, especially since we are talking about collection smells.
One of the main selling points for traits (for me, at least) is that they would allow us to clean up the mess
created by inheritance for reuse (Dictionary is a Set) in existing libraries.
And obviously to create cleaner libraries going forward.
Well, inheritance for reuse is used not just for behavior, but for state as well.
Stateful traits would allow for a cleaner separation between inheritance and subtyping.
Stateful traits would even allow you to push the separation further and, as part of your design, you could have state-only traits
complementing behavior-only traits.
Let us not forget that clean concepts are also easier to learn. I think it is much more important to get the concepts right
than any existing integration with Monticello. Why does it matter that we have tests and integration if people are not
using traits?
Cheers,
Florin
_______________________________________________
Pharo-project mailing list
Pharo-project@lists.gforge.inria.fr
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project