Esteban Robles Luna | 2 Oct 2006 13:32
Picon

general questions about squeak

Hi,
I`m new in squeak, but not in smalltalk. I have some questions about
the environment of squeak that will help me to understand it.
- Firstly, I would like to know how the startup process of squeak is,
as detailed as possible.
- Second, MVC projects are just wrapped from morphic?. Later I will
explain why I want to know this.
- Third, who is responsible of opening the main window and if it`s
possible to open other windows without using wxWidgets or something
like that. Is it hardcoded in the vm or elsewhere?
Why I`m asking these questions?
Because I`m interested in using squeak as an alternative for small
commercial projects. I want to know if it`s viable of developing an
MVC with at least one look and feel and a little core of widgets.
I have a look at BobsUI but it`s build on Morphic.
Regards
Esteban
Yoshiki Ohshima | 5 Oct 2006 04:36

Re: general questions about squeak

  Esteban,

> I`m new in squeak, but not in smalltalk. I have some questions about
> the environment of squeak that will help me to understand it.
> - Firstly, I would like to know how the startup process of squeak is,
> as detailed as possible.

  - The VM compiled by a C compiler is loaded onto the memory.
  - The VM allocates a big chunk of memory and load the content of a
    Squeak .image file on to the chunk pretty much as it is.
  - In the loaded image, the pointers may have different offset when
    it was saved, and the endianness may be different, too.  VM
    adjusts them.
  - Now, VM look for the initial context and compiled method to dive
    in and Squeak code start running.
  - Usually, the initial context is in SmalltalkImage>>snapshot:andQuit:embedded:.
    After doing a few things, it start processing the "start up
    list".
  - The start up list consists of classes that need to do something
    upon startup.  You can inspect StartUp class var of
    SystemDictionary and #startUp: methods of them (on the class
    side).
  - Then the UI process gets started and usual interaction begins.

> - Second, MVC projects are just wrapped from morphic?. Later I will
> explain why I want to know this.

  Yes, I can figure out what you are asking^^;

> - Third, who is responsible of opening the main window and if it`s
(Continue reading)

Esteban Robles Luna | 5 Oct 2006 15:09
Picon

Re: general questions about squeak

Thanks for your reply!

On 10/4/06, Yoshiki Ohshima <yoshiki <at> squeakland.org> wrote:
>   Esteban,
>
> > I`m new in squeak, but not in smalltalk. I have some questions about
> > the environment of squeak that will help me to understand it.
> > - Firstly, I would like to know how the startup process of squeak is,
> > as detailed as possible.
>
>   - The VM compiled by a C compiler is loaded onto the memory.
>   - The VM allocates a big chunk of memory and load the content of a
>     Squeak .image file on to the chunk pretty much as it is.
>   - In the loaded image, the pointers may have different offset when
>     it was saved, and the endianness may be different, too.  VM
>     adjusts them.
>   - Now, VM look for the initial context and compiled method to dive
>     in and Squeak code start running.
>   - Usually, the initial context is in SmalltalkImage>>snapshot:andQuit:embedded:.
>     After doing a few things, it start processing the "start up
>     list".
>   - The start up list consists of classes that need to do something
>     upon startup.  You can inspect StartUp class var of
>     SystemDictionary and #startUp: methods of them (on the class
>     side).

Yes, this class is responsible of notifying objects that want to know
that the image has opened.

>   - Then the UI process gets started and usual interaction begins.
(Continue reading)

Bert Freudenberg | 5 Oct 2006 15:35
Picon
Gravatar

Re: general questions about squeak

Am 05.10.2006 um 15:09 schrieb Esteban Robles Luna:
> Is this hardcoded in the VM? or is SmalltalkImage responsible of the
> start up process and then delegates the control to this process?

The VM does not care. It just resumes executing the frozen context,  
that is, whichever context called the snapshot primitive.

> I think that you misunderstand me. The only thing I want from the OS
> is that I can open new windows. HostWindowPlugin works?.

Yes, although it has not been ported to X11, yet. Works on Mac and Win.

> I want to
> have my own widgets implemented in smalltalk, but I want them to look
> and feel like OS ones.

Well, VisualWorks tried, and failed IMHO. *If* you want to get native  
feel, use native widgets.

> Why? Because for normal people is costly to get used to new widgets  
> like Morphic ones.

Hmm, other software (like Firefox) is accepted even with non-native  
look and feel.

> I need a simple framework like MVC, but with an improved looking.

It might be a challenge to make MVC support multiple independently  
updating windows. But sure, this can be done, looking forward to it :)

(Continue reading)

Esteban Robles Luna | 5 Oct 2006 20:30
Picon

Re: general questions about squeak

On 10/5/06, Bert Freudenberg <bert <at> freudenbergs.de> wrote:
> Am 05.10.2006 um 15:09 schrieb Esteban Robles Luna:
> > Is this hardcoded in the VM? or is SmalltalkImage responsible of the
> > start up process and then delegates the control to this process?
>
> The VM does not care. It just resumes executing the frozen context,
> that is, whichever context called the snapshot primitive.

Ok

>
> > I think that you misunderstand me. The only thing I want from the OS
> > is that I can open new windows. HostWindowPlugin works?.
>
> Yes, although it has not been ported to X11, yet. Works on Mac and Win.
>

Excelent!

> > I want to
> > have my own widgets implemented in smalltalk, but I want them to look
> > and feel like OS ones.
>
> Well, VisualWorks tried, and failed IMHO. *If* you want to get native
> feel, use native widgets.
>
> > Why? Because for normal people is costly to get used to new widgets
> > like Morphic ones.
>
> Hmm, other software (like Firefox) is accepted even with non-native
(Continue reading)

Matthias Berth | 5 Oct 2006 17:43

Re: general questions about squeak

> > I need a simple framework like MVC, but with an improved looking.

Another route might be to use a web browser with a HTML GUI on the
desktop. Use Seaside to produce HTML and manage state, scriptaculous
for some extra effects.

> Hmm, other software (like Firefox) is accepted even with non-native
> look and feel.

Further down that road you can create an interface just like Mozilla /
Firefox by using the Gecko layout engine where widgets are specified
in XML (XUL)

 http://developer.mozilla.org/en/docs/XULRunner

Callbacks could be done as local HTTP requests, again. Using Gecko
would also give you vector graphics (SVG).

-- Matthias
Esteban Robles Luna | 5 Oct 2006 20:28
Picon

Re: general questions about squeak

On 10/5/06, Matthias Berth <matthias.berth <at> googlemail.com> wrote:
> > > I need a simple framework like MVC, but with an improved looking.
>
> Another route might be to use a web browser with a HTML GUI on the
> desktop. Use Seaside to produce HTML and manage state, scriptaculous
> for some extra effects.
>
> > Hmm, other software (like Firefox) is accepted even with non-native
> > look and feel.
>
> Further down that road you can create an interface just like Mozilla /
> Firefox by using the Gecko layout engine where widgets are specified
> in XML (XUL)
>
>  http://developer.mozilla.org/en/docs/XULRunner
>
> Callbacks could be done as local HTTP requests, again. Using Gecko
> would also give you vector graphics (SVG).
>

I discard this option, because I would like to build distributed
applications. But thanks for your advice. I don“t know about Gecko!.

> -- Matthias
> _______________________________________________
> Beginners mailing list
> Beginners <at> lists.squeakfoundation.org
> http://lists.squeakfoundation.org/mailman/listinfo/beginners
>

(Continue reading)


Gmane