[squeak-dev] Re: Gofer versus Installer
Andreas Raab
andreas.raab at gmx.de
Fri Dec 17 04:55:34 UTC 2010
On 12/16/2010 4:37 PM, Dale Henrichs wrote:
> In my experience implementations that are written using only a few
> classes are more difficult to extend because the key assumptions are
> spread throughout the methods rather than isolated in classes ... you
> have to copy/modify/maintain a lot of code that is not related to what
> you are trying to accomplish...
Generally speaking, yes. If you dump everything in a single class or two
then you're going to end up in a mess. However, if most of your classes
end up having a single method or two for no tangible benefit, there's a
bad smell there as well.
> I haven't looked at the goofy implementation to see how easy it would be
> to use from within Metacello I don't need to ... gofer works just fine
> for what I need:)
Abso-freaking-lutely! Let's not forget what this discussion is about. It
is *not* about Gofer vs. Goofy. It's about Gofer versus Installer. And
in this context, I've been trying to make a couple of points with Goofy:
1) Gofer is a thin veneer over Monticello with a better client API. I
think Goofy shows this very clearly, much more clearly than Gofer does.
2) One of the reasons we're having this discussion is because people
feel that Gofer is "sizable" enough that they wouldn't want to have both
Gofer and Installer. But the reality is that Gofer is tiny. The reason
it feels sizable is that it has 20-something classes lingering around
for no particular good reason.
3) Another issue in this this discussion is that Lukas uses Pharo
exclusively and the issue of maintenance has been brought up. Which is
largely a function of complexity. One of the things that Goofy shows is
just how trivial it is to reimplement the API if that were ever needed.
That's it. I am absolutely in favor of having a good client API for
Monticello. I would prefer if the class representing would be called
"MCClient" or "MCClientAPI" instead of "Gofer", but other than that I'm
making an argument *for* Gofer not against it. Unfortunately, people
only hear what they want to hear, so to make really, really sure
everyone is hearing what I'm saying I'll say it five more times:
I want Gofer *in addition to* Installer.
I want Gofer *in addition to* Installer.
I want Gofer *in addition to* Installer.
I want Gofer *in addition to* Installer.
I want Gofer *in addition to* Installer.
Oh, and @Lukas: Sniping from the back seats is never helpful.
Cheers,
- Andreas
PS. Also, one additional reason for Goofy was that I wasn't sure if
there might be hidden gotchas with the implementation that would turn
out to require the command pattern. I've seen that happening before and
didn't want to be caught with egg on my face :-)
More information about the Squeak-dev
mailing list
|