Regarding Polymorph

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

Regarding Polymorph

Casey Ransberger
I tried for weeks early on to get polymorph working in a trunk image.
I even had it working for awhile, but I failed at what I wanted to do,
namely to find it's essence and do for it what Andreas has done for
traits.

When enough Pharoisms had crept in that it was no longer loadable in
Squeak, I tried another approach; just modify the object graph of the
UI directly. For my experiment, (simply installing new buttons in the
system windows) I learned of a couple of interesting gotchas. E.g.
That windows made by toolbuilder behave differently than windows
created the old fashioned way.

Anyway I'll cut to the chase: having gotten to know the Polymorph
codebase a little, I can say that it is full of ugly workarounds for
the shortcomings of the UI in Squeak, and that this explains in part
it's complexity.

I think, as we are Trunk developers, that we can do much better than
Polymorph's bolt-on solution. I think we can get a smaller, more
elegant solution. This is something I'm passionate about, and I plan
to spend some more time exploring in the skinnability department, once
I'm done with 4.0.

On Friday, March 12, 2010, Edgar J. De Cleene <[hidden email]> wrote:

>
>
>
> On 3/11/10 10:47 PM, "Levente Uzonyi" <[hidden email]> wrote:
>
>> Noone forces you to use Squeak.
>>
>>
>> Levente
>
>
> only misdirect those who know where they go
>
>
>
>

--
Casey Ransberger

Reply | Threaded
Open this post in threaded view
|

Re: Regarding Polymorph

Ian Trudel-2
2010/3/12 Casey Ransberger <[hidden email]>:
> I think, as we are Trunk developers, that we can do much better than
> Polymorph's bolt-on solution. I think we can get a smaller, more
> elegant solution. This is something I'm passionate about, and I plan
> to spend some more time exploring in the skinnability department, once
> I'm done with 4.0.

Besides, there has been quite some work to factor and improve Morphic.
It's a good moment to work on such things as adding skinning feature
to Morphic.

Ian.
--
http://mecenia.blogspot.com/

Reply | Threaded
Open this post in threaded view
|

Re: Regarding Polymorph

Igor Stasenko
Casey,
i think you are a bit subjective when saying that Polymorph is for Pharo only.
Originally, it was developed for Squeak and used by squeak.
Then, in times of apathy, when Squeak was a rotting swamp, Pharo team
took an effort to incorporate
this package into Pharo.



--
Best regards,
Igor Stasenko AKA sig.

Reply | Threaded
Open this post in threaded view
|

Re: Regarding Polymorph

keith1y

On 13 Mar 2010, at 01:02, Igor Stasenko wrote:

> Casey,
> i think you are a bit subjective when saying that Polymorph is for  
> Pharo only.
> Originally, it was developed for Squeak and used by squeak.
> Then, in times of apathy, when Squeak was a rotting swamp, Pharo team
> took an effort to incorporate
> this package into Pharo.

Not quite accurate, the developer of polymorph integrated it into  
pharo, and did the work of keeping up with pharo.

It loaded into squeak 3.10.2 already,

The only reason it may not load into trunk now is if trunk  
contributors broke something, because evidently its developer doesn't  
have time to keep up with both forks. This is the inevitable scenario  
that forking produces.

Keith


Reply | Threaded
Open this post in threaded view
|

Re: Regarding Polymorph

Casey Ransberger
In reply to this post by Igor Stasenko
Igor: I didn't say that Polymorph was "for Pharo only," what I said
was "When enough Pharoisms had crept in that it was no longer loadable
in
Squeak, I tried another approach..."

Actually shortly after that enough Trunkisms had crept into Squeak
that I was no longer easily able to work around the Pharoisms,
ahahaha. At that point on loading it I would get a million debugger
windows and the system would thrash and tank. That's when I finally
gave up and started looking at smaller and simpler solutions.

It's mostly being developed in Pharo now; and as such, the latest bits
have (at last I checked and tried loading it up in Trunk) dependencies
on some things that are in Pharo but not in Squeak. At this point,
there is a bit of porting to do in order to get it working in Trunk;
after porting it, I would probably have a fork of it, unless I did
some work on Trunk itself to incorporate some Pharoisms. Both of these
are IMHO valid approaches, but my point was orthogonal to this: that I
think I can do better than Polymorph. Think small, simple,
lightweight, loadable and unloadable, skinning by design, not a
bolt-on collection of workarounds and multiple solutions to the same
and similar problems.

My observation in having browsed and played with the code is that
Polymorph was developed in an environment when it was hard to get
support for things into the core of Squeak; that's not the case
anymore. One example here is that toolbuilderized things don't behave
like other things, meaning Polymorph had to solve some problems (IIRC,
system window buttons) twice, which is inelegant to my mind.

I'm not knocking Polymorph. It works great! I had a lot of fun playing
with it and rolling up custom subclasses of of UITheme when I was
first learning to Squeak.

And I have no qualms about saying that I admire what the Pharo team
has done, either! I think it's neat that they took their vision in
their own direction, and marched to the beat of their own drum. I use
Pharo, and I enjoy using Pharo.

My interest in Squeak is stronger than my interest in Pharo, however,
and so here I am.

On Fri, Mar 12, 2010 at 5:02 PM, Igor Stasenko <[hidden email]> wrote:

> Casey,
> i think you are a bit subjective when saying that Polymorph is for Pharo only.
> Originally, it was developed for Squeak and used by squeak.
> Then, in times of apathy, when Squeak was a rotting swamp, Pharo team
> took an effort to incorporate
> this package into Pharo.
>
>
>
> --
> Best regards,
> Igor Stasenko AKA sig.
>
>



--
Casey Ransberger

Reply | Threaded
Open this post in threaded view
|

Re: Regarding Polymorph

Igor Stasenko
Guys, your points taken.

This project, as well as many others are victims of monolithic design.
Morphic is monolithic. And Polymorph, placed on top if it, inevitably
inherits a worst
from its base - a monolithic design :(
Also, Pharo cut out many etoys-only stuff from Morphic,
while Squeak proclaimed to keep etoys in place (until better times ;)

GUI, as well as many other parts of system needs systematical approach
- maintenance,
support and improvement on a regular basis.
Being a member of community for last 4 years i din't observed anything
like that related to Morphic.

Loading Polymorph into Squeak will not change things. We will just add
another unmaintained project on top
of already unmaintaned one, unless, of course, Gary will volunteer to
become a Morphic maintainer in both Pharo and Squeak forks.
Which i doubt, because he didn't wanted to do it, when i proposed it
last time few years ago.

--
Best regards,
Igor Stasenko AKA sig.

Reply | Threaded
Open this post in threaded view
|

Re: Regarding Polymorph

Casey Ransberger
In reply to this post by keith1y
Actually the latest versions had some stuff that I recognized as
changes from Pharo, but otherwise, you're dead on, Keith. Some things
it expects have changed in Trunk, and some things the latest bits
expect are only in Pharo (I hope no one is offended by my use of the
term Pharoism, it's not a slur -- as I've said, I think Pharo rocks!)

On Fri, Mar 12, 2010 at 5:09 PM, keith <[hidden email]> wrote:

>
> On 13 Mar 2010, at 01:02, Igor Stasenko wrote:
>
>> Casey,
>> i think you are a bit subjective when saying that Polymorph is for Pharo
>> only.
>> Originally, it was developed for Squeak and used by squeak.
>> Then, in times of apathy, when Squeak was a rotting swamp, Pharo team
>> took an effort to incorporate
>> this package into Pharo.
>
> Not quite accurate, the developer of polymorph integrated it into pharo, and
> did the work of keeping up with pharo.
>
> It loaded into squeak 3.10.2 already,
>
> The only reason it may not load into trunk now is if trunk contributors
> broke something, because evidently its developer doesn't have time to keep
> up with both forks. This is the inevitable scenario that forking produces.
>
> Keith
>
>
>



--
Casey Ransberger

Reply | Threaded
Open this post in threaded view
|

Re: Regarding Polymorph

Nicolas Cellier
In reply to this post by Igor Stasenko
2010/3/13 Igor Stasenko <[hidden email]>:

> Guys, your points taken.
>
> This project, as well as many others are victims of monolithic design.
> Morphic is monolithic. And Polymorph, placed on top if it, inevitably
> inherits a worst
> from its base - a monolithic design :(
> Also, Pharo cut out many etoys-only stuff from Morphic,
> while Squeak proclaimed to keep etoys in place (until better times ;)
>
> GUI, as well as many other parts of system needs systematical approach
> - maintenance,
> support and improvement on a regular basis.
> Being a member of community for last 4 years i din't observed anything
> like that related to Morphic.
>

Hey, it's far more involving than changing just Collections...
The code base is large, tricky, and every change potentially break
tools and put another image in you garbage bin.
Plus, it's a huge work (See VW recent failure to replace wrappers).
But the major risk is breaking every "cool" morphic project, and thus
see your changes rejected by community.
The only way I see is starting a parallel implementation from scratch
(not Scratch the software ;).
And I think Pharo would be a better place to experiment more radical
changes, because not tied to the past.

Nicolas

> Loading Polymorph into Squeak will not change things. We will just add
> another unmaintained project on top
> of already unmaintaned one, unless, of course, Gary will volunteer to
> become a Morphic maintainer in both Pharo and Squeak forks.
> Which i doubt, because he didn't wanted to do it, when i proposed it
> last time few years ago.
>
> --
> Best regards,
> Igor Stasenko AKA sig.
>
>

Reply | Threaded
Open this post in threaded view
|

Re: Regarding Polymorph

Igor Stasenko
On 13 March 2010 10:06, Nicolas Cellier
<[hidden email]> wrote:

> 2010/3/13 Igor Stasenko <[hidden email]>:
>> Guys, your points taken.
>>
>> This project, as well as many others are victims of monolithic design.
>> Morphic is monolithic. And Polymorph, placed on top if it, inevitably
>> inherits a worst
>> from its base - a monolithic design :(
>> Also, Pharo cut out many etoys-only stuff from Morphic,
>> while Squeak proclaimed to keep etoys in place (until better times ;)
>>
>> GUI, as well as many other parts of system needs systematical approach
>> - maintenance,
>> support and improvement on a regular basis.
>> Being a member of community for last 4 years i din't observed anything
>> like that related to Morphic.
>>
>
> Hey, it's far more involving than changing just Collections...
> The code base is large, tricky, and every change potentially break
> tools and put another image in you garbage bin.

True. So, let us then stop any development and use Squeak 1.0 image,
since its "code base is large, tricky, and every change potentially
break tools and put another image in you garbage bin". :)

> Plus, it's a huge work (See VW recent failure to replace wrappers).
> But the major risk is breaking every "cool" morphic project, and thus
> see your changes rejected by community.

Still, it doesn't makes my point less relevant: as any part of system
it should be maintained and improved , otherwise it is
doomed to rot and die.

> The only way I see is starting a parallel implementation from scratch
> (not Scratch the software ;).

Like Tweak? I don't wanna get into a details, why Tweak failed to
replace Morphic in Squeak,
but i think this is what any brand new framework have to meet: compete
with Morphic and die :)

> And I think Pharo would be a better place to experiment more radical
> changes, because not tied to the past.
>
So, the only conclusion i can draw from above is: if you want to see
any improvement in Morphic, go Pharo.
It is ok, as for me. But not for Squeak, i guess, because it doesn't
helping it in any way.

> Nicolas
>

--
Best regards,
Igor Stasenko AKA sig.

Reply | Threaded
Open this post in threaded view
|

Re: Regarding Polymorph

Casey Ransberger
Er... I don't think there's anything intrinsic to Morphic which makes
skinning hard. It's the patchwork architecture of the tools that needs
help. Toolbuilderize everything and include support in toolbuilder for
skinning, and I imagine that at least a large part of Polymorph
becomes unnecessary. I need to spend some time digging into
toolbuilder to confirm this hunch; it's on my TODO list.

On Sat, Mar 13, 2010 at 12:25 AM, Igor Stasenko <[hidden email]> wrote:

> On 13 March 2010 10:06, Nicolas Cellier
> <[hidden email]> wrote:
>> 2010/3/13 Igor Stasenko <[hidden email]>:
>>> Guys, your points taken.
>>>
>>> This project, as well as many others are victims of monolithic design.
>>> Morphic is monolithic. And Polymorph, placed on top if it, inevitably
>>> inherits a worst
>>> from its base - a monolithic design :(
>>> Also, Pharo cut out many etoys-only stuff from Morphic,
>>> while Squeak proclaimed to keep etoys in place (until better times ;)
>>>
>>> GUI, as well as many other parts of system needs systematical approach
>>> - maintenance,
>>> support and improvement on a regular basis.
>>> Being a member of community for last 4 years i din't observed anything
>>> like that related to Morphic.
>>>
>>
>> Hey, it's far more involving than changing just Collections...
>> The code base is large, tricky, and every change potentially break
>> tools and put another image in you garbage bin.
>
> True. So, let us then stop any development and use Squeak 1.0 image,
> since its "code base is large, tricky, and every change potentially
> break tools and put another image in you garbage bin". :)
>
>> Plus, it's a huge work (See VW recent failure to replace wrappers).
>> But the major risk is breaking every "cool" morphic project, and thus
>> see your changes rejected by community.
>
> Still, it doesn't makes my point less relevant: as any part of system
> it should be maintained and improved , otherwise it is
> doomed to rot and die.
>
>> The only way I see is starting a parallel implementation from scratch
>> (not Scratch the software ;).
>
> Like Tweak? I don't wanna get into a details, why Tweak failed to
> replace Morphic in Squeak,
> but i think this is what any brand new framework have to meet: compete
> with Morphic and die :)
>
>> And I think Pharo would be a better place to experiment more radical
>> changes, because not tied to the past.
>>
> So, the only conclusion i can draw from above is: if you want to see
> any improvement in Morphic, go Pharo.
> It is ok, as for me. But not for Squeak, i guess, because it doesn't
> helping it in any way.
>
>> Nicolas
>>
>
> --
> Best regards,
> Igor Stasenko AKA sig.
>
>



--
Casey Ransberger

Reply | Threaded
Open this post in threaded view
|

Re: Regarding Polymorph

Andreas.Raab
In reply to this post by Igor Stasenko
On 3/13/2010 12:25 AM, Igor Stasenko wrote:
> Like Tweak? I don't wanna get into a details, why Tweak failed to
> replace Morphic in Squeak,

I'd be kinda curious what you think about that. My opinion is pretty
clear: I never *wanted* Tweak to be a replacement for Morphic. It wasn't
ready; it was a playground for lots of new ideas.

> but i think this is what any brand new framework have to meet: compete
> with Morphic and die :)

You think so? Hm ... well maybe I should finally put a little release
together. I think a decent Morphic competition is best done by being
antithetical to Morphic. I'll see if I can find some time to polish
things up a bit.

Cheers,
   - Andreas


Reply | Threaded
Open this post in threaded view
|

Re: Regarding Polymorph

Igor Stasenko
On 13 March 2010 10:47, Andreas Raab <[hidden email]> wrote:
> On 3/13/2010 12:25 AM, Igor Stasenko wrote:
>>
>> Like Tweak? I don't wanna get into a details, why Tweak failed to
>> replace Morphic in Squeak,
>
> I'd be kinda curious what you think about that. My opinion is pretty clear:
> I never *wanted* Tweak to be a replacement for Morphic. It wasn't ready; it
> was a playground for lots of new ideas.
>

It was just an example, of how far you should go, to be at least as
rich in features as Morphic.
It is much bigger investment than modifying existing code. And still
you have big chances that
it won't replace Morphic as a framework of choice for developers.
So, it is much more risk, comparing to the risk of changing Morphic
even if it breaks some 'cool' years old stuff.

If that's not true, then there should be already dozens of different
frameworks ready for use in Squeak :)

>> but i think this is what any brand new framework have to meet: compete
>> with Morphic and die :)
>
> You think so? Hm ... well maybe I should finally put a little release
> together. I think a decent Morphic competition is best done by being
> antithetical to Morphic. I'll see if I can find some time to polish things
> up a bit.
>
Not sure i understood what is 'being antithetical to Morphic' means.
I think that in Squeak situation, it is better to keep improving what
we already have, instead of
making a new framework.
But this is exactly what Nicolas says that its highly unlikely to happen.

> Cheers,
>  - Andreas
>

--
Best regards,
Igor Stasenko AKA sig.

Reply | Threaded
Open this post in threaded view
|

Re: Regarding Polymorph

Andreas.Raab
On 3/13/2010 1:08 AM, Igor Stasenko wrote:
> It was just an example, of how far you should go, to be at least as
> rich in features as Morphic.
> It is much bigger investment than modifying existing code. And still
> you have big chances that
> it won't replace Morphic as a framework of choice for developers.
> So, it is much more risk, comparing to the risk of changing Morphic
> even if it breaks some 'cool' years old stuff.

Unless you do it differently. There is no reason why a well-designed
framework cannot happily coexist with Morphic. In which case you can
build your framework pretty much without touching anything. Tweak had
some of that; you could run Tweak projects inside Morphic but as with so
many things it wasn't quite completed.

>>> but i think this is what any brand new framework have to meet: compete
>>> with Morphic and die :)
>>
>> You think so? Hm ... well maybe I should finally put a little release
>> together. I think a decent Morphic competition is best done by being
>> antithetical to Morphic. I'll see if I can find some time to polish things
>> up a bit.
>>
> Not sure i understood what is 'being antithetical to Morphic' means.

It means being abstract instead of concrete. Morphic is a very conrete
environment; but if you look at a UI more abstractly, it's just
rectangles with behaviors. Skinning ultimately does that - it demotecs
the lively morphs to being rectangles with their looks being supplied
from elsewhere. If you take that to its logical end you'll find yourself
in a world that is made up of abstract widgets that don't even have a
particular "binding" to a graphics interface. All they know is how to
act in response to events. Pretty much all of the concreteness of
Morphic is gone even though you could reintroduce that. But you start
from a base that's very abstract and that's what I mean by being
antithetical to Morphic.

Cheers,
   - Andreas

Reply | Threaded
Open this post in threaded view
|

Re: Regarding Polymorph

Gary Chambers-4
In reply to this post by keith1y
Indeed, Polymorph can still be loaded into 3.9 (though not a simple thing to
do due the "hacks" that were necessary since based around Morphic).
Not tried a fresh load into 3.9 for a long while though, it is likely that
the current Universes version would need to be used as a starting point,
along with the Polymorph-Squeak-Widgets package (that factors out most of
the Pharo/3.9 differences).

It is becoming increasingly difficult to maintain 3.9 compatability due to
Pharo adaptations. Keith is right that it is unfortunately too much work to
keep up with an additional moving target (trunk). Even so, the Pharo version
is quite different to the packaged version as available on SqueakSource.

Of course, it would have been nicer if Morphic/EToys was less complicated
and full of dependencies in the first place...
Still, Morphic had a lot to offer, hence the decision to base Polymorph upon
it.

Polymorph could have been made to work *within* Morphic, without extensions
but then, without rewriting the IDE tools, no benefits would be gained for
the development environment, just for new "end user" applications.

If nothing else, I hope that Polymorph has given people some ideas to help
improve Squeak. It is not just about look and feel but also things you might
take for granted in most other widget kits, DropLists, common dialogs etc...

Regards, Gary

----- Original Message -----
From: "keith" <[hidden email]>
To: "The general-purpose Squeak developers list"
<[hidden email]>
Sent: Saturday, March 13, 2010 1:09 AM
Subject: Re: [squeak-dev] Regarding Polymorph


>
> On 13 Mar 2010, at 01:02, Igor Stasenko wrote:
>
>> Casey,
>> i think you are a bit subjective when saying that Polymorph is for  Pharo
>> only.
>> Originally, it was developed for Squeak and used by squeak.
>> Then, in times of apathy, when Squeak was a rotting swamp, Pharo team
>> took an effort to incorporate
>> this package into Pharo.
>
> Not quite accurate, the developer of polymorph integrated it into  pharo,
> and did the work of keeping up with pharo.
>
> It loaded into squeak 3.10.2 already,
>
> The only reason it may not load into trunk now is if trunk  contributors
> broke something, because evidently its developer doesn't  have time to
> keep up with both forks. This is the inevitable scenario  that forking
> produces.
>
> Keith
>
>


Reply | Threaded
Open this post in threaded view
|

Re: Regarding Polymorph

Gary Chambers-4
In reply to this post by Igor Stasenko
Hi Igor.

My hands are full enough with (paying) work and Polymorph maintenance...
Morphic itself is hugely more work!

Were I to do things again it would likely be from scratch with a nice, clean
design, as you know. Of course, gaining
any acceptance of a new UI framework would be next to impossible, not to
mention leaving existing applications out in the cold.
That's why Polymorph has been complicated... backwards compatability!

Now, if everything had used ToolBuilder there would be a chance, although
too limiting for all the fun stuff that has been done using Morphic across
the years...

Regards, Gary


----- Original Message -----
From: "Igor Stasenko" <[hidden email]>
To: "The general-purpose Squeak developers list"
<[hidden email]>
Sent: Saturday, March 13, 2010 2:23 AM
Subject: Re: [squeak-dev] Regarding Polymorph


> Guys, your points taken.
>
> This project, as well as many others are victims of monolithic design.
> Morphic is monolithic. And Polymorph, placed on top if it, inevitably
> inherits a worst
> from its base - a monolithic design :(
> Also, Pharo cut out many etoys-only stuff from Morphic,
> while Squeak proclaimed to keep etoys in place (until better times ;)
>
> GUI, as well as many other parts of system needs systematical approach
> - maintenance,
> support and improvement on a regular basis.
> Being a member of community for last 4 years i din't observed anything
> like that related to Morphic.
>
> Loading Polymorph into Squeak will not change things. We will just add
> another unmaintained project on top
> of already unmaintaned one, unless, of course, Gary will volunteer to
> become a Morphic maintainer in both Pharo and Squeak forks.
> Which i doubt, because he didn't wanted to do it, when i proposed it
> last time few years ago.
>
> --
> Best regards,
> Igor Stasenko AKA sig.
>


Reply | Threaded
Open this post in threaded view
|

Re: Regarding Polymorph

Gary Chambers-4
In reply to this post by Andreas.Raab
----- Original Message -----
From: "Andreas Raab" <[hidden email]>
To: "The general-purpose Squeak developers list"
<[hidden email]>
Sent: Saturday, March 13, 2010 9:21 AM
Subject: [squeak-dev] Re: Regarding Polymorph


> On 3/13/2010 1:08 AM, Igor Stasenko wrote:
>> It was just an example, of how far you should go, to be at least as
>> rich in features as Morphic.
>> It is much bigger investment than modifying existing code. And still
>> you have big chances that
>> it won't replace Morphic as a framework of choice for developers.
>> So, it is much more risk, comparing to the risk of changing Morphic
>> even if it breaks some 'cool' years old stuff.
>
> Unless you do it differently. There is no reason why a well-designed
> framework cannot happily coexist with Morphic. In which case you can build
> your framework pretty much without touching anything. Tweak had some of
> that; you could run Tweak projects inside Morphic but as with so many
> things it wasn't quite completed.
>
>>>> but i think this is what any brand new framework have to meet: compete
>>>> with Morphic and die :)
>>>
>>> You think so? Hm ... well maybe I should finally put a little release
>>> together. I think a decent Morphic competition is best done by being
>>> antithetical to Morphic. I'll see if I can find some time to polish
>>> things
>>> up a bit.
>>>
>> Not sure i understood what is 'being antithetical to Morphic' means.
>
> It means being abstract instead of concrete. Morphic is a very conrete
> environment; but if you look at a UI more abstractly, it's just rectangles
> with behaviors. Skinning ultimately does that - it demotecs the lively
> morphs to being rectangles with their looks being supplied from elsewhere.
> If you take that to its logical end you'll find yourself in a world that
> is made up of abstract widgets that don't even have a particular "binding"
> to a graphics interface. All they know is how to act in response to
> events. Pretty much all of the concreteness of Morphic is gone even though
> you could reintroduce that. But you start from a base that's very abstract
> and that's what I mean by being antithetical to Morphic.
>

Yes, that'd be the way I'd go if I had the time/support to do the vast
amount of work required.
Perhaps the other option... turn it all on its head and have the nice new
framework with adapters to run Morphic within.
That'd solve the backwards compatability issues while alowing new progress
to be made.

> Cheers,
>   - Andreas
>


Reply | Threaded
Open this post in threaded view
|

Re: Regarding Polymorph

Gary Chambers-4
In reply to this post by Casey Ransberger
For what it is worth...
I have been able to load Polymorph into trunk, not the easiest (mainly due
to MC differences wrt Traits), takes
around 5 minutes of manual fixing while loading...

Once "in", clearly shows up the areas that have changed in trunk though...

(process instructions available if desired...)

My advice is, as I think you intend, is to learn from Polymorph and, even
further, push for some kind of overall UI framework that
can support the ideas. Otherwise you'll run into the same issues that I had
to deal with (backwards compatability, acceptance, with/without-EToys
etc.)...

I believe you wanted to know what the "essence" of Polymorph was (in
priority order)...

1. Look and feel familiar to end-application-users (non-Squeakers!).
2. Support for commonly expected widgets/controls/dialogs.
3. Integration with the (image/ide) environment to leverage the above for
developers.
4. Improving tools for development (Diff tools etc.).
5. Hooking Morphic to allow look/feel to be extensible.

Given the (end-user-unnaceptable) state the Squeak UI was in at the time of
inception (2006), there was no way we could deliver an end-user application
with the way Squeak was then.

Even now there is no infrastructure to be able to do these things in a
"clean" manner... A lot of work to refactor Morphic to handle such things
even now... perhaps time for a change, though there's a lot of *great* stuff
in Morphic when investigated.

Regards, Gary

----- Original Message -----
From: "Casey Ransberger" <[hidden email]>
To: "The general-purpose Squeak developers list"
<[hidden email]>
Sent: Friday, March 12, 2010 5:33 PM
Subject: [squeak-dev] Regarding Polymorph


>I tried for weeks early on to get polymorph working in a trunk image.
> I even had it working for awhile, but I failed at what I wanted to do,
> namely to find it's essence and do for it what Andreas has done for
> traits.
>
> When enough Pharoisms had crept in that it was no longer loadable in
> Squeak, I tried another approach; just modify the object graph of the
> UI directly. For my experiment, (simply installing new buttons in the
> system windows) I learned of a couple of interesting gotchas. E.g.
> That windows made by toolbuilder behave differently than windows
> created the old fashioned way.
>
> Anyway I'll cut to the chase: having gotten to know the Polymorph
> codebase a little, I can say that it is full of ugly workarounds for
> the shortcomings of the UI in Squeak, and that this explains in part
> it's complexity.
>
> I think, as we are Trunk developers, that we can do much better than
> Polymorph's bolt-on solution. I think we can get a smaller, more
> elegant solution. This is something I'm passionate about, and I plan
> to spend some more time exploring in the skinnability department, once
> I'm done with 4.0.
>
> On Friday, March 12, 2010, Edgar J. De Cleene <[hidden email]>
> wrote:
>>
>>
>>
>> On 3/11/10 10:47 PM, "Levente Uzonyi" <[hidden email]> wrote:
>>
>>> Noone forces you to use Squeak.
>>>
>>>
>>> Levente
>>
>>
>> only misdirect those who know where they go
>>
>>
>>
>>
>
> --
> Casey Ransberger
>


Reply | Threaded
Open this post in threaded view
|

Re: Regarding Polymorph

Casey Ransberger
In reply to this post by Gary Chambers-4
Gary, you've echoed a suspicion that I have: "Now, if everything had
used ToolBuilder there would be a chance"

In your opinion, if we went and toolbuilderized everything we could
find, assuming we didn't have to worry about supporting other forks,
roughly how much complexity would we be able to shave off of
Polymorph?

My thought is, we could greatly reduce the complexity of a user interface

On Sat, Mar 13, 2010 at 4:29 AM, Gary Chambers
<[hidden email]> wrote:

> Hi Igor.
>
> My hands are full enough with (paying) work and Polymorph maintenance...
> Morphic itself is hugely more work!
>
> Were I to do things again it would likely be from scratch with a nice, clean
> design, as you know. Of course, gaining
> any acceptance of a new UI framework would be next to impossible, not to
> mention leaving existing applications out in the cold.
> That's why Polymorph has been complicated... backwards compatability!
>
> Now, if everything had used ToolBuilder there would be a chance, although
> too limiting for all the fun stuff that has been done using Morphic across
> the years...
>
> Regards, Gary
>
>
> ----- Original Message ----- From: "Igor Stasenko" <[hidden email]>
> To: "The general-purpose Squeak developers list"
> <[hidden email]>
> Sent: Saturday, March 13, 2010 2:23 AM
> Subject: Re: [squeak-dev] Regarding Polymorph
>
>
>> Guys, your points taken.
>>
>> This project, as well as many others are victims of monolithic design.
>> Morphic is monolithic. And Polymorph, placed on top if it, inevitably
>> inherits a worst
>> from its base - a monolithic design :(
>> Also, Pharo cut out many etoys-only stuff from Morphic,
>> while Squeak proclaimed to keep etoys in place (until better times ;)
>>
>> GUI, as well as many other parts of system needs systematical approach
>> - maintenance,
>> support and improvement on a regular basis.
>> Being a member of community for last 4 years i din't observed anything
>> like that related to Morphic.
>>
>> Loading Polymorph into Squeak will not change things. We will just add
>> another unmaintained project on top
>> of already unmaintaned one, unless, of course, Gary will volunteer to
>> become a Morphic maintainer in both Pharo and Squeak forks.
>> Which i doubt, because he didn't wanted to do it, when i proposed it
>> last time few years ago.
>>
>> --
>> Best regards,
>> Igor Stasenko AKA sig.
>>
>
>
>



--
Casey Ransberger

Reply | Threaded
Open this post in threaded view
|

Re: Regarding Polymorph

Chris Cunnington
In reply to this post by Casey Ransberger
Gary Chambers said: 
"For what it is worth...
I have been able to load Polymorph into trunk, not the easiest (mainly due 
to MC differences wrt Traits), takes
around 5 minutes of manual fixing while loading...

Once "in", clearly shows up the areas that have changed in trunk though...

(process instructions available if desired...)"

I'd like to see that. If you're offering instructions to load into the Trunk, I'd like them, please. And if you might provide an example for when it's loaded, something like Ellipse new openInWorld, or some kind of first Polymorph widget to look at. That would be great. 
Chris 




Reply | Threaded
Open this post in threaded view
|

Re: Regarding Polymorph

Gary Chambers-4
In reply to this post by Casey Ransberger
If it was ToolBuilder through and through I could have managed (mostly) with
no "extension" methods... that being the main grief with regards to ongoing
changes in trunk... ToolBuilder itself has an adaptable start-point/factory
(c.f. PSToolBuilder). As you identified, not all uses ToolBuilder, hence
lower-level "hacks" required to theme the ide as a whole.

Though, as I mentioned, (implied?) ToolBuilder does severely limit
expressiveness for applications since the "protocol" of allowable
things/widgets/controls is inherently limited. Not to say that ToolBuilder
couldn't be adapted to essentially mirror a decent set of
widgets/controls...

Even so, there are parts of Morphic that, even with a rich ToolBuilder,
would need some refactoring to become more flexible (a lot of assumptions in
the the basic user-event handling and propogation, for example...)

Regards, Gary

----- Original Message -----
From: "Casey Ransberger" <[hidden email]>
To: "The general-purpose Squeak developers list"
<[hidden email]>
Sent: Saturday, March 13, 2010 5:13 PM
Subject: Re: [squeak-dev] Regarding Polymorph


> Gary, you've echoed a suspicion that I have: "Now, if everything had
> used ToolBuilder there would be a chance"
>
> In your opinion, if we went and toolbuilderized everything we could
> find, assuming we didn't have to worry about supporting other forks,
> roughly how much complexity would we be able to shave off of
> Polymorph?
>
> My thought is, we could greatly reduce the complexity of a user interface
>
> On Sat, Mar 13, 2010 at 4:29 AM, Gary Chambers
> <[hidden email]> wrote:
>> Hi Igor.
>>
>> My hands are full enough with (paying) work and Polymorph maintenance...
>> Morphic itself is hugely more work!
>>
>> Were I to do things again it would likely be from scratch with a nice,
>> clean
>> design, as you know. Of course, gaining
>> any acceptance of a new UI framework would be next to impossible, not to
>> mention leaving existing applications out in the cold.
>> That's why Polymorph has been complicated... backwards compatability!
>>
>> Now, if everything had used ToolBuilder there would be a chance, although
>> too limiting for all the fun stuff that has been done using Morphic
>> across
>> the years...
>>
>> Regards, Gary
>>
>>
>> ----- Original Message ----- From: "Igor Stasenko" <[hidden email]>
>> To: "The general-purpose Squeak developers list"
>> <[hidden email]>
>> Sent: Saturday, March 13, 2010 2:23 AM
>> Subject: Re: [squeak-dev] Regarding Polymorph
>>
>>
>>> Guys, your points taken.
>>>
>>> This project, as well as many others are victims of monolithic design.
>>> Morphic is monolithic. And Polymorph, placed on top if it, inevitably
>>> inherits a worst
>>> from its base - a monolithic design :(
>>> Also, Pharo cut out many etoys-only stuff from Morphic,
>>> while Squeak proclaimed to keep etoys in place (until better times ;)
>>>
>>> GUI, as well as many other parts of system needs systematical approach
>>> - maintenance,
>>> support and improvement on a regular basis.
>>> Being a member of community for last 4 years i din't observed anything
>>> like that related to Morphic.
>>>
>>> Loading Polymorph into Squeak will not change things. We will just add
>>> another unmaintained project on top
>>> of already unmaintaned one, unless, of course, Gary will volunteer to
>>> become a Morphic maintainer in both Pharo and Squeak forks.
>>> Which i doubt, because he didn't wanted to do it, when i proposed it
>>> last time few years ago.
>>>
>>> --
>>> Best regards,
>>> Igor Stasenko AKA sig.
>>>
>>
>>
>>
>
>
>
> --
> Casey Ransberger
>


12