SimpleMorphic

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

SimpleMorphic

Juan Vuletich-4
Hi Folks,

A few days ago I released SimpleMorphic for Pharo. SimpleMorphic is the
Morphic implementation in Cuis. It is much smaller and simpler than the
one in Pharo (and in Squeak). Please see
http://lists.gforge.inria.fr/pipermail/pharo-project/2010-November/035302.html 
. A link to the code (for Pharo 1.2) is included.

While this release of the code is for Pharo, it shouldn't be a big deal
to make it run on Squeak. My hope is that the Pharo community studies it
in detail, adopts it, and eventually remove the old Morphic. For Squeak,
maybe the same happens. Or perhaps there would be 2 Morphic UIs for
Squeak: FullMorphic+Etoys and SimpleMorphic... So, what do you think?

I also sent this comment to the Pharo mail list recently, trying to make
clear why SimpleMorphic is useful:

"Size of 4 core classes (Morph, MorphExtension, PasteUpMorph and
WorldState)
Pharo / Squeak / Cuis
totalIvars:  39 / 46 / 26
totalClassVars: 15 / 10 / 5
totalInstMethods: 1170 / 1764 / 663
totalClassMethods: 55 / 71 / 16

Size of the whole Morph hierarchy
Pharo / Squeak / Cuis
totalClasses: 197 / 331 / 58
totalIvars:  649 / 1063 / 257
totalClassVars: 54 / 138 / 28
totalInstMethods: 6651 / 9186 / 2115
totalClassMethods: 303 / 858 / 127

SimpleMorphic is much smaller. Core classes are simpler and easier to
understand, fix and extend. The most important part is that this is not
blind removal of unused code. A lot of the functionality has been
redesigned to make it simpler, and the removal was done with great care
to result in a consistent system. This work started in 2004, so we're
talking of about 6 years of careful work. All this means that
SimpleMorphic does not support all the features that Pharo or Squeak
might support. Please use the browsers and other tools in Cuis to check
what it indeed can do.

Talking about complexity, let's take for example, morph layout. This is
started with #doLayoutIn: in Pharo and #doLayoutIfNeeded in SimpleMorphic.

In Pharo, this method calls #adjustLayoutBounds: (19), #layout:in:
(149), #layoutProportionallyIn: (10),
#computeCellArrangement:in:horizontal:target: (87),
#computeGlobalCellArrangement:in:horizontal:wrap:spacing: (31),
#computeCellSizes:in:horizontal: (30),
#computeExtraSpacing:in:horizontal:target: (136), #layoutLeftToRight:in:
(91), #layoutTopToBottom:in: (91), #placeCells:in:horizontal:target:
(70). The numbers in parenthesis are the sum of the lines of code of the
implementors. Total lines of code for layout (taking only these most
important methods) is 714. I doubt there are many people who really
understand all of this code.

In SimpleMorphic (Cuis), this calls #layoutSubmorphsIn: (10),
#applyLayoutFrameIn: (11), #layout:in: (24). Total lines of code is 45.
I believe any smalltalker could understand these in just minutes."

Cheers,
Juan Vuletich

Reply | Threaded
Open this post in threaded view
|

Re: SimpleMorphic

Hannes Hirzel
Juan

Your work is exciting. A work of 6 years! Thank you for making this
available and thanks to ESUG for partially sponsoring your work.

I think we should try it out in any case.

Any suggestions how to proceed? There are four change sets -- some of
the Pharo specific.


--Hannes

On 11/10/10, Juan Vuletich <[hidden email]> wrote:

> Hi Folks,
>
> A few days ago I released SimpleMorphic for Pharo. SimpleMorphic is the
> Morphic implementation in Cuis. It is much smaller and simpler than the
> one in Pharo (and in Squeak). Please see
> http://lists.gforge.inria.fr/pipermail/pharo-project/2010-November/035302.html
> . A link to the code (for Pharo 1.2) is included.
>
> While this release of the code is for Pharo, it shouldn't be a big deal
> to make it run on Squeak. My hope is that the Pharo community studies it
> in detail, adopts it, and eventually remove the old Morphic. For Squeak,
> maybe the same happens. Or perhaps there would be 2 Morphic UIs for
> Squeak: FullMorphic+Etoys and SimpleMorphic... So, what do you think?
>
> I also sent this comment to the Pharo mail list recently, trying to make
> clear why SimpleMorphic is useful:
>
> "Size of 4 core classes (Morph, MorphExtension, PasteUpMorph and
> WorldState)
> Pharo / Squeak / Cuis
> totalIvars:  39 / 46 / 26
> totalClassVars: 15 / 10 / 5
> totalInstMethods: 1170 / 1764 / 663
> totalClassMethods: 55 / 71 / 16
>
> Size of the whole Morph hierarchy
> Pharo / Squeak / Cuis
> totalClasses: 197 / 331 / 58
> totalIvars:  649 / 1063 / 257
> totalClassVars: 54 / 138 / 28
> totalInstMethods: 6651 / 9186 / 2115
> totalClassMethods: 303 / 858 / 127
>
> SimpleMorphic is much smaller. Core classes are simpler and easier to
> understand, fix and extend. The most important part is that this is not
> blind removal of unused code. A lot of the functionality has been
> redesigned to make it simpler, and the removal was done with great care
> to result in a consistent system. This work started in 2004, so we're
> talking of about 6 years of careful work. All this means that
> SimpleMorphic does not support all the features that Pharo or Squeak
> might support. Please use the browsers and other tools in Cuis to check
> what it indeed can do.
>
> Talking about complexity, let's take for example, morph layout. This is
> started with #doLayoutIn: in Pharo and #doLayoutIfNeeded in SimpleMorphic.
>
> In Pharo, this method calls #adjustLayoutBounds: (19), #layout:in:
> (149), #layoutProportionallyIn: (10),
> #computeCellArrangement:in:horizontal:target: (87),
> #computeGlobalCellArrangement:in:horizontal:wrap:spacing: (31),
> #computeCellSizes:in:horizontal: (30),
> #computeExtraSpacing:in:horizontal:target: (136), #layoutLeftToRight:in:
> (91), #layoutTopToBottom:in: (91), #placeCells:in:horizontal:target:
> (70). The numbers in parenthesis are the sum of the lines of code of the
> implementors. Total lines of code for layout (taking only these most
> important methods) is 714. I doubt there are many people who really
> understand all of this code.
>
> In SimpleMorphic (Cuis), this calls #layoutSubmorphsIn: (10),
> #applyLayoutFrameIn: (11), #layout:in: (24). Total lines of code is 45.
> I believe any smalltalker could understand these in just minutes."
>
> Cheers,
> Juan Vuletich
>
>

Reply | Threaded
Open this post in threaded view
|

Re: SimpleMorphic

Edgar De Cleene
In reply to this post by Juan Vuletich-4



On 11/10/10 3:46 PM, "Juan Vuletich" <[hidden email]> wrote:

> Hi Folks,
>
> A few days ago I released SimpleMorphic for Pharo. SimpleMorphic is the
> Morphic implementation in Cuis. It is much smaller and simpler than the
> one in Pharo (and in Squeak). Please see
> http://lists.gforge.inria.fr/pipermail/pharo-project/2010-November/035302.html
> . A link to the code (for Pharo 1.2) is included.
>
> While this release of the code is for Pharo, it shouldn't be a big deal
> to make it run on Squeak. My hope is that the Pharo community studies it
> in detail, adopts it, and eventually remove the old Morphic. For Squeak,
> maybe the same happens. Or perhaps there would be 2 Morphic UIs for
> Squeak: FullMorphic+Etoys and SimpleMorphic... So, what do you think?
>
> I also sent this comment to the Pharo mail list recently, trying to make
> clear why SimpleMorphic is useful:
>
> "Size of 4 core classes (Morph, MorphExtension, PasteUpMorph and
> WorldState)
> Pharo / Squeak / Cuis
> totalIvars:  39 / 46 / 26
> totalClassVars: 15 / 10 / 5
> totalInstMethods: 1170 / 1764 / 663
> totalClassMethods: 55 / 71 / 16
>
> Size of the whole Morph hierarchy
> Pharo / Squeak / Cuis
> totalClasses: 197 / 331 / 58
> totalIvars:  649 / 1063 / 257
> totalClassVars: 54 / 138 / 28
> totalInstMethods: 6651 / 9186 / 2115
> totalClassMethods: 303 / 858 / 127
>
> SimpleMorphic is much smaller. Core classes are simpler and easier to
> understand, fix and extend. The most important part is that this is not
> blind removal of unused code. A lot of the functionality has been
> redesigned to make it simpler, and the removal was done with great care
> to result in a consistent system. This work started in 2004, so we're
> talking of about 6 years of careful work. All this means that
> SimpleMorphic does not support all the features that Pharo or Squeak
> might support. Please use the browsers and other tools in Cuis to check
> what it indeed can do.
>
> Talking about complexity, let's take for example, morph layout. This is
> started with #doLayoutIn: in Pharo and #doLayoutIfNeeded in SimpleMorphic.
>
> In Pharo, this method calls #adjustLayoutBounds: (19), #layout:in:
> (149), #layoutProportionallyIn: (10),
> #computeCellArrangement:in:horizontal:target: (87),
> #computeGlobalCellArrangement:in:horizontal:wrap:spacing: (31),
> #computeCellSizes:in:horizontal: (30),
> #computeExtraSpacing:in:horizontal:target: (136), #layoutLeftToRight:in:
> (91), #layoutTopToBottom:in: (91), #placeCells:in:horizontal:target:
> (70). The numbers in parenthesis are the sum of the lines of code of the
> implementors. Total lines of code for layout (taking only these most
> important methods) is 714. I doubt there are many people who really
> understand all of this code.
>
> In SimpleMorphic (Cuis), this calls #layoutSubmorphsIn: (10),
> #applyLayoutFrameIn: (11), #layout:in: (24). Total lines of code is 45.
> I believe any smalltalker could understand these in just minutes."
>
> Cheers,
> Juan Vuletich
>


Excellent as always.
When back at home from Smalltalks2010 see if could take it for
SqueakLight3/SqueakCore.

By the way, notices about works with Andreas and Pavel for smaller and
modular image ?

Edgar



Reply | Threaded
Open this post in threaded view
|

Re: SimpleMorphic

Juan Vuletich-4
In reply to this post by Hannes Hirzel
Hannes Hirzel wrote:

> Juan
>
> Your work is exciting. A work of 6 years! Thank you for making this
> available and thanks to ESUG for partially sponsoring your work.
>
> I think we should try it out in any case.
>
> Any suggestions how to proceed? There are four change sets -- some of
> the Pharo specific.
>
>
> --Hannes
>  

Hi Hannes,

The first thing to do is to try it. Start PharoCore 1.2, install the 5
change sets in numerical order. After loading them, you can evaluate
'SimpleMorphicUIManager start' to enter SimpleMorphic and
'SimpleMorphicUIManager stop' to return to regular Morphic.


Cheers,
Juan Vuletich

Reply | Threaded
Open this post in threaded view
|

Re: SimpleMorphic

Juan Vuletich-4
In reply to this post by Edgar De Cleene
Hi Edgar,

Edgar J. De Cleene wrote:
> Excellent as always.
> When back at home from Smalltalks2010 see if could take it for
> SqueakLight3/SqueakCore.
>  

Thanks Edgar.

> By the way, notices about works with Andreas and Pavel for smaller and
> modular image ?
>
> Edgar

No from me. Perhaps you'd ask Andreas.

Cheers,
Juan Vuletich

Reply | Threaded
Open this post in threaded view
|

Re: SimpleMorphic

David T. Lewis
In reply to this post by Juan Vuletich-4
On Wed, Nov 10, 2010 at 02:46:54PM -0300, Juan Vuletich wrote:

> Hi Folks,
>
> A few days ago I released SimpleMorphic for Pharo. SimpleMorphic is the
> Morphic implementation in Cuis. It is much smaller and simpler than the
> one in Pharo (and in Squeak). Please see
> http://lists.gforge.inria.fr/pipermail/pharo-project/2010-November/035302.html 
> . A link to the code (for Pharo 1.2) is included.
>
> While this release of the code is for Pharo, it shouldn't be a big deal
> to make it run on Squeak. My hope is that the Pharo community studies it
> in detail, adopts it, and eventually remove the old Morphic. For Squeak,
> maybe the same happens. Or perhaps there would be 2 Morphic UIs for
> Squeak: FullMorphic+Etoys and SimpleMorphic... So, what do you think?

I expect that this will fit nicely into Squeak's project structure:

  Project
    MVCProjext
    MorphicProject
    SMxMorphicProject

So when you open a new project, the world menu would give the choice
of "mvc project", "morphic project" or "SMx morphic project".

I do like the the prefix "SMx" by the way. It can mean whatever you
want it to mean in the future, and I've learned that it is never a
good idea to have the term "simple" in a class name ;-)

Dave


Reply | Threaded
Open this post in threaded view
|

Re: SimpleMorphic

Hannes Hirzel
In reply to this post by Juan Vuletich-4
On 11/10/10, Juan Vuletich <[hidden email]> wrote:

> Hannes Hirzel wrote:
>> Juan
>>
>> Your work is exciting. A work of 6 years! Thank you for making this
>> available and thanks to ESUG for partially sponsoring your work.
>>
>> I think we should try it out in any case.
>>
>> Any suggestions how to proceed? There are four change sets -- some of
>> the Pharo specific.
>>
>>
>> --Hannes
>>
>
> Hi Hannes,
>
> The first thing to do is to try it. Start PharoCore 1.2, install the 5
> change sets in numerical order. After loading them, you can evaluate
> 'SimpleMorphicUIManager start' to enter SimpleMorphic and
> 'SimpleMorphicUIManager stop' to return to regular Morphic.
>
>
> Cheers,
> Juan Vuletich
>
>


Thank you Juan for the answer


There are five change sets

SMx01-PharoEnhAndPreliminaries-jmv.3.cs    (47kB)
SMx02-PharoEnhAndPreliminariesCoda.1.cs    (1kB)
SMx03-ExtensionMethodsPart1.3.cs     (7kB)
SMx04-SimpleMorphic.11.cs    (1081kB)
SMx05-ExtensionMethodsPart2.7.cs   (5kB)


I filed them all in in order though
According to http://code.google.com/p/pharo/issues/detail?id=3210
SMx02 is not mentioned.

It worked fine.

An interesting impression to have Pharo have a look and feel like 'Cuis'.

A minor glitch -- if I right click (Windows) and choose 'about this
system' the image freezes.

A major thing however is that after some time the VM (Cog) crashed
with an out of memory message.

I assume on your end it does not  ........


--Hannes

Reply | Threaded
Open this post in threaded view
|

Re: SimpleMorphic

Igor Stasenko
Browser seem works fine,
except that annotation panes not working, always showing '-----' in contents.

Sometimes, when dragging a window, is not redraws itself on a new
position, causing a visual artifacts.

But in overall, quite impressive. Snappy.

--
Best regards,
Igor Stasenko AKA sig.

Reply | Threaded
Open this post in threaded view
|

Re: SimpleMorphic

Juan Vuletich-4
In reply to this post by Hannes Hirzel
Hi Hannes,

Hannes Hirzel wrote:
> ...
> A minor glitch -- if I right click (Windows) and choose 'about this
> system' the image freezes.
>
> A major thing however is that after some time the VM (Cog) crashed
> with an out of memory message.

I need to do better handling of stuff unsupported in SimpleMorphic so it
fails reasonably... Will work on that.

Thanks,
Juan Vuletich

Reply | Threaded
Open this post in threaded view
|

Re: SimpleMorphic

Juan Vuletich-4
In reply to this post by Igor Stasenko
Hi Igor,

Igor Stasenko wrote:
> Browser seem works fine,
> except that annotation panes not working, always showing '-----' in contents.
>
> Sometimes, when dragging a window, is not redraws itself on a new
> position, causing a visual artifacts.
>
> But in overall, quite impressive. Snappy

I'll work on those issues. Thanks for testing.

Cheers,
Juan Vuletich

Reply | Threaded
Open this post in threaded view
|

Re: SimpleMorphic

David T. Lewis
In reply to this post by Juan Vuletich-4
On Wed, Nov 10, 2010 at 02:46:54PM -0300, Juan Vuletich wrote:

> Hi Folks,
>
> A few days ago I released SimpleMorphic for Pharo. SimpleMorphic is the
> Morphic implementation in Cuis. It is much smaller and simpler than the
> one in Pharo (and in Squeak). Please see
> http://lists.gforge.inria.fr/pipermail/pharo-project/2010-November/035302.html 
> . A link to the code (for Pharo 1.2) is included.
>
> While this release of the code is for Pharo, it shouldn't be a big deal
> to make it run on Squeak. My hope is that the Pharo community studies it
> in detail, adopts it, and eventually remove the old Morphic. For Squeak,
> maybe the same happens. Or perhaps there would be 2 Morphic UIs for
> Squeak: FullMorphic+Etoys and SimpleMorphic... So, what do you think?

Many thanks to Juan for creating SimpleMorphic, and thanks also to ESUG
for supporting his work to make SimpleMorphic available to the community.

To load SimpleMorphic into a fully updated trunk image, install the
following from the Squeak inbox:

        Morphic-dtl.523.mcz
        SMx-dtl.12
        SimpleMorphic-dtl.7

After loading these three files, you can open a new SimpleMorphic project
from the menu bar or from the world menu. Not everything works yet, but
there is enough in place to open browsers, workspaces, etc and generally
get a feel for how it works.

Notes:

This is based on the original distribution for Pharo:
http://pharo.googlecode.com/issues/attachment?aid=6793947083037793423&name=SimpleMorphicR01.zip&token=0e3d443e10d0d5a6d8239158ec9e273d

I attempted to preserve the SimpleMorphic package with as few changes as
possible, and ended up with a SimpleMorphic package and an SMx support
package, where all of the Squeak-specific changes are in SMx. The Project
and ToolBuilder classes are modified copies of the Morphic versions, with
no attempt to refactor or clean up unnecessary code (this can be done later,
as the intent is to make SimpleMorphic available in a form as close as
possible to the original distribution).

All of the development MCZ files are on my hard disk, and I can copy
them either to SqueakSource or to squeak.org if there is an interest
(not sure what to do with this, suggestions welcome).

The SimpleMorphic and SMx packages are entirely self-contained, and
can be loaded and unloaded without affecting the normal Morphic or MVC
environments:

        (MCPackage named: 'SMx') unload.
        (MCPackage named: 'SimpleMorphic') unload.

Dave


>
> I also sent this comment to the Pharo mail list recently, trying to make
> clear why SimpleMorphic is useful:
>
> "Size of 4 core classes (Morph, MorphExtension, PasteUpMorph and
> WorldState)
> Pharo / Squeak / Cuis
> totalIvars:  39 / 46 / 26
> totalClassVars: 15 / 10 / 5
> totalInstMethods: 1170 / 1764 / 663
> totalClassMethods: 55 / 71 / 16
>
> Size of the whole Morph hierarchy
> Pharo / Squeak / Cuis
> totalClasses: 197 / 331 / 58
> totalIvars:  649 / 1063 / 257
> totalClassVars: 54 / 138 / 28
> totalInstMethods: 6651 / 9186 / 2115
> totalClassMethods: 303 / 858 / 127
>
> SimpleMorphic is much smaller. Core classes are simpler and easier to
> understand, fix and extend. The most important part is that this is not
> blind removal of unused code. A lot of the functionality has been
> redesigned to make it simpler, and the removal was done with great care
> to result in a consistent system. This work started in 2004, so we're
> talking of about 6 years of careful work. All this means that
> SimpleMorphic does not support all the features that Pharo or Squeak
> might support. Please use the browsers and other tools in Cuis to check
> what it indeed can do.
>
> Talking about complexity, let's take for example, morph layout. This is
> started with #doLayoutIn: in Pharo and #doLayoutIfNeeded in SimpleMorphic.
>
> In Pharo, this method calls #adjustLayoutBounds: (19), #layout:in:
> (149), #layoutProportionallyIn: (10),
> #computeCellArrangement:in:horizontal:target: (87),
> #computeGlobalCellArrangement:in:horizontal:wrap:spacing: (31),
> #computeCellSizes:in:horizontal: (30),
> #computeExtraSpacing:in:horizontal:target: (136), #layoutLeftToRight:in:
> (91), #layoutTopToBottom:in: (91), #placeCells:in:horizontal:target:
> (70). The numbers in parenthesis are the sum of the lines of code of the
> implementors. Total lines of code for layout (taking only these most
> important methods) is 714. I doubt there are many people who really
> understand all of this code.
>
> In SimpleMorphic (Cuis), this calls #layoutSubmorphsIn: (10),
> #applyLayoutFrameIn: (11), #layout:in: (24). Total lines of code is 45.
> I believe any smalltalker could understand these in just minutes."
>
> Cheers,
> Juan Vuletich

Reply | Threaded
Open this post in threaded view
|

Re: SimpleMorphic

Miguel Cobá
Great work, thanks.

A suggestion, why don't follow a common pattern to name the
Pharo/Squeak/Gemstone specific code for package XXX with the format:

XXX-Squeak

so that the packages be:

XXX-dtl.123.mcz
XXX-Squeak-dtl.123.mcz
XXX-Pharo-dtl.123.mcz

This way if a Metacello configuration is created for this package it
will pull the corresponding dependency for tha platform where is being
installed.

Cheers.


El vie, 04-03-2011 a las 18:41 -0500, David T. Lewis escribió:

> On Wed, Nov 10, 2010 at 02:46:54PM -0300, Juan Vuletich wrote:
> > Hi Folks,
> >
> > A few days ago I released SimpleMorphic for Pharo. SimpleMorphic is the
> > Morphic implementation in Cuis. It is much smaller and simpler than the
> > one in Pharo (and in Squeak). Please see
> > http://lists.gforge.inria.fr/pipermail/pharo-project/2010-November/035302.html 
> > . A link to the code (for Pharo 1.2) is included.
> >
> > While this release of the code is for Pharo, it shouldn't be a big deal
> > to make it run on Squeak. My hope is that the Pharo community studies it
> > in detail, adopts it, and eventually remove the old Morphic. For Squeak,
> > maybe the same happens. Or perhaps there would be 2 Morphic UIs for
> > Squeak: FullMorphic+Etoys and SimpleMorphic... So, what do you think?
>
> Many thanks to Juan for creating SimpleMorphic, and thanks also to ESUG
> for supporting his work to make SimpleMorphic available to the community.
>
> To load SimpleMorphic into a fully updated trunk image, install the
> following from the Squeak inbox:
>
> Morphic-dtl.523.mcz
> SMx-dtl.12
> SimpleMorphic-dtl.7
>
> After loading these three files, you can open a new SimpleMorphic project
> from the menu bar or from the world menu. Not everything works yet, but
> there is enough in place to open browsers, workspaces, etc and generally
> get a feel for how it works.
>
> Notes:
>
> This is based on the original distribution for Pharo:
> http://pharo.googlecode.com/issues/attachment?aid=6793947083037793423&name=SimpleMorphicR01.zip&token=0e3d443e10d0d5a6d8239158ec9e273d
>
> I attempted to preserve the SimpleMorphic package with as few changes as
> possible, and ended up with a SimpleMorphic package and an SMx support
> package, where all of the Squeak-specific changes are in SMx. The Project
> and ToolBuilder classes are modified copies of the Morphic versions, with
> no attempt to refactor or clean up unnecessary code (this can be done later,
> as the intent is to make SimpleMorphic available in a form as close as
> possible to the original distribution).
>
> All of the development MCZ files are on my hard disk, and I can copy
> them either to SqueakSource or to squeak.org if there is an interest
> (not sure what to do with this, suggestions welcome).
>
> The SimpleMorphic and SMx packages are entirely self-contained, and
> can be loaded and unloaded without affecting the normal Morphic or MVC
> environments:
>
> (MCPackage named: 'SMx') unload.
> (MCPackage named: 'SimpleMorphic') unload.
>
> Dave
>
>
> >
> > I also sent this comment to the Pharo mail list recently, trying to make
> > clear why SimpleMorphic is useful:
> >
> > "Size of 4 core classes (Morph, MorphExtension, PasteUpMorph and
> > WorldState)
> > Pharo / Squeak / Cuis
> > totalIvars:  39 / 46 / 26
> > totalClassVars: 15 / 10 / 5
> > totalInstMethods: 1170 / 1764 / 663
> > totalClassMethods: 55 / 71 / 16
> >
> > Size of the whole Morph hierarchy
> > Pharo / Squeak / Cuis
> > totalClasses: 197 / 331 / 58
> > totalIvars:  649 / 1063 / 257
> > totalClassVars: 54 / 138 / 28
> > totalInstMethods: 6651 / 9186 / 2115
> > totalClassMethods: 303 / 858 / 127
> >
> > SimpleMorphic is much smaller. Core classes are simpler and easier to
> > understand, fix and extend. The most important part is that this is not
> > blind removal of unused code. A lot of the functionality has been
> > redesigned to make it simpler, and the removal was done with great care
> > to result in a consistent system. This work started in 2004, so we're
> > talking of about 6 years of careful work. All this means that
> > SimpleMorphic does not support all the features that Pharo or Squeak
> > might support. Please use the browsers and other tools in Cuis to check
> > what it indeed can do.
> >
> > Talking about complexity, let's take for example, morph layout. This is
> > started with #doLayoutIn: in Pharo and #doLayoutIfNeeded in SimpleMorphic.
> >
> > In Pharo, this method calls #adjustLayoutBounds: (19), #layout:in:
> > (149), #layoutProportionallyIn: (10),
> > #computeCellArrangement:in:horizontal:target: (87),
> > #computeGlobalCellArrangement:in:horizontal:wrap:spacing: (31),
> > #computeCellSizes:in:horizontal: (30),
> > #computeExtraSpacing:in:horizontal:target: (136), #layoutLeftToRight:in:
> > (91), #layoutTopToBottom:in: (91), #placeCells:in:horizontal:target:
> > (70). The numbers in parenthesis are the sum of the lines of code of the
> > implementors. Total lines of code for layout (taking only these most
> > important methods) is 714. I doubt there are many people who really
> > understand all of this code.
> >
> > In SimpleMorphic (Cuis), this calls #layoutSubmorphsIn: (10),
> > #applyLayoutFrameIn: (11), #layout:in: (24). Total lines of code is 45.
> > I believe any smalltalker could understand these in just minutes."
> >
> > Cheers,
> > Juan Vuletich
>

--
Miguel Cobá
http://twitter.com/MiguelCobaMtz
http://miguel.leugim.com.mx




Reply | Threaded
Open this post in threaded view
|

Re: SimpleMorphic

David T. Lewis
On Fri, Mar 04, 2011 at 11:20:53PM -0600, Miguel Cob? wrote:

> Great work, thanks.
>
> A suggestion, why don't follow a common pattern to name the
> Pharo/Squeak/Gemstone specific code for package XXX with the format:
>
> XXX-Squeak
>
> so that the packages be:
>
> XXX-dtl.123.mcz
> XXX-Squeak-dtl.123.mcz
> XXX-Pharo-dtl.123.mcz
>
> This way if a Metacello configuration is created for this package it
> will pull the corresponding dependency for tha platform where is being
> installed.
>
> Cheers.
>

That's a good idea, although at this point I'm not sure which bits
are Pharo or Squeak specific. Most of the extensions in the SMx
package that I referred to as "Squeak-specific" are from Juan's
change sets that he did for the Pharo integration, so hopefully
the differences will not be too great.

Thanks,
Dave


Reply | Threaded
Open this post in threaded view
|

Re: SimpleMorphic

Edgar De Cleene
In reply to this post by David T. Lewis



On 3/4/11 9:41 PM, "David T. Lewis" <[hidden email]> wrote:

> Many thanks to Juan for creating SimpleMorphic, and thanks also to ESUG
> for supporting his work to make SimpleMorphic available to the community.
>
> To load SimpleMorphic into a fully updated trunk image, install the
> following from the Squeak inbox:
>
> Morphic-dtl.523.mcz
> SMx-dtl.12
> SimpleMorphic-dtl.7
>
> After loading these three files, you can open a new SimpleMorphic project
> from the menu bar or from the world menu. Not everything works yet, but
> there is enough in place to open browsers, workspaces, etc and generally
> get a feel for how it works.


Many thanks to Juan for doing SimpleMorphic
Many thank to you for bring it to trunk

Now i could do SqueakLight4

A trunk / pharo cross with SimpleMorphic and my own wild ideas

I fact , in this moment i chatting with German Arduino and trying your
recipe in my SqueakLight3-Cog-alpha.9902.image.


What is Squeak 4.2 unloaded to my taste and updated until this morning with
only my choices from trunk .

All goes right until now, so i took the rest of Carnaval for follow
discussion , working my ideas and test.

Thanks Juan, Thank David


Edgar


P.S. Could follow test in Twitter as #Squeaklight4
@morplenauta



Reply | Threaded
Open this post in threaded view
|

Re: SimpleMorphic

David T. Lewis
On Sat, Mar 05, 2011 at 08:08:00PM -0200, Edgar J. De Cleene wrote:

>
>
>
> On 3/4/11 9:41 PM, "David T. Lewis" <[hidden email]> wrote:
>
> > Many thanks to Juan for creating SimpleMorphic, and thanks also to ESUG
> > for supporting his work to make SimpleMorphic available to the community.
> >
> > To load SimpleMorphic into a fully updated trunk image, install the
> > following from the Squeak inbox:
> >
> > Morphic-dtl.523.mcz
> > SMx-dtl.12
> > SimpleMorphic-dtl.7
> >
> > After loading these three files, you can open a new SimpleMorphic project
> > from the menu bar or from the world menu. Not everything works yet, but
> > there is enough in place to open browsers, workspaces, etc and generally
> > get a feel for how it works.
>
>
> Many thanks to Juan for doing SimpleMorphic
> Many thank to you for bring it to trunk

Hi Edgar,

The integration of SimpleMorphic as a Squeak project is not
complete, so think of this as "pre-alpha". But I'm still working
on it, and learning a lot about Morphic in the process :)

Dave

>
> Now i could do SqueakLight4
>
> A trunk / pharo cross with SimpleMorphic and my own wild ideas
>
> I fact , in this moment i chatting with German Arduino and trying your
> recipe in my SqueakLight3-Cog-alpha.9902.image.
>
>
> What is Squeak 4.2 unloaded to my taste and updated until this morning with
> only my choices from trunk .
>
> All goes right until now, so i took the rest of Carnaval for follow
> discussion , working my ideas and test.
>
> Thanks Juan, Thank David
>
>
> Edgar
>
>
> P.S. Could follow test in Twitter as #Squeaklight4
> @morplenauta
>
>

Reply | Threaded
Open this post in threaded view
|

Re: SimpleMorphic

Edgar De Cleene



On 3/6/11 1:05 PM, "David T. Lewis" <[hidden email]> wrote:

>
> Hi Edgar,
>
> The integration of © as a Squeak project is not
> complete, so think of this as "pre-alpha". But I'm still working
> on it, and learning a lot about Morphic in the process :)
>
> Dave

Yes , I know.
A lot of work for having a useful system, but is a giant step having
SimpleMorphic running.


Need re-doing all tools windows.
Can beg Monticello Browser first ?

My idea is having a no backward compatible system.
Run in SimpleMorphic  on top of Squeak / Pharo cross.

Lots of learning....


Edgar



Reply | Threaded
Open this post in threaded view
|

Re: SimpleMorphic

Casey Ransberger-2
Yeah, in Squeak's situation it makes even more sense than it makes in Pharo, because we have a lot of features and applications in our image which the community is strongly aligned against breaking until they can be reloaded as external packages, which I think is admirable and responsible, but makes it really hard to drive Morphic into the future.

SimpleMorphic is nice because we can enjoy our past while slicing off a delicious piece of the future (Cuis' Morphic implementation approaches an ideal in my view, though some features are missing.)

On Mar 6, 2011, at 2:01 PM, "Edgar J. De Cleene" <[hidden email]> wrote:

>
>
>
> On 3/6/11 1:05 PM, "David T. Lewis" <[hidden email]> wrote:
>
>>
>> Hi Edgar,
>>
>> The integration of © as a Squeak project is not
>> complete, so think of this as "pre-alpha". But I'm still working
>> on it, and learning a lot about Morphic in the process :)
>>
>> Dave
>
> Yes , I know.
> A lot of work for having a useful system, but is a giant step having
> SimpleMorphic running.
>
>
> Need re-doing all tools windows.
> Can beg Monticello Browser first ?
>
> My idea is having a no backward compatible system.
> Run in SimpleMorphic  on top of Squeak / Pharo cross.
>
> Lots of learning....
>
>
> Edgar
>
>
>

Reply | Threaded
Open this post in threaded view
|

Traslator idea Re: [squeak-dev] SimpleMorphic

Edgar De Cleene



On 3/6/11 10:46 PM, "Casey Ransberger" <[hidden email]> wrote:

> Yeah, in Squeak's situation it makes even more sense than it makes in Pharo,
> because we have a lot of features and applications in our image which the
> community is strongly aligned against breaking until they can be reloaded as
> external packages, which I think is admirable and responsible, but makes it
> really hard to drive Morphic into the future.
>
> SimpleMorphic is nice because we can enjoy our past while slicing off a
> delicious piece of the future (Cuis' Morphic implementation approaches an
> ideal in my view, though some features are missing.)
>
> On Mar 6, 2011, at 2:01 PM, "Edgar J. De Cleene" <[hidden email]>
> wrote:
>
>>
>>
>>
>> On 3/6/11 1:05 PM, "David T. Lewis" <[hidden email]> wrote:
>>
>>>
>>> Hi Edgar,
>>>
>>> The integration of © as a Squeak project is not
>>> complete, so think of this as "pre-alpha". But I'm still working
>>> on it, and learning a lot about Morphic in the process :)
>>>
>>> Dave
>>
>> Yes , I know.
>> A lot of work for having a useful system, but is a giant step having
>> SimpleMorphic running.
>>
>>
>> Need re-doing all tools windows.
>> Can beg Monticello Browser first ?
>>
>> My idea is having a no backward compatible system.
>> Run in SimpleMorphic  on top of Squeak / Pharo cross.
>>
>> Lots of learning....
>>
>>
>> Edgar


It's obvious none today Morphic app could run in SimpleMorphic, right ?
So, what about if we design a Traslator package which could take a today
Morphic app and convert it to SimpleMorphic ?

Juan could advice to a Translator "Task Force".
As I have a nice internal LAN with all kind of computers , volunteer for
doing test and reports.
When learn how to do , also could help with code.

Edgar



Reply | Threaded
Open this post in threaded view
|

Re: Traslator idea Re: [squeak-dev] SimpleMorphic

Juan Vuletich-4
Edgar J. De Cleene wrote:

> It's obvious none today Morphic app could run in SimpleMorphic, right ?
> So, what about if we design a Traslator package which could take a today
> Morphic app and convert it to SimpleMorphic ?
>
> Juan could advice to a Translator "Task Force".
> As I have a nice internal LAN with all kind of computers , volunteer for
> doing test and reports.
> When learn how to do , also could help with code.
>
> Edgar
>  

I will support this initiative (or any other that involves code I
write). I will participate in discussions, advice if needed, and fix any
bugs found in my code.

Cheers,
Juan Vuletich

Reply | Threaded
Open this post in threaded view
|

Re: Traslator idea Re: [squeak-dev] SimpleMorphic

David T. Lewis
On Mon, Mar 07, 2011 at 10:45:18AM -0300, Juan Vuletich wrote:

> Edgar J. De Cleene wrote:
> >It's obvious none today Morphic app could run in SimpleMorphic, right ?
> >So, what about if we design a Traslator package which could take a today
> >Morphic app and convert it to SimpleMorphic ?
> >
> >Juan could advice to a Translator "Task Force".
> >As I have a nice internal LAN with all kind of computers , volunteer for
> >doing test and reports.
> >When learn how to do , also could help with code.
> >
> >Edgar
> >  
>
> I will support this initiative (or any other that involves code I
> write). I will participate in discussions, advice if needed, and fix any
> bugs found in my code.
>
> Cheers,
> Juan Vuletich

Thanks Juan.

I moved all of the SimpleMorphic updates I have done for Squeak to
a project on SqueakSource called "SimpleMorphic for Squeak". This
includes some updates since the versions I put into the inbox.

  MCHttpRepository
      location: 'http://www.squeaksource.com/SimpleMorphicSqueak'
      user: ''
      password: ''

This should be just a temporary repository, but I guess it is better
to put it on SqueakSource than leave it sitting on my hard drive.

I will remove the files that I put in the Squeak inbox, which are
now obsolete.

Dave


12