Fwd: [V3dot9] Another try for pre-gamma: #7051

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
41 messages Options
123
Reply | Threaded
Open this post in threaded view
|

RE: [V3dot9] Another try for pre-gamma: #7051

SmallSqueak
Hi Edgar,

>
> Marcus Denker puso en su mail :
>
> > Hi,
> >
> > Yes, same here. Very strange. I did not change anything with
> > SqueakMap...
> > can you add a report to mantis?
> I add this what I using for a long time, send to Goran , suggest to have a
> button on Flaps, etc.
>
> Install in your image , no need of delete sm dir.
> Do SMLoader newWhitoutNet, should load your last saved map.
> >From here you could update.
> And as bonus , could use all what download without net connection.
>

        Thanks for the tip.

        I guess you are the proper person to file the report
        together with your fix and enhancement.

        BTW, I am very excited to see you help Pavel
        with the Kernel Image.

        Hopefully, it will be "our kernel image", not just "his",
        and, who knows, there may be even SM kernel in that kernel
        if the leader of the NTF not so busy helping BayWatch II
        (it is rumored that he's been spotted at the sea side ;-)

> Edgar

        Cheers,

        SmallSqueak.



Reply | Threaded
Open this post in threaded view
|

RE: Modularity agin (was: Re: [V3dot9] Another try for pre-gamma: #7051)

SmallSqueak
In reply to this post by Andreas.Raab
Hi Andreas,

        The last time when people started to talk about modular Squeak,
        the kitchen sink was almost 10 MB.

        Several dozens moons later, the basic image is merely above 20MB.

        When this "Modularity agin" is done with, Pavel's Kernel Image
        might be just merely above 40 MB ;-)

        Not So Cheerfully,

        SmallSqueak

       

> -----Original Message-----
> From: [hidden email] [mailto:squeak-dev-
> [hidden email]] On Behalf Of Andreas Raab
> Sent: Friday, August 04, 2006 3:06 PM
> To: The general-purpose Squeak developers list
> Subject: Modularity agin (was: Re: [V3dot9] Another try for pre-gamma:
> #7051)
>
> Hi Marcus -
>
> Marcus Denker wrote:
> >>> So just consider it to be the new "full" image...
> >>
> >> So it's back to kitchen-sink.
> >
> > Why? For me, this is just a sign that
> >
> > a) we have only a limited amount of man power available
> > b) we don't have abstractions and tools that are good
> >      enough to make a real modular world practical.
>
> Yes and no. The limited amount of man power can be seen both ways: You
> use it to justify a single image, I'd use it to justify a smaller image.
> In other words, the less scope you have to deal with the more man power
> you can invest to make sure those portions that you deal with are
> handled in the best way possible. The more responsibility is with
> package maintainers the less man power you need to invest.
>
> For the abstractions and tools: Sure, we don't have the perfect solution
> for these issues. But how about dealing with the parts that are utterly
> trivial to deal with? Like, for example, why not immediately remove all
> the packages that have almost no further dependencies, like: FFI,
> Speech, Nebraska, Sound, OB? Those (and others; there are definitely
> more in the image) would be steps into the right direction. And they
> really don't require many tools, and for the lacking abstractions (if
> any) new ones can and will be proposed. There are many practical things
> that can be done if the goal is modularity. Alas, the current goal does
> not appear to be modularity, or if it is, I can't see any tangible steps
> into that direction.
>
> > e.g. as soon as we build the image from components, we *need* a
> > automatic build-and-test server.
>
> The classic "we have no tools" excuse ;-) Then how about finding a
> process which doesn't require the tools. How about making use of the
> community instead? We've got people out there, if we can get them
> involved we might be able to get significant amounts of feedback without
> the automatic server (which would be great, no question, but I don't
> think that's a prerequisite).
>
> Personally, having used Mantis extensively over the last Squeak versions
> I find the process, painful as it is at times, extremely useful. It is
> almost guaranteed that if you take the time to file a bug, it will be
> something that really matters (to you or your project). Which implies
> that people provide pretty good information, discussions etc. That in
> turn (at least to me) makes it a very different medium than, say,
> mailing lists. I don't read all my emails, but I *do* look at all my bug
> reports carefully.
>
> > The way the 3.8full image was put together after the release of the
> > basic image was completely
> > wrong: this would never scale to a real modular system.
>
> In which way? Could you explain this? It strikes me that the process by
> which the 3.8 image was put together is exactly the process that we look
> at for any real usage situation of Squeak: Given a base image, load a
> set of packages that do what you'd like them to do and expect them to
> work together. If you really think that this process is completely wrong
> then we got a problem that is much deeper than this discussion.
>
> > And I am quite sure that the abstractions we have (e.g. PackageInfo) is
> > not good enough for a true
> > modular image. We already now have huge problems that make even the
> > maintenance of 3.9 in the current state a huge pain.
>
> Please give some detail. I'm curious in which way for example PI isn't
> good enough or in which way 3.9 maintenance is problematic. In
> particular it would be interesting to me if the problems couldn't be
> solved by some more robust requirements for packages, for example, no
> overrides etc.
>
> >> How disappointing. How very, very disappointing.
> >
> > It's nice to know that are so much pro modularity... I really should
> > read again the discussions of way-back-when. I don't recall to
> understood
> > this position from your postings back when people had lots of energy
> (3.8)
> > for this...
>
> Then why do you think I've spent so much time trying to fix the 3.3a
> module system or on actually getting stuff out of 3.6? Why do you think
> I started ToolBuilder, UIManager and made the ToolSet abstraction?
>
> Cheers,
>    - Andreas


Reply | Threaded
Open this post in threaded view
|

Re: [V3dot9] Another try for pre-gamma: #7051

Edgar J. De Cleene
In reply to this post by SmallSqueak
SmallSqueak puso en su mail :

> I guess you are the proper person to file the report
> together with your fix and enhancement.
I send to Goran , long time ago, this time I add a Mantis report .

> BTW, I am very excited to see you help Pavel
>     with the Kernel Image.

I follow all what Pavel do from his first 3.7 shrink , what was crucial to
Steven Swerling QuiteSmall and to SqueakLight.

Still toying and trying to understand the kernel Bootstrap procedure :=)

>     Hopefully, it will be "our kernel image", not just "his",
>     and, who knows, there may be even SM kernel in that kernel
>     if the leader of the NTF not so busy helping BayWatch II
>     (it is rumored that he's been spotted at the sea side ;-)

Yes, also I hope so, I doing all kinds of experiments what "our kernel " and
"our new Minimal.image" could take later.

Hope in Praga many Squeakers could take some beers and  revive the old
Module system or agree on a new one.

This new Module system could be named HGM (Henrik Gedenryd Memorial), as he
deserves.

Cheers.

Edgar



       
       
               
__________________________________________________
Preguntá. Respondé. Descubrí.
Todo lo que querías saber, y lo que ni imaginabas,
está en Yahoo! Respuestas (Beta).
¡Probalo ya!
http://www.yahoo.com.ar/respuestas


Reply | Threaded
Open this post in threaded view
|

Re: [V3dot9] Another try for pre-gamma: #7051

Edgar J. De Cleene
In reply to this post by SmallSqueak
SmallSqueak puso en su mail :

> I guess you are the proper person to file the report
> together with your fix and enhancement.

http://bugs.impara.de/view.php?id=4402

Here is it.

Edgar



       
       
               
__________________________________________________
Preguntá. Respondé. Descubrí.
Todo lo que querías saber, y lo que ni imaginabas,
está en Yahoo! Respuestas (Beta).
¡Probalo ya!
http://www.yahoo.com.ar/respuestas


Reply | Threaded
Open this post in threaded view
|

Re: Modularity agin (was: Re: [V3dot9] Another try for pre-gamma: #7051)

stéphane ducasse-2
In reply to this post by Andreas.Raab
> For the abstractions and tools: Sure, we don't have the perfect  
> solution for these issues. But how about dealing with the parts  
> that are utterly trivial to deal with? Like, for example, why not  
> immediately remove all the packages that have almost no further  
> dependencies, like: FFI, Speech, Nebraska, Sound, OB?

We will try to remove what can be remove easily:
        FFI, Speech, Nebraska (sound I do not know),
        and declare that the mini image.

> Those (and others; there are definitely more in the image) would be  
> steps into the right direction. And they really don't require many  
> tools, and for the lacking abstractions (if any) new ones can and  
> will be proposed. There are many practical things that can be done  
> if the goal is modularity. Alas, the current goal does not appear  
> to be modularity, or if it is, I can't see any tangible steps into  
> that direction.

We had that in mind but we focused on gathering fixes and  
improvements and slowly the modularisation.

> The classic "we have no tools" excuse ;-) Then how about finding a  
> process which doesn't require the tools. How about making use of  
> the community instead? We've got people out there, if we can get  
> them involved we might be able to get significant amounts of  
> feedback without the automatic server (which would be great, no  
> question, but I don't think that's a prerequisite).

Sure but we should have a build process.

> Personally, having used Mantis extensively over the last Squeak  
> versions I find the process, painful as it is at times, extremely  
> useful. It is almost guaranteed that if you take the time to file a  
> bug, it will be something that really matters (to you or your  
> project). Which implies that people provide pretty good  
> information, discussions etc. That in turn (at least to me) makes  
> it a very different medium than, say, mailing lists. I don't read  
> all my emails, but I *do* look at all my bug reports carefully.

I agree.
Even if mantis is reallllllllllly painful.

> Please give some detail. I'm curious in which way for example PI  
> isn't good enough or in which way 3.9 maintenance is problematic.  
> In particular it would be interesting to me if the problems  
> couldn't be solved by some more robust requirements for packages,  
> for example, no overrides etc.

At least not having overrides is really a first step.
I think that having atomic loading is another.

We should write a report on what should be improved.


>>> How disappointing. How very, very disappointing.
>> It's nice to know that are so much pro modularity... I really  
>> should read again the discussions of way-back-when. I don't recall  
>> to understood
>> this position from your postings back when people had lots of  
>> energy (3.8) for this...
>
> Then why do you think I've spent so much time trying to fix the  
> 3.3a module system or on actually getting stuff out of 3.6? Why do  
> you think I started ToolBuilder, UIManager and made the ToolSet  
> abstraction?
>
> Cheers,
>   - Andreas
>


Reply | Threaded
Open this post in threaded view
|

Re: Modularity agin

Andreas.Raab
stéphane ducasse wrote:
>> For the abstractions and tools: Sure, we don't have the perfect
>> solution for these issues. But how about dealing with the parts that
>> are utterly trivial to deal with? Like, for example, why not
>> immediately remove all the packages that have almost no further
>> dependencies, like: FFI, Speech, Nebraska, Sound, OB?
>
> We will try to remove what can be remove easily:
>     FFI, Speech, Nebraska (sound I do not know),
>     and declare that the mini image.

That's not what I mean. I don't want to "declare" a mini image - that's
a pointless exercise if we start with the definition that a mini image
contains everything that we can't remove easily. The whole point of
making headway towards modularity is that step by step we decrease
dependencies. As such, removing the above is useful if and only if it is
seen as a stepping stone for the next version (which will hopefully
remove even more) not as an end-goal.

Cheers,
   - Andreas

Reply | Threaded
Open this post in threaded view
|

Re: Modularity agin

stéphane ducasse-2

On 7 août 06, at 19:55, Andreas Raab wrote:

> stéphane ducasse wrote:
>>> For the abstractions and tools: Sure, we don't have the perfect  
>>> solution for these issues. But how about dealing with the parts  
>>> that are utterly trivial to deal with? Like, for example, why not  
>>> immediately remove all the packages that have almost no further  
>>> dependencies, like: FFI, Speech, Nebraska, Sound, OB?
>> We will try to remove what can be remove easily:
>>     FFI, Speech, Nebraska (sound I do not know),
>>     and declare that the mini image.
>
> That's not what I mean. I don't want to "declare" a mini image -  
> that's a pointless exercise if we start with the definition that a  
> mini image contains everything that we can't remove easily. The  
> whole point of making headway towards modularity is that step by  
> step we decrease dependencies. As such, removing the above is  
> useful if and only if it is seen as a stepping stone for the next  
> version (which will hopefully remove even more) not as an end-goal.

sure do not tell that to me.
We will not call it mini but basic, I slip on my keyboard.
And I know what you mean this is also why I pushed alex to help 3.3a  
too and invited henrik and more....

Still for 3.9 I did not have the time/energy to be active in  
shrinking the system and I hope to do that in 3.10.
At least this is my goal.

Stef


Reply | Threaded
Open this post in threaded view
|

Re: Modularity agin

Marcus Denker

On 07.08.2006, at 22:36, stéphane ducasse wrote:

>
> On 7 août 06, at 19:55, Andreas Raab wrote:
>
>> stéphane ducasse wrote:
>>>> For the abstractions and tools: Sure, we don't have the perfect  
>>>> solution for these issues. But how about dealing with the parts  
>>>> that are utterly trivial to deal with? Like, for example, why  
>>>> not immediately remove all the packages that have almost no  
>>>> further dependencies, like: FFI, Speech, Nebraska, Sound, OB?
>>> We will try to remove what can be remove easily:
>>>     FFI, Speech, Nebraska (sound I do not know),
>>>     and declare that the mini image.
>>
I vote against doing this so extremely late in beta. FFI is ok, it  
has no dependencies. But I don't have the time and energy to do the  
rest in 3.9.... alpha is alpha, beta is beta.
There was a time when we could have done this easily (in alpha).

But it's so much easier to wait and then critizise... it's especially  
good for getting people to invest time and have a great communit, I'm  
sure.

>> That's not what I mean. I don't want to "declare" a mini image -  
>> that's a pointless exercise if we start with the definition that a  
>> mini image contains everything that we can't remove easily.

So this whole discussion started that you said we were actively  
destroying the goal of modularising Squeak just by not releasing an  
bigger and a small version... how is that different? What
Stef suggested would get you back what you wanted: A big and a  
slightly small version, I guess as kind of a symbolic statement, just  
like we would have if we would do a "full" version that
is 3.9 + vmmaker + yaxo + webbrowser.

And now you call it a "pointless exercise". Maybe it was not such a  
bad idea to not to have "full" and "basic" for 3.9 as I suggested? I  
never suggested to stop making the parts
less dependend of each other, I only said that it makes no sense to  
ship a "full" image for 3.9. You know, "pointless exercise".

>> The whole point of making headway towards modularity is that step  
>> by step we decrease dependencies. As such, removing the above is  
>> useful if and only if it is seen as a stepping stone for the next  
>> version (which will hopefully remove even more) not as an end-goal.

This was the idea: Work slowly, steadily towards it, as time allows.

      Marcus


smime.p7s (5K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Modularity agin

Andreas.Raab
Marcus Denker wrote:
> On 07.08.2006, at 22:36, stéphane ducasse wrote:
>>>> We will try to remove what can be remove easily:
>>>>     FFI, Speech, Nebraska (sound I do not know),
>>>>     and declare that the mini image.
>
> I vote against doing this so extremely late in beta. FFI is ok, it has
> no dependencies. But I don't have the time and energy to do the rest in
> 3.9.... alpha is alpha, beta is beta.
> There was a time when we could have done this easily (in alpha).

I have no problems with that decision. As a matter of fact, I find that
removing packages that late in the game tends to have more of an alibi
function than real impact.

> But it's so much easier to wait and then critizise... it's especially
> good for getting people to invest time and have a great communit, I'm sure.

And what exactly does that mean? No criticism allowed during beta? ;-)

>>> That's not what I mean. I don't want to "declare" a mini image -
>>> that's a pointless exercise if we start with the definition that a
>>> mini image contains everything that we can't remove easily.
>
> So this whole discussion started that you said we were actively
> destroying the goal of modularising Squeak just by not releasing an
> bigger and a small version...

You're getting overly paranoid. I said it's sad that it all looks as if
we're back to One Image To Rule Them All (i.e., a kitchen-sink image)
but nowhere I said anything about "actively destroying" anything.

> how is that different?

It's greatly different. The difference is that adding useful packages to
a tested and consistent base version defines a meaningful system in
itself. Whereas removing things under the assumption "oh, let's see if
that may work" is not. That is why I fundamentally agree with your
statement that such removals should happen in alpha - because that means
there is time to test and to make the base system consistent. In short:
Adding new packages is mostly trivial - removing old ones is not. That
is the difference.

> What Stef suggested would get you back what you wanted: A big and a
> small version, I guess as kind of a symbolic statement, just like we
> would have if we would do a "full" version that
> is 3.9 + vmmaker + yaxo + webbrowser.
>
> And now you call it a "pointless exercise". Maybe it was not such a bad
> idea to not to have "full" and "basic" for 3.9 as I suggested? I never
> suggested to stop making the parts
> less dependend of each other, I only said that it makes no sense to ship
> a "full" image for 3.9. You know, "pointless exercise".

You *are* getting overly paranoid. What I called a pointless exercise is
to target an artifact with certain packages removed (a "mini" image) as
the goal instead of a process. The mini-images that we have are such
elaborate and -in terms of modularity- absolutely, completely, and
utterly pointless exercises since not a single person in the world
understands what needs to be done to get an image into such a "mini
state" again. This is all an ad-hoc hackery of masterful dimensions,
granted, but hackery nonetheless and because of the impossibility to
repeat that process in any image of reasonably size I call it pointless
for the purpose of making headway in terms of modularity. (these images
are still useful artifacts if only to study certain aspects and get a
feel for a ball-park range but that's about all that can be learned from
it - for actually achieving modularity these images are useless)

>>> The whole point of making headway towards modularity is that step by
>>> step we decrease dependencies. As such, removing the above is useful
>>> if and only if it is seen as a stepping stone for the next version
>>> (which will hopefully remove even more) not as an end-goal.
>
> This was the idea: Work slowly, steadily towards it, as time allows.

Right. And I have no problems with that either but I'd like to see
*some* tangible progress towards the goal. Like, for example, if only by
not including new packages or at the very least to trade them, e.g., if
you add a new one you've got to at least remove one of comparable size.
The way things seem to progress now (like Edgar noted) it is that the
current "basic" image (or whatever you call it) is *larger* than the 3.6
full image. That's kinda sad, wouldn't you agree?

Cheers,
   - Andreas

Reply | Threaded
Open this post in threaded view
|

Re: Modularity agin

Dean_Swan
In reply to this post by Andreas.Raab

I should know better, but I don't so:

Beta is Beta, that usually means only bug fixes to go from Beta to Final/Released.  At this point, my opinion would be that 3.9 is what it is.  Fix any major bugs and move on.

Regarding modularity, wasn't there an Idea that future work would be based on Craig's Spoon work?  That at least offers a repeatable process:

        1) Start with a "full" image version X.Y-Z, execute some method(s) designed to exercize the desired funcionality to imprint a new "minimal" image
        2) Save the minimal image and give it a name/version.

It seems that S-unit tests of some sort would provide the basis for the method to imprint the desired functionality.

Is there any reason why this isn't a good path to follow?

        -Dean


Reply | Threaded
Open this post in threaded view
|

Re: Modularity agin

Andreas.Raab
[hidden email] wrote:

> Regarding modularity, wasn't there an Idea that future work would be
> based on Craig's Spoon work?  That at least offers a repeatable process:
>
>         1) Start with a "full" image version X.Y-Z, execute some
> method(s) designed to exercize the desired funcionality to imprint a new
> "minimal" image
>         2) Save the minimal image and give it a name/version.
>
> It seems that S-unit tests of some sort would provide the basis for the
> method to imprint the desired functionality.
>
> Is there any reason why this isn't a good path to follow?

As the *only* path? Or as part of an overall strategy? If the first, I'd
say that I'll answer that question once I've seen the first system that
has been built that way ;-) [*] As part of an overall strategy it's
perfectly fine - there are various interesting ideas in Spoon which can
be helpful in many different contexts.

[*] This is my new "I-won't-answer-until-I've-seen-it" disclaimer to
avoid gross misjudgements about the theoretical vs. practical benefits
of a deep system modification. Once bitten, twice shy.

Cheers,
   - Andreas

Reply | Threaded
Open this post in threaded view
|

Re: Modularity agin

Colin Putney

On Aug 8, 2006, at 2:31 PM, Andreas Raab wrote:

> [hidden email] wrote:
>> Regarding modularity, wasn't there an Idea that future work would  
>> be based on Craig's Spoon work?  That at least offers a repeatable  
>> process:
>>         1) Start with a "full" image version X.Y-Z, execute some  
>> method(s) designed to exercize the desired funcionality to imprint  
>> a new "minimal" image
>>         2) Save the minimal image and give it a name/version.
>> It seems that S-unit tests of some sort would provide the basis  
>> for the method to imprint the desired functionality.
>> Is there any reason why this isn't a good path to follow?
>
> As the *only* path? Or as part of an overall strategy? If the  
> first, I'd say that I'll answer that question once I've seen the  
> first system that has been built that way ;-) [*] As part of an  
> overall strategy it's perfectly fine - there are various  
> interesting ideas in Spoon which can be helpful in many different  
> contexts.

I'll echo this opinion. Spoon does nothing to make the system more  
modular. It does make it easier to unload parts of the monolith,  
which is useful. It may also help us figure out what where some  
dependencies are, which is also useful.

The only way to make the system more modular is to figure out where  
the dependencies are and rewrite key bits of code to remove them.  
Sometimes it means introducing new abstractions like ToolBuilder or  
Services to enable looser coupling. Sometimes it means tearing out  
and throwing away code that's too entangled to remove cleanly,  
something we haven't been willing to do so far.

There's no getting around the fact that it's hard, ugly, unglamorous  
work. Spoon is a good tool, but it's not "the answer."

Colin

Reply | Threaded
Open this post in threaded view
|

re: Modularity again

ccrraaiigg

Hi all--

     On the squeak-dev list, Dean writes:

> Regarding modularity, wasn't there an Idea that future work would be
> based on Craig's Spoon work?  That at least offers a repeatable
> process:
>
> 1) Start with a "full" image version X.Y-Z, execute some method(s)
> designed to exercize the desired funcionality to imprint a new
> "minimal" image
>
> 2) Save the minimal image and give it a name/version. It seems that
> S-unit tests of some sort would provide the basis for the method to
> imprint the desired functionality.
>
> Is there any reason why this isn't a good path to follow?

     Andreas responds:

> As the *only* path? Or as part of an overall strategy? If the first,
> I'd say that I'll answer that question once I've seen the first system
> that has been built that way ;-) ["once bitten, twice shy"] As part of
> an overall strategy it's perfectly fine - there are various
> interesting ideas in Spoon which can be helpful in many different
> contexts.

     Colin responds:

> I'll echo this opinion. Spoon does nothing to make the system more
> modular.

     I assume you mean that Spoon provides no tools for untangling the
current mess of behavior. That's not true. Spoon provides the ability to
"imprint"[1, 2] methods from one system, as they are run, into another
system (leaving all other behavior behind). When driven by unit tests,
this establishes a useful starting point for more detailed refactoring.
I think this is what Dean was citing.

     I don't think it's fair to call this mere "unloading". (In fact, I
have a far more aggressive technology for that[3].)

     I agree that this leaves a great deal of manual and careful work
for humans (preferably the original authors of each component). It is
indeed hard and unglamorous work. (It is also work that I will do myself
if necessary, if no one else has done it by the time it becomes my top
priority.)

     But I'd like to point out that (in my opinion) Spoon is the best
place to record the results, and does a great deal to keep the system
modular once the knots have been undone. Spoon provides a module system,
"Naiad" ("Name And Identity Are Distinct") with which one may clearly
establish dependencies, authorship, and many other aspects of related
behavior. Modules are a fundamental part of Spoon's support for software
delivery. For more details (such as they are currently), please see the
Spoon mailing list archives[4]. Please also see the sample module
catalog[5], although it's still a work in progress (as are Naiad and
Spoon themselves).

     I mentioned all of these things here previously.

     Without a solution for the modularity problem, I wouldn't have
bothered with Spoon at all. Producing smaller systems is a nice
side-effect, but the primary goal of Spoon is to make Smalltalk easier
to learn. In my opinion, the largest obstacle for learning Smalltalk,
throughout its entire existence, has been the system's poor organization
(it has some, but not nearly enough).

> Spoon is a good tool, but it's not "the answer."

     For what it's worth, in my refactoring work so far (mostly on
Augment) imprinting from tests cuts refactoring time by about half. I
also think we could go much further along these lines.

     Finally, I'd like to reiterate how unfortunate it is that we seem
unable to discuss the merits of a design before the implementation is
finished. I think this leads to comments such as "X is not the answer".
We should be discussing what's missing, and how a design might be
improved. As it is, one is simply left with the impression that a design
 lacks potential. I think Spoon may very well become "the answer" for
this domain.

     I appreciate that we'll get bitten along the way, but I think
demanding a finished system before evaluating the ideas or imagining how
it might work is a bad way to go.


     thanks,

-C

[1]

http://lists.squeakfoundation.org/pipermail/spoon/2004-October/000061.html

[2]

http://lists.squeakfoundation.org/pipermail/spoon/2006-May/000112.html

[3]

http://lists.squeakfoundation.org/pipermail/spoon/2006-April/000107.html

[4] http://lists.squeakfoundation.org/pipermail/spoon

[5] http://netjam.org/spoon/modules

--
Craig Latta
http://netjam.org/resume



Reply | Threaded
Open this post in threaded view
|

Re: Modularity again

Colin Putney

      On the squeak-dev list, Dean writes:

> Regarding modularity, wasn't there an Idea that future work would be
> based on Craig's Spoon work?  That at least offers a repeatable
> process:
>
> 1) Start with a "full" image version X.Y-Z, execute some method(s)
> designed to exercize the desired funcionality to imprint a new
> "minimal" image
>
> 2) Save the minimal image and give it a name/version. It seems that
> S-unit tests of some sort would provide the basis for the method to
> imprint the desired functionality.
>
> Is there any reason why this isn't a good path to follow?

      Andreas responds:

> As the *only* path? Or as part of an overall strategy? If the first,
> I'd say that I'll answer that question once I've seen the first system
> that has been built that way ;-) ["once bitten, twice shy"] As part of
> an overall strategy it's perfectly fine - there are various
> interesting ideas in Spoon which can be helpful in many different
> contexts.

      I  respond:

> I'll echo this opinion. Spoon does nothing to make the system more
> modular.

    Craig rebuts:

> I assume you mean that Spoon provides no tools for untangling the
> current mess of behavior. That's not true.

I mean that Spoon doesn't untangle the current mess of behavior. Yes,  
it provides tools that might help with that. Yes, it provides tools  
for dealing with modules once they have been separated from the mess.  
These are excellent things.

So far, though, nobody has used those tools to do any untangling.  
Note also that Dean's proposed path, which I've quoted above,  
doesn't involve any rewriting or refactoring, only unloading. So I  
think Andreas is right. A modularization strategy that involves Spoon  
is a fine idea, as long as it also includes the kind of ugly grunt  
work that Andreas, Pavel, Edgar and others have been doing to  
disentangle the mess.

Colin


Reply | Threaded
Open this post in threaded view
|

Re: Modularity again

stéphane ducasse-2
> I mean that Spoon doesn't untangle the current mess of behavior.  
> Yes, it provides tools that might help with that. Yes, it provides  
> tools for dealing with modules once they have been separated from  
> the mess. These are excellent things.
>
> So far, though, nobody has used those tools to do any untangling.  
> Note also that Dean's proposed path, which I've quoted above,  
> doesn't involve any rewriting or refactoring, only unloading. So I  
> think Andreas is right. A modularization strategy that involves  
> Spoon is a fine idea, as long as it also includes the kind of ugly  
> grunt work that Andreas, Pavel, Edgar and others have been doing to  
> disentangle the mess.

I think that this is Craig implied :)
And it should be the focus of the next version of Squeak (at least I  
would like to invest time in that).

Stef

Reply | Threaded
Open this post in threaded view
|

re: Modularity again

ccrraaiigg
In reply to this post by Colin Putney

Hi Colin--

> Yes, [Spoon] provides tools that might help with [disentangling system
> components]. Yes, it provides tools for dealing with modules once they
> have been separated from the mess. These are excellent things.

     Indeed, so I thought the assertion is Spoon "does nothing to make
the system more modular" was clearly wrong.

> So far, though, nobody has used those tools to do any untangling.

     For what it's worth, I have, and am currently. I'm untangling the
system dictionary from the rest of the system, and doing the same for
the graphics subsystem (Display, etc.).

> Note also that Dean's proposed path, which I've quoted above, doesn't
> involve any rewriting or refactoring, only unloading.

     Clearly; and I, in turn, as the designer of Spoon, was motivated to
elaborate from my point of view.

> So I think Andreas is right. A modularization strategy that involves
> Spoon is a fine idea, as long as it also includes the kind of ugly
> grunt work that Andreas, Pavel, Edgar and others have been doing to
> disentangle the mess.

     I certainly agree that any successful modularization strategy
includes ugly grunt work (I'm doing it too). But I think Andreas said
more than that: that the fitness of Spoon's tools for this task can only
be evaluated when the task is finished. If everyone held that view, then
no one would  use Spoon's tools for the task. It seems to imply that I,
Craig, must disentangle the entire system before it's worth anyone
else's while to use Spoon. I don't think this is true. (Perhaps I
exaggerate. Perhaps disentangling some subset of the system would be
suitably compelling. At any rate, I continue making modules.)


-C

--
Craig Latta
http://netjam.org/resume



Reply | Threaded
Open this post in threaded view
|

Re: Modularity again

Klaus D. Witzel
Hi Craig,

on Wed, 09 Aug 2006 09:02:33 +0200, you wrote:
>      I certainly agree that any successful modularization strategy
> includes ugly grunt work (I'm doing it too). But I think Andreas said
> more than that: that the fitness of Spoon's tools for this task can only
> be evaluated when the task is finished.

This would contradict all the benefits that Smalltalk stands for:  
incrementality, encapsulation, lazyness, simulation, prototyping, etc. It  
would (if true) be the historically first case that Smalltalk (Squeak)  
cannot be applied to itself.

> If everyone held that view, then
> no one would  use Spoon's tools for the task. It seems to imply that I,
> Craig, must disentangle the entire system before it's worth anyone
> else's while to use Spoon. I don't think this is true. (Perhaps I
> exaggerate. Perhaps disentangling some subset of the system would be
> suitably compelling. At any rate, I continue making modules.)

Please do that, regardless of how Andreas' comments are interpreted  
(written with neutrality in mind).

/Klaus

> -C
>



Reply | Threaded
Open this post in threaded view
|

Re: Modularity again

Andreas.Raab
In reply to this post by ccrraaiigg
Craig Latta wrote:
>      I certainly agree that any successful modularization strategy
> includes ugly grunt work (I'm doing it too). But I think Andreas said
> more than that: that the fitness of Spoon's tools for this task can only
> be evaluated when the task is finished. If everyone held that view, then
> no one would  use Spoon's tools for the task. It seems to imply that I,
> Craig, must disentangle the entire system before it's worth anyone
> else's while to use Spoon. I don't think this is true.

And I don't think it's fair to accuse me of that. What I said is that
"if [spoon is being followed as the *only* path], I'd say that I'll
answer that question once I've seen the first system that has been built
that way ;-) " - with an "if" at the beginning and a smiley at the end.

More specifically, what I'm saying is that we should base our judgment
of ideas on observable evidence rather than faith. In other words try to
be a bit scientific. It doesn't mean that you have to disentangle an
entire image any more than it means for the traits-people that they have
to traitify an entire image. However, providing practical examples to
look at, evaluate, learn from is absolutely critical. Blindly buying
into theories, no matter how good they sound initially, sets us up for
another desaster - I had great hopes for Henrik's theory of universal
composition; I had great hopes for traits. Both turned out to be quite
underwhelming in practice.

Cheers,
   - Andreas


Reply | Threaded
Open this post in threaded view
|

Re: Modularity again

Dean_Swan
In reply to this post by ccrraaiigg

Colin Putney wrote:
>So far, though, nobody has used those tools to do any untangling.  
>Note also that Dean's proposed path, which I've quoted above,  
>doesn't involve any rewriting or refactoring, only unloading.


Please don't make too much of my comments.  It was largely a
response to a comment from Andreas:

>What I called a pointless exercise is
>to target an artifact with certain packages removed (a "mini" image) as
>the goal instead of a process. The mini-images that we have are such
>elaborate and -in terms of modularity- absolutely, completely, and
>utterly pointless exercises since not a single person in the world
>understands what needs to be done to get an image into such a "mini
>state" again.


I only meant to suggest that there may be a repeatable way to produce
a "mini" image with a certain set of functionality.

I agree that this doesn't untangle anything.

Since modularity and reuse are somewhat at odds with each other (much
like time and frequency, MIPS and memory usage, etc.) this raises the
question of what is a "good" balance between modularity and reuse?

Also, what constitutes a "minimal" image?  I think there are almost
as many answers to this as there are users of Squeak.

Do most people really care about modularity, or do they just want
a way to get a small artifact (i.e. image) for distribution?

I will stop before I get too far down another rat-hole.

        -Dean


Reply | Threaded
Open this post in threaded view
|

re: Modularity again

ccrraaiigg
In reply to this post by Andreas.Raab

Hi Andreas--

> > I certainly agree that any successful modularization strategy
> > includes ugly grunt work (I'm doing it too). But I think Andreas
> > said more than that: that the fitness of Spoon's tools for this task
> > can only be evaluated when the task is finished. If everyone held
> > that view, then no one would  use Spoon's tools for the task. It
> > seems to imply that I, Craig, must disentangle the entire system
> > before it's worth anyone else's while to use Spoon. I don't think
> > this is true.
>
> And I don't think it's fair to accuse me of that.

     I'm not accusing you of anything, Andreas. :)  I was telling my
interpretation. I went on to mention that perhaps my interpretation was
an exaggeration:

> > Perhaps I exaggerate. Perhaps disentangling some subset of the
> > system would be suitably compelling. At any rate, I continue making
> > modules.

***

> What I said is that "if [spoon is being followed as the *only* path],
> I'd say that I'll answer that question once I've seen the first system
> that has been built that way ;-) " - with an "if" at the beginning and
> a smiley at the end.

     Right, I got all that the first time. I still take issue with it: I
think it would be better to discuss the design ideas in the meantime, in
addition to evaluating artifacts.

> More specifically, what I'm saying is that we should base our judgment
> of ideas on observable evidence rather than faith. In other words try
> to be a bit scientific.

     Well, several of us in the Squeak community have experience with
the implementation of the system, and there is a release of Spoon that
implements the basis for what I'm talking about[1]. It seems to me that
we are in a position to discuss the merits of the design ideas, so as to
improve them. More importantly, we can decide how we want the system to
work (what the "usage experience" should be), so that we have a basis
for evaluating the results.

     I think of this as defining a vision and pursuing it.


     thanks,

-C

[1] http://ftp.squeak.org/Spoon/spoon1a12.zip

--
Craig Latta
http://netjam.org/resume



123