"Lets accept it. For good or
bad, monticello packages are the way to go,
and gofer desing is around this observation." Your position is too extreme. I argued against SqueakMap about as hard as anybody can six, seven months ago. I got serious push back. Gofer is great and there are lots of reasons to use it. But I don't see any reason to break things, or decide for people who want to do things in an older mode. "Better, add to Installer that which Gofer does that Installer doesn't." This doesn't seem like a great idea. As somebody pointed out, it has no active maintainer. Lukas maintains Gofer and there are reasons to use it: closer relationship with Pharo, contemporary MC integration (Metacello). Chris |
El mar, 14-12-2010 a las 15:43 -0500, Chris Cunnington escribió:
> "Lets accept it. For good or bad, monticello packages are the way to > go, > > and gofer desing is around this observation." > > Your position is too extreme. I argued against SqueakMap about as hard > as anybody can six, seven months ago. > I got serious push back. Gofer is great and there are lots of reasons > to use it. But I don't see any reason to > break things, or decide for people who want to do things in an older > mode. Why extreme? Gofer made a decision to focus on Monticello because that is the current de facto format widely in use. I didn't say, kill SqueakMap or kill universes, I only said that almost nobody uses because great majority uses squeaksource and monticello to publish new packages and releases. Even if 10 or 50 people can raise the hand and say that they use changesets or publish in squeakmap, that, based on observations on the the squeak trunk, the squeaksouce.com latest activity landing page and the mailing lists from pharo and squeak, this is a hard fact. This is akin to the whole blue, yellow, other color click. The fact that someday the way to use Squeak and smalltalk was with a 3-colors mouse that doesn't validate the 2010 persistence of those terms to instruct users to do something. This is plain blindness to the fact that today, the mice sold and used in windows and linux have only 2 and with luck, 3 button, that in laptops is hard to do a 'middle-click' and the most evident one that macs have only one button. Legacy (code|platforms|customs) must be left behind and sometimes even killed for our own good. :) (that is indeed extreme, but I believe it ;) > > "Better, add to Installer that which Gofer does that Installer > doesn't." > > This doesn't seem like a great idea. As somebody pointed out, it has > no active maintainer. Lukas maintains Gofer > and there are reasons to use it: closer relationship with Pharo, > contemporary MC integration (Metacello). > > > Chris > > -- Miguel Cobá http://twitter.com/MiguelCobaMtz http://miguel.leugim.com.mx |
Miguel, it is never too late to kill old & legacy stuff.
Let people decide what they want by own. I learned that forcing people making a choice is counterproductive. You simply can't force it anyways. So, let the time tell which tool(s) are better and which will rot and die. -- Best regards, Igor Stasenko AKA sig. |
In reply to this post by Miguel Cobá
> This is akin to the whole blue, yellow, other color click. The fact that
> someday the way to use Squeak and smalltalk was with a 3-colors mouse > that doesn't validate the 2010 persistence of those terms to instruct > users to do something. Miguel, for a better understanding about this, see: http://wiki.squeak.org/squeak/897 The purpose for continuing to refer to colors is for the added level of indirection required by Squeak's platform-independence... So we don't have to say, in all dcoumentation: "If you're running on Windows, press the right button, if a Mac the Command-click, etc." - Chris On Tue, Dec 14, 2010 at 3:06 PM, Miguel Cobá <[hidden email]> wrote: > El mar, 14-12-2010 a las 15:43 -0500, Chris Cunnington escribió: >> "Lets accept it. For good or bad, monticello packages are the way to >> go, >> >> and gofer desing is around this observation." >> >> Your position is too extreme. I argued against SqueakMap about as hard >> as anybody can six, seven months ago. >> I got serious push back. Gofer is great and there are lots of reasons >> to use it. But I don't see any reason to >> break things, or decide for people who want to do things in an older >> mode. > > Why extreme? Gofer made a decision to focus on Monticello because that > is the current de facto format widely in use. I didn't say, kill > SqueakMap or kill universes, I only said that almost nobody uses because > great majority uses squeaksource and monticello to publish new packages > and releases. Even if 10 or 50 people can raise the hand and say that > they use changesets or publish in squeakmap, that, based on observations > on the the squeak trunk, the squeaksouce.com latest activity landing > page and the mailing lists from pharo and squeak, this is a hard fact. > This is akin to the whole blue, yellow, other color click. The fact that > someday the way to use Squeak and smalltalk was with a 3-colors mouse > that doesn't validate the 2010 persistence of those terms to instruct > users to do something. This is plain blindness to the fact that today, > the mice sold and used in windows and linux have only 2 and with luck, 3 > button, that in laptops is hard to do a 'middle-click' and the most > evident one that macs have only one button. > Legacy (code|platforms|customs) must be left behind and sometimes even > killed for our own good. :) (that is indeed extreme, but I believe > it ;) > > >> >> "Better, add to Installer that which Gofer does that Installer >> doesn't." >> >> This doesn't seem like a great idea. As somebody pointed out, it has >> no active maintainer. Lukas maintains Gofer >> and there are reasons to use it: closer relationship with Pharo, >> contemporary MC integration (Metacello). >> >> >> Chris >> >> > > -- > Miguel Cobá > http://twitter.com/MiguelCobaMtz > http://miguel.leugim.com.mx > > > > > |
In reply to this post by Chris Cunnington
At 3:43 PM -0500 12/14/10, Chris Cunnington apparently wrote:
>"Lets accept it. For good or bad, monticello packages are the way to go, > >and gofer desing is around this observation." > >Your position is too extreme. I argued against SqueakMap about as hard as anybody can six, seven months ago. >I got serious push back. Gofer is great and there are lots of reasons to use it. But I don't see any reason to >break things, or decide for people who want to do things in an older mode. > >"Better, add to Installer that which Gofer does that Installer doesn't." > >This doesn't seem like a great idea. As somebody pointed out, it has no active maintainer. I think this is a bogus argument. If that line of reasoning were followed, then one could easily say Monticello has no active maintainer. Otherwise why was all the work done to pull all the previous forks of Monticello together, and improve it for the future with v 1.5/1.6 thrown away, with trunk using some ancient version, and Pharo ditto. As far as i know, Installer repo on Squeaksource is available for people to post to in the open source way of doing things. > Lukas maintains Gofer >and there are reasons to use it: closer relationship with Pharo, contemporary MC integration (Metacello). I can accept using Gofer in trunk, for things that require it like reading it's own scripts. But I don't want to see Installer go away... because of all the things Installer does that Gofer doesn't. Ken G. Brown > >Chris |
In reply to this post by Chris Muller-3
El mar, 14-12-2010 a las 15:35 -0600, Chris Muller escribió:
> > This is akin to the whole blue, yellow, other color click. The fact that > > someday the way to use Squeak and smalltalk was with a 3-colors mouse > > that doesn't validate the 2010 persistence of those terms to instruct > > users to do something. > > Miguel, for a better understanding about this, see: > > http://wiki.squeak.org/squeak/897 Sure, I now, but I didn't know until three years after my first contact with Squeak. That is not good and we can expect that every new user read a wiki page to learn what the issue with the colored buttons is. This is not going to (and have not) work. Aim to the lazy user. To the user that "know" that the mouse have 2 buttons (or sometimes 3) or the mac user that only have a big square button and that is not going to learn why is good to have more than one button. > > The purpose for continuing to refer to colors is for the added level > of indirection required by Squeak's platform-independence... So we > don't have to say, in all dcoumentation: "If you're running on > Windows, press the right button, if a Mac the Command-click, etc." Maybe, but you're exchanging that for "read XXX wiki page and learn what a blue button/menu is, no matter that in the real no new computer comes with blue buttons" > > - Chris > > > > On Tue, Dec 14, 2010 at 3:06 PM, Miguel Cobá <[hidden email]> wrote: > > El mar, 14-12-2010 a las 15:43 -0500, Chris Cunnington escribió: > >> "Lets accept it. For good or bad, monticello packages are the way to > >> go, > >> > >> and gofer desing is around this observation." > >> > >> Your position is too extreme. I argued against SqueakMap about as hard > >> as anybody can six, seven months ago. > >> I got serious push back. Gofer is great and there are lots of reasons > >> to use it. But I don't see any reason to > >> break things, or decide for people who want to do things in an older > >> mode. > > > > Why extreme? Gofer made a decision to focus on Monticello because that > > is the current de facto format widely in use. I didn't say, kill > > SqueakMap or kill universes, I only said that almost nobody uses because > > great majority uses squeaksource and monticello to publish new packages > > and releases. Even if 10 or 50 people can raise the hand and say that > > they use changesets or publish in squeakmap, that, based on observations > > on the the squeak trunk, the squeaksouce.com latest activity landing > > page and the mailing lists from pharo and squeak, this is a hard fact. > > This is akin to the whole blue, yellow, other color click. The fact that > > someday the way to use Squeak and smalltalk was with a 3-colors mouse > > that doesn't validate the 2010 persistence of those terms to instruct > > users to do something. This is plain blindness to the fact that today, > > the mice sold and used in windows and linux have only 2 and with luck, 3 > > button, that in laptops is hard to do a 'middle-click' and the most > > evident one that macs have only one button. > > Legacy (code|platforms|customs) must be left behind and sometimes even > > killed for our own good. :) (that is indeed extreme, but I believe > > it ;) > > > > > >> > >> "Better, add to Installer that which Gofer does that Installer > >> doesn't." > >> > >> This doesn't seem like a great idea. As somebody pointed out, it has > >> no active maintainer. Lukas maintains Gofer > >> and there are reasons to use it: closer relationship with Pharo, > >> contemporary MC integration (Metacello). > >> > >> > >> Chris > >> > >> > > > > -- > > Miguel Cobá > > http://twitter.com/MiguelCobaMtz > > http://miguel.leugim.com.mx > > > > > > > > > > > -- Miguel Cobá http://twitter.com/MiguelCobaMtz http://miguel.leugim.com.mx |
2010/12/14 Miguel Cobá <[hidden email]>:
>> >> The purpose for continuing to refer to colors is for the added level >> of indirection required by Squeak's platform-independence... So we >> don't have to say, in all dcoumentation: "If you're running on >> Windows, press the right button, if a Mac the Command-click, etc." > > Maybe, but you're exchanging that for "read XXX wiki page and learn what > a blue button/menu is, no matter that in the real no new computer comes > with blue buttons" > As I understood it, even the Alto rarely had coloured mouse buttons, they were most often black. So virtuality of these colours does not appear to be a new thing. Is that true ? Nicolas |
In reply to this post by Miguel Cobá
Well, I think those are good points.
On Tue, Dec 14, 2010 at 4:03 PM, Miguel Cobá <[hidden email]> wrote: > El mar, 14-12-2010 a las 15:35 -0600, Chris Muller escribió: >> > This is akin to the whole blue, yellow, other color click. The fact that >> > someday the way to use Squeak and smalltalk was with a 3-colors mouse >> > that doesn't validate the 2010 persistence of those terms to instruct >> > users to do something. >> >> Miguel, for a better understanding about this, see: >> >> http://wiki.squeak.org/squeak/897 > > Sure, I now, but I didn't know until three years after my first contact > with Squeak. That is not good and we can expect that every new user read > a wiki page to learn what the issue with the colored buttons is. This is > not going to (and have not) work. Aim to the lazy user. To the user that > "know" that the mouse have 2 buttons (or sometimes 3) or the mac user > that only have a big square button and that is not going to learn why > is good to have more than one button. > > >> >> The purpose for continuing to refer to colors is for the added level >> of indirection required by Squeak's platform-independence... So we >> don't have to say, in all dcoumentation: "If you're running on >> Windows, press the right button, if a Mac the Command-click, etc." > > Maybe, but you're exchanging that for "read XXX wiki page and learn what > a blue button/menu is, no matter that in the real no new computer comes > with blue buttons" > >> >> - Chris >> >> >> >> On Tue, Dec 14, 2010 at 3:06 PM, Miguel Cobá <[hidden email]> wrote: >> > El mar, 14-12-2010 a las 15:43 -0500, Chris Cunnington escribió: >> >> "Lets accept it. For good or bad, monticello packages are the way to >> >> go, >> >> >> >> and gofer desing is around this observation." >> >> >> >> Your position is too extreme. I argued against SqueakMap about as hard >> >> as anybody can six, seven months ago. >> >> I got serious push back. Gofer is great and there are lots of reasons >> >> to use it. But I don't see any reason to >> >> break things, or decide for people who want to do things in an older >> >> mode. >> > >> > Why extreme? Gofer made a decision to focus on Monticello because that >> > is the current de facto format widely in use. I didn't say, kill >> > SqueakMap or kill universes, I only said that almost nobody uses because >> > great majority uses squeaksource and monticello to publish new packages >> > and releases. Even if 10 or 50 people can raise the hand and say that >> > they use changesets or publish in squeakmap, that, based on observations >> > on the the squeak trunk, the squeaksouce.com latest activity landing >> > page and the mailing lists from pharo and squeak, this is a hard fact. >> > This is akin to the whole blue, yellow, other color click. The fact that >> > someday the way to use Squeak and smalltalk was with a 3-colors mouse >> > that doesn't validate the 2010 persistence of those terms to instruct >> > users to do something. This is plain blindness to the fact that today, >> > the mice sold and used in windows and linux have only 2 and with luck, 3 >> > button, that in laptops is hard to do a 'middle-click' and the most >> > evident one that macs have only one button. >> > Legacy (code|platforms|customs) must be left behind and sometimes even >> > killed for our own good. :) (that is indeed extreme, but I believe >> > it ;) >> > >> > >> >> >> >> "Better, add to Installer that which Gofer does that Installer >> >> doesn't." >> >> >> >> This doesn't seem like a great idea. As somebody pointed out, it has >> >> no active maintainer. Lukas maintains Gofer >> >> and there are reasons to use it: closer relationship with Pharo, >> >> contemporary MC integration (Metacello). >> >> >> >> >> >> Chris >> >> >> >> >> > >> > -- >> > Miguel Cobá >> > http://twitter.com/MiguelCobaMtz >> > http://miguel.leugim.com.mx >> > >> > >> > >> > >> > >> > > -- > Miguel Cobá > http://twitter.com/MiguelCobaMtz > http://miguel.leugim.com.mx > > > > > |
In reply to this post by Igor Stasenko
Agreed. Tools that aren't used enough, will not get enough maintenance and slowly rot away. Open source is not about forcing such decisions on people. It's part of an open project's "fitness function" to have competing implementations for a given number of tasks.
Igor Stasenko <[hidden email]> schrieb am 14.12.2010 22:35: Miguel, it is never too late to kill old & legacy stuff. Let people decide what they want by own. I learned that forcing people making a choice is counterproductive. You simply can't force it anyways. So, let the time tell which tool(s) are better and which will rot and die. -- Best regards, Igor Stasenko AKA sig. |
In reply to this post by Ken G. Brown
Hi guys,
Cross posted to Squeak and Pharo. On 14. 12. 2010 22:56, Ken G. Brown wrote: >> Lukas maintains Gofer >> and there are reasons to use it: closer relationship with Pharo, contemporary MC integration (Metacello). > > I can accept using Gofer in trunk, for things that require it like reading it's own scripts. > But I don't want to see Installer go away... because of all the things Installer does that Gofer doesn't. What if someone: 1. adds to Gofer loading from SqueakMap and other 2. then Lukas is kindly asked to rename it to the Installer. That way we will have a maintained installer with a meaningful name and everyone will be happy. Because we really need one and only one installer for both Squeak and Pharo. Best regards Janko -- Janko Mivšek AIDA/Web Smalltalk Web Application Server http://www.aidaweb.si |
On 12/15/2010 6:27 AM, Janko Mivšek wrote:
> What if someone: > > 1. adds to Gofer loading from SqueakMap and other > 2. then Lukas is kindly asked to rename it to the Installer. > > That way we will have a maintained installer with a meaningful name and > everyone will be happy. Because we really need one and only one > installer for both Squeak and Pharo. Slightly wrong. Gofer isn't an installer. Gofer is the API for Monticello. If you wanted to rename it you should rename it simply to "Monticello" and merge it with the MC core packages. Cheers, - Andreas |
In reply to this post by Janko Mivšek
I think my suggestion would be more palatable to folks concerned about tidiness:
- Strip Installer of all features that can be handled by Gofer. - Make Installer USE Gofer for those things that Gofer does (Monticello packages). - That way folks like Miguel can have only Gofer loaded, old fogies like me can have Installer+Gofer loaded. One question that came to my mind last night: What does > 1000 lines of Gofer code bring to Monticello-loading that I can't already do with just Monticello? or with a couple of facade methods added to plain MC? 2010/12/15 Janko Mivšek <[hidden email]>: > Hi guys, > > Cross posted to Squeak and Pharo. > > On 14. 12. 2010 22:56, Ken G. Brown wrote: > >>> Lukas maintains Gofer >>> and there are reasons to use it: closer relationship with Pharo, contemporary MC integration (Metacello). >> >> I can accept using Gofer in trunk, for things that require it like reading it's own scripts. >> But I don't want to see Installer go away... because of all the things Installer does that Gofer doesn't. > > What if someone: > > 1. adds to Gofer loading from SqueakMap and other > 2. then Lukas is kindly asked to rename it to the Installer. > > That way we will have a maintained installer with a meaningful name and > everyone will be happy. Because we really need one and only one > installer for both Squeak and Pharo. > > Best regards > Janko > > > -- > Janko Mivšek > AIDA/Web > Smalltalk Web Application Server > http://www.aidaweb.si > > |
In reply to this post by Andreas.Raab
On 15 December 2010 17:46, Andreas Raab <[hidden email]> wrote:
> On 12/15/2010 6:27 AM, Janko Mivšek wrote: >> >> What if someone: >> >> 1. adds to Gofer loading from SqueakMap and other >> 2. then Lukas is kindly asked to rename it to the Installer. >> >> That way we will have a maintained installer with a meaningful name and >> everyone will be happy. Because we really need one and only one >> installer for both Squeak and Pharo. > > Slightly wrong. Gofer isn't an installer. Gofer is the API for Monticello. > If you wanted to rename it you should rename it simply to "Monticello" and > merge it with the MC core packages. > +1 just had the same impression. Gofer looks like a fine-shaped MC frontend. > Cheers, > - Andreas -- Best regards, Igor Stasenko AKA sig. |
In reply to this post by Chris Muller-3
On 12/15/2010 9:21 AM, Chris Muller wrote:
> One question that came to my mind last night: What does> 1000 lines > of Gofer code bring to Monticello-loading that I can't already do with > just Monticello? or with a couple of facade methods added to plain > MC? I spent the evening yesterday to look at Gofer in detail and it is what led me to say that Gofer is really an API to Monticello, not an installer. First, there is nothing in there that should not be part of Monticello proper; contrary to Installer and Metacello I would expect all the stuff that is in Gofer to be readily available in Monticello itself. Gofer is simply a good facade to Monticello with a useful API. Secondly, much of the code in Gofer comes from the "command pattern gone wild" problem. Gofer simply overuses the command pattern. Every operation is wrapped in a separate class without any need for doing so. As a consequence, things that should be a simple "self foo" become unnecessarily complex in creation, setup, and execution. If you would take this out, it would reduce Gofer to 5 classes or so and the total code size by a significant amount while improving clarity. As an API to Monticello, Gofer is very nice and we should standardize on it. But as a "replacement" for Installer it's not even in the same ballpark. Cheers, - Andreas |
Folks -
To illustrate my point about Gofer being an API, here is an implementation of the same API. Gofer's little brother -called Goofy- provides an implementation of the Gofer API but it's a bit simpler and comes in a single class (with a total of 400 LOC or so). It passes most of the Gofer tests. The exercise was actually interesting since it points out several things that are just plain broken from the Monticello perspective. I just posted a fix for the first issue - a way to get versions and names in a consistent way from different repositories. Clearly a thing that should be in Monticello. Another interesting issue is some of the cleanup that is in Gofer and pretty much directly replicated in Goofy's #cleanoutWorkingCopy: #unloadWorkingCopy: and #unregisterRepositories:. These are all things that need to be folded into MCWorkingCopy but I'll leave that for another day since I'm a bit tired right now and don't want to accidentally break MC in the process :-) In any case, if you look at Goofy I think you'll see the API much more clearly. It's a good API, but it doesn't need to be spread out amongst some 20-something classes. Cheers, - Andreas On 12/15/2010 9:54 AM, Andreas Raab wrote: > On 12/15/2010 9:21 AM, Chris Muller wrote: >> One question that came to my mind last night: What does> 1000 lines >> of Gofer code bring to Monticello-loading that I can't already do with >> just Monticello? or with a couple of facade methods added to plain >> MC? > > I spent the evening yesterday to look at Gofer in detail and it is what > led me to say that Gofer is really an API to Monticello, not an > installer. First, there is nothing in there that should not be part of > Monticello proper; contrary to Installer and Metacello I would expect > all the stuff that is in Gofer to be readily available in Monticello > itself. Gofer is simply a good facade to Monticello with a useful API. > > Secondly, much of the code in Gofer comes from the "command pattern gone > wild" problem. Gofer simply overuses the command pattern. Every > operation is wrapped in a separate class without any need for doing so. > As a consequence, things that should be a simple "self foo" become > unnecessarily complex in creation, setup, and execution. If you would > take this out, it would reduce Gofer to 5 classes or so and the total > code size by a significant amount while improving clarity. > > As an API to Monticello, Gofer is very nice and we should standardize on > it. But as a "replacement" for Installer it's not even in the same > ballpark. > > Cheers, > - Andreas > > Goofy.st (23K) Download Attachment |
On 12/16/10 5:19 AM, "Andreas Raab" <[hidden email]> wrote: > Folks - > > To illustrate my point about Gofer being an API, here is an > implementation of the same API. Gofer's little brother -called Goofy- > provides an implementation of the Gofer API but it's a bit simpler and > comes in a single class (with a total of 400 LOC or so). It passes most > of the Gofer tests. > > The exercise was actually interesting since it points out several things > that are just plain broken from the Monticello perspective. I just > posted a fix for the first issue - a way to get versions and names in a > consistent way from different repositories. Clearly a thing that should > be in Monticello. > > Another interesting issue is some of the cleanup that is in Gofer and > pretty much directly replicated in Goofy's #cleanoutWorkingCopy: > #unloadWorkingCopy: and #unregisterRepositories:. These are all things > that need to be folded into MCWorkingCopy but I'll leave that for > another day since I'm a bit tired right now and don't want to > accidentally break MC in the process :-) > > In any case, if you look at Goofy I think you'll see the API much more > clearly. It's a good API, but it doesn't need to be spread out amongst > some 20-something classes. > > Cheers, > - Andreas Nice ! Like to see into image. We should check all repositories still have sense. http://squeak.saltypickle.com/ is not more a place for us, any knows about John Pierce ? Edgar |
In reply to this post by Andreas.Raab
Nice hacking session :)
I agree that it would be goof to have good & refreshed MC api , which comes with MC, not separately. I just dont know how it is possible today: MC implementation have spread among multiple dialects, and asking everyone to update and sync will be an organizational nightmare. Which gets us back to the question that it was bad idea maintaining MC as in-image tool instead of separate package, loadable from public repository & maintained there. I stumbled over following: Goofy>>url: repoUrl username: username password: password "Creates a repository from the given URL" | repo url | (repoUrl beginsWith: 'ftp://') ifTrue:[ url := repoUrl asUrl. repo := MCFtpRepository host: url authority directory: url pathString allButFirst user: username password: password. ] ifFalse:[ repo := MCHttpRepository location: repoUrl user: username password: password. ]. ^self repository: repo. this could be nicely repaced just by: MCRepository location: url user: username password: password. which then dispatch to its subclasses to find appropriate repo class based on url schema. -- Best regards, Igor Stasenko AKA sig. |
In reply to this post by Andreas.Raab
How about a class comment that gives an overview of intended usage, plus an example or two, and sketches the API?
pant, pant. Eliot On Wed, Dec 15, 2010 at 11:19 PM, Andreas Raab <[hidden email]> wrote: Folks - |
In reply to this post by Igor Stasenko
On 12/16/2010 3:50 AM, Igor Stasenko wrote:
> this could be nicely repaced just by: > > MCRepository location: url user: username password: password. > > which then dispatch to its subclasses to find appropriate repo class > based on url schema. Good point. I posted a simplified initial version and leave it as an exercise to some student to change (and post) the code to something that traverses the subclasses :-) Cheers, - Andreas |
In reply to this post by Eliot Miranda-2
On 12/16/2010 9:20 AM, Eliot Miranda wrote:
> How about a class comment that gives an overview of intended usage, plus > an example or two, and sketches the API? (HTTPSocket httpGet: 'http://www.lukas-renggli.ch/blog/gofer') copyReplaceAll: 'Gofer' with: 'Goofy'. :-)) Cheers, - Andreas > pant, pant. > > Eliot > > On Wed, Dec 15, 2010 at 11:19 PM, Andreas Raab <[hidden email] > <mailto:[hidden email]>> wrote: > > Folks - > > To illustrate my point about Gofer being an API, here is an > implementation of the same API. Gofer's little brother -called > Goofy- provides an implementation of the Gofer API but it's a bit > simpler and comes in a single class (with a total of 400 LOC or so). > It passes most of the Gofer tests. > > The exercise was actually interesting since it points out several > things that are just plain broken from the Monticello perspective. I > just posted a fix for the first issue - a way to get versions and > names in a consistent way from different repositories. Clearly a > thing that should be in Monticello. > > Another interesting issue is some of the cleanup that is in Gofer > and pretty much directly replicated in Goofy's #cleanoutWorkingCopy: > #unloadWorkingCopy: and #unregisterRepositories:. These are all > things that need to be folded into MCWorkingCopy but I'll leave that > for another day since I'm a bit tired right now and don't want to > accidentally break MC in the process :-) > > In any case, if you look at Goofy I think you'll see the API much > more clearly. It's a good API, but it doesn't need to be spread out > amongst some 20-something classes. > > Cheers, > - Andreas > > On 12/15/2010 9:54 AM, Andreas Raab wrote: > > On 12/15/2010 9:21 AM, Chris Muller wrote: > > One question that came to my mind last night: What does> > 1000 lines > of Gofer code bring to Monticello-loading that I can't > already do with > just Monticello? or with a couple of facade methods added to > plain > MC? > > > I spent the evening yesterday to look at Gofer in detail and it > is what > led me to say that Gofer is really an API to Monticello, not an > installer. First, there is nothing in there that should not be > part of > Monticello proper; contrary to Installer and Metacello I would > expect > all the stuff that is in Gofer to be readily available in Monticello > itself. Gofer is simply a good facade to Monticello with a > useful API. > > Secondly, much of the code in Gofer comes from the "command > pattern gone > wild" problem. Gofer simply overuses the command pattern. Every > operation is wrapped in a separate class without any need for > doing so. > As a consequence, things that should be a simple "self foo" become > unnecessarily complex in creation, setup, and execution. If you > would > take this out, it would reduce Gofer to 5 classes or so and the > total > code size by a significant amount while improving clarity. > > As an API to Monticello, Gofer is very nice and we should > standardize on > it. But as a "replacement" for Installer it's not even in the same > ballpark. > > Cheers, > - Andreas > > > > > > > > > > |
Free forum by Nabble | Edit this page |