Apologies if this has been said before; I haven't read all of the comments.
Apologies if this has been said before; I haven't read all of the comments.
Still, this bears repeating.
Squeak is a software development environment.
EToys is an application that uses Squeak.
As such when EToys finds that a Squeak method
doesn't do what EToys needs then EToys should
create a subclass of the class containing the method
and create its version of the method in the subclass.
I have had to do this many times.
I realize this approach can sometimes be complicated
because wherever the subclass is to be created is
a method that must also be modified. This implies that a new
subclass of the class containing the subclass creating method
must also be created. This can be a real nightmare and I expect
would be so for EToys. But EToys gains the advantage of
not needing a fork of Squeak to proceed and Squeak
gains the advantage of not using any EToys code.
Remember that Pharo was created in part
because its supporters didn't believe EToys should be part of Squeak.
This is how OO software applications should be developed
and I don't understand why ETorys was instead developed the
way it was.
If it is a performance issue then replacing a method directly,
as done in EToys, should only be done where the need for
the performance gain is demonstrated.
"If you are not an expert don't optimize;
if you are an expert don't optimize yet."
I don't know who said this but somebody did.
Ralph