>> To test out the possibilities of using traits for refactoring, I had a go at
>> rationalising OmniBrowser/OmniBrowser2.
>
> Good! I like the idea to have traits shared between browser.

What is the benefit for the maintainers of the two browser?

To me this doesn't make any sense: the Traits themselves don't have
any meaning, they are just there to share code that randomly matches
in both implementations. I imagine that changing a trait for one
browser almost certainly breaks something in the other browser? Who
ensures that the trait use is kept in sync between the two
implementations? How can I avoid to accidentally leak code from one
browser into the other one? What happens if one of the browsers
reactors its class hierarchy?

To me this all looks like a lot more work, more things to maintain and
think about.

The only reasonable solution of reuse for O2 would be to use OB as it
is intended to be used. The fork only exists because O2 applies
crosscutting changes throughout the complete OB meta-model, the view
and the specific model of the standard browser. Numerous other
browsers have successfully been built and they show nearly 100% code
reuse: the refactoring browser, the debugger, the inspector, the
workspace, the transcript, all the GemStone tools, the Monticello 2
browsers, the Seaside browsers, Pier browser, ...

Lukas

-- 
Lukas Renggli
http://www.lukas-renggli.ch

_______________________________________________
Pharo-project mailing list
[email protected]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project

Reply via email to