GUIs with Pharo / how to learn smalltalk

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

GUIs with Pharo / how to learn smalltalk

Daniel Lyons
Hi,

I have two questions, a technical one and a more general one.

In broad strokes, what are people doing for GUIs? My guess would be using Morphic, but googling around you find more abuse than use, it looks like, and very little live links to up-to-date documentation. It makes me wonder: is there something other than Morphic which is being used? Or is everyone doing web apps? Or is there some other GUI toolkit I haven't found yet, and that's where all the action is? Whenever I see a neat Morphic window or something, I feel a bit like there's a party going on somewhere and I didn't get an invitation. Like the first rule of Morphic club is you don't talk about Morphic club.

The general question I have is basically, am I the problem? Is it that the documentation isn't where I expect to find it, or in the form I'm used to seeing, or that it isn't relevant somehow in the Smalltalk universe? Or is it all really intuitive except for me? :) I could accept that, I suppose, but how did you Smalltalk wizards become wizards? Did you just dive in and start reading the code in your own image? Was there some master Smalltalk wizard that you knew who showed you how to do these things? I'm currently reading Smalltalk Best Practice Patterns and it's one of the best programming books I've ever read. I see that there is a great deal of mastery of programming going around in Smalltalk circles, but I don't see the books that take you past beginner towards master, other than SBPP. So what's the trick going on here? How did you guys become excellent?

I hope none of this comes across as negative; I think surely it's that I'm missing something.

Thanks,


Daniel Lyons


Reply | Threaded
Open this post in threaded view
|

Re: GUIs with Pharo / how to learn smalltalk

laurent laffont

On Fri, Mar 25, 2011 at 6:48 AM, Daniel Lyons <[hidden email]> wrote:
Hi,
Hi,
 

I have two questions, a technical one and a more general one.

In broad strokes, what are people doing for GUIs? My guess would be using Morphic, but googling around you find more abuse than use, it looks like, and very little live links to up-to-date documentation. It makes me wonder: is there something other than Morphic which is being used? Or is everyone doing web apps? Or is there some other GUI toolkit I haven't found yet, and that's where all the action is? Whenever I see a neat Morphic window or something, I feel a bit like there's a party going on somewhere and I didn't get an invitation. Like the first rule of Morphic club is you don't talk about Morphic club.

Documentation still poor, but have you looked at:


 
The general question I have is basically, am I the problem? Is it that the documentation isn't where I expect to find it, or in the form I'm used to seeing, or that it isn't relevant somehow in the Smalltalk universe? Or is it all really intuitive except for me? :) I could accept that, I suppose, but how did you Smalltalk wizards become wizards? Did you just dive in and start reading the code in your own image? Was there some master Smalltalk wizard that you knew who showed you how to do these things? I'm currently reading Smalltalk Best Practice Patterns and it's one of the best programming books I've ever read. I see that there is a great deal of mastery of programming going around in Smalltalk circles, but I don't see the books that take you past beginner towards master, other than SBPP. So what's the trick going on here? How did you guys become excellent?


It's not intuitive, disturbing, took me some time to learn basic stuff, but had a lot of fun and discovered lot of beauty. 

I learn by doing some documenting project like ProfStef, Pharocasts, COTD and writing some personal tools with Pharo.

 
I hope none of this comes across as negative; I think surely it's that I'm missing something.

That's not negative. It just shows that some work is still needed to lower the barrier for newcomers. 

Please help :)

Laurent.
 

Thanks,


Daniel Lyons



Reply | Threaded
Open this post in threaded view
|

Re: GUIs with Pharo / how to learn smalltalk

Ricardo Moran
In reply to this post by Daniel Lyons
I'm not even close to being a smalltalk wizard, so I can't really answer your questions. However, you should probably read "Pharo by example" (http://pharobyexample.org/). AFAIK it is one of the best books for newbies like me and it has a nice chapter about Morphic that should get you started.

Also, you should probably look at Polymorph as well: http://www.pharocasts.com/search/label/gui.

Cheers,
Richo

On Fri, Mar 25, 2011 at 2:48 AM, Daniel Lyons <[hidden email]> wrote:
Hi,

I have two questions, a technical one and a more general one.

In broad strokes, what are people doing for GUIs? My guess would be using Morphic, but googling around you find more abuse than use, it looks like, and very little live links to up-to-date documentation. It makes me wonder: is there something other than Morphic which is being used? Or is everyone doing web apps? Or is there some other GUI toolkit I haven't found yet, and that's where all the action is? Whenever I see a neat Morphic window or something, I feel a bit like there's a party going on somewhere and I didn't get an invitation. Like the first rule of Morphic club is you don't talk about Morphic club.

The general question I have is basically, am I the problem? Is it that the documentation isn't where I expect to find it, or in the form I'm used to seeing, or that it isn't relevant somehow in the Smalltalk universe? Or is it all really intuitive except for me? :) I could accept that, I suppose, but how did you Smalltalk wizards become wizards? Did you just dive in and start reading the code in your own image? Was there some master Smalltalk wizard that you knew who showed you how to do these things? I'm currently reading Smalltalk Best Practice Patterns and it's one of the best programming books I've ever read. I see that there is a great deal of mastery of programming going around in Smalltalk circles, but I don't see the books that take you past beginner towards master, other than SBPP. So what's the trick going on here? How did you guys become excellent?

I hope none of this comes across as negative; I think surely it's that I'm missing something.

Thanks,


Daniel Lyons



Reply | Threaded
Open this post in threaded view
|

Re: GUIs with Pharo / how to learn smalltalk

Stéphane Ducasse
In reply to this post by Daniel Lyons
Hi Daniel

> I have two questions, a technical one and a more general one.
>
> In broad strokes, what are people doing for GUIs? My guess would be using Morphic, but googling around you find more abuse than use, it looks like, and very little live links to up-to-date documentation. It makes me wonder: is there something other than Morphic which is being used? Or is everyone doing web apps? Or is there some other GUI toolkit I haven't found yet, and that's where all the action is? Whenever I see a neat Morphic window or something, I feel a bit like there's a party going on somewhere and I didn't get an invitation. Like the first rule of Morphic club is you don't talk about Morphic club.

Not really truth. :) Now we are cleaning the system and trying to make sure that we understand it.
However it does not prevent you to learn. Look at Benjamin: (a smart second year students), he built Finder and now he is building
Nautilus. Start by looking at some examples and ask for feedback. People will help you.
Now this is clear that the documentation is not at the level it should be.

> The general question I have is basically, am I the problem?

No

> Is it that the documentation isn't where I expect to find it, or in the form I'm used to seeing, or that it isn't relevant somehow in the Smalltalk universe?

If you can VisualWorks there is a lot of documentation.
Now they have engineers too.

> Or is it all really intuitive except for me? :)

No I'm often puzzled too. The point is that I learn everyday more about the system and when I do not like the way it is done
I try to fix it. My main goal is to learn every day. Sometimes this is frustrating but in general it works.

> I could accept that, I suppose, but how did you Smalltalk wizards become wizards?

I do not know. But probably starting to read
        - mailing-list
        - read the code
        - break it by putting the wrong self halt at the wrong place
The cool aspect of Pharo is that it is really improving day after day.
And that when there is something ugly you can be sure that one of these days we will fix it. Now we should go step by step.


> Did you just dive in and start reading the code in your own image?

Yes.
When I started been an harvester for Squeak, here is what I did.
        read the bug report (there was none so it was easy)
        read the submitted code and if I do not understand pass to the next one
        until I find something that I can understand
I still do that everyday. My goal is to have read a lot of the code.
       
> Was there some master Smalltalk wizard that you knew who showed you how to do these things?

I learned smalltalk alone.
Now if you can pair program with somebody this is much cooler.
You have pharoCasts, have a look at them.

> I'm currently reading Smalltalk Best Practice Patterns
Excellent book

> and it's one of the best programming books I've ever read. I see that there is a great deal of mastery of programming going around in Smalltalk circles, but I don't see the books that take you past beginner towards master,

You have smalltalk by example (even if it is for VW I like it). It is more about design than Pharo by example and I would like to have one like that in the future but too busy right now.

> other than SBPP. So what's the trick going on here? How did you guys become excellent?
>
> I hope none of this comes across as negative;

Not at all. We know our problems

> I think surely it's that I'm missing something.
>
> Thanks,
>
> —
> Daniel Lyons
>
>


Reply | Threaded
Open this post in threaded view
|

Re: GUIs with Pharo / how to learn smalltalk

Benjamin Van Ryseghem (Pharo)
About the "How to learn Morphic ?" point, there is a cool PharoCast that shows basis http://www.pharocasts.com/2011/02/pharo-gui-with-polymorph.html.

About my own experience, I have learnt a bit by myself (RecentMessageList, Finder) and then I have pair programmed with Alain during last ESUG and learnt a lot :)
There is some stuff you can't guess because they are strange and a bit disturbing (who said "layout" ? ^^), but then you can put some halt almost everywhere (let me give you an advice, first create a subclass, then put a halt ^^).

But as said there is a lack of documentation, and I think than more pharocast could be a good way to change this. And since we are cleaning the system, I guess Morphic will come more and more understandable (I hope) ;)


I wish you good luck and I you have question do no hesitate :)



Ben



On Mar 25, 2011, at 9:06 AM, Stéphane Ducasse wrote:

Hi Daniel

I have two questions, a technical one and a more general one.

In broad strokes, what are people doing for GUIs? My guess would be using Morphic, but googling around you find more abuse than use, it looks like, and very little live links to up-to-date documentation. It makes me wonder: is there something other than Morphic which is being used? Or is everyone doing web apps? Or is there some other GUI toolkit I haven't found yet, and that's where all the action is? Whenever I see a neat Morphic window or something, I feel a bit like there's a party going on somewhere and I didn't get an invitation. Like the first rule of Morphic club is you don't talk about Morphic club.

Not really truth. :) Now we are cleaning the system and trying to make sure that we understand it.
However it does not prevent you to learn. Look at Benjamin: (a smart second year students), he built Finder and now he is building
Nautilus. Start by looking at some examples and ask for feedback. People will help you.
Now this is clear that the documentation is not at the level it should be.

The general question I have is basically, am I the problem?

No

Is it that the documentation isn't where I expect to find it, or in the form I'm used to seeing, or that it isn't relevant somehow in the Smalltalk universe?

If you can VisualWorks there is a lot of documentation.
Now they have engineers too.

Or is it all really intuitive except for me? :)

No I'm often puzzled too. The point is that I learn everyday more about the system and when I do not like the way it is done
I try to fix it. My main goal is to learn every day. Sometimes this is frustrating but in general it works.

I could accept that, I suppose, but how did you Smalltalk wizards become wizards?

I do not know. But probably starting to read
- mailing-list
- read the code
- break it by putting the wrong self halt at the wrong place
The cool aspect of Pharo is that it is really improving day after day.
And that when there is something ugly you can be sure that one of these days we will fix it. Now we should go step by step.


Did you just dive in and start reading the code in your own image?

Yes.
When I started been an harvester for Squeak, here is what I did.
read the bug report (there was none so it was easy)
read the submitted code and if I do not understand pass to the next one
until I find something that I can understand
I still do that everyday. My goal is to have read a lot of the code.

Was there some master Smalltalk wizard that you knew who showed you how to do these things?

I learned smalltalk alone.
Now if you can pair program with somebody this is much cooler.
You have pharoCasts, have a look at them.

I'm currently reading Smalltalk Best Practice Patterns
Excellent book

and it's one of the best programming books I've ever read. I see that there is a great deal of mastery of programming going around in Smalltalk circles, but I don't see the books that take you past beginner towards master,

You have smalltalk by example (even if it is for VW I like it). It is more about design than Pharo by example and I would like to have one like that in the future but too busy right now.

other than SBPP. So what's the trick going on here? How did you guys become excellent?

I hope none of this comes across as negative;

Not at all. We know our problems

I think surely it's that I'm missing something.

Thanks,


Daniel Lyons





Reply | Threaded
Open this post in threaded view
|

Re: GUIs with Pharo / how to learn smalltalk

Mariano Martinez Peck
About Morphic, I have a couple of links but probably are outdated:


http://www.google.ch/url?sa=t&source=web&cd=4&ved=0CDEQFjAD&url=http%3A%2F%2Fstephane.ducasse.free.fr%2FFreeBooks%2FCollectiveNBlueBook%2Fmorphic.final.pdf&rct=j&q=morphic%20user%20interface&ei=QOGZTJafJImnON-LwewM&usg=AFQjCNGZCbShjz04JCkZwi6p5qcgSCD3gg&sig2=qpM75WlSGoQb-j4GYWv94w

http://wiki.squeak.org/squeak/30

http://portal.acm.org/citation.cfm?id=215636

http://static.squeak.org/tutorials/morphic-tutorial-1.html


   http://stephane.ducasse.free.fr/FreeBooks/CollectiveNBlueBook/morphic.final.pdf

http://wiki.squeak.org/squeak/1820   (Morph)

http://wiki.squeak.org/squeak/1285 (Morphic Architecture)


 http://www.elwedgo.de/fileadmin/events_in_smalltalk.pdf

On Fri, Mar 25, 2011 at 10:19 AM, Benjamin <[hidden email]> wrote:
About the "How to learn Morphic ?" point, there is a cool PharoCast that shows basis http://www.pharocasts.com/2011/02/pharo-gui-with-polymorph.html.

About my own experience, I have learnt a bit by myself (RecentMessageList, Finder) and then I have pair programmed with Alain during last ESUG and learnt a lot :)
There is some stuff you can't guess because they are strange and a bit disturbing (who said "layout" ? ^^), but then you can put some halt almost everywhere (let me give you an advice, first create a subclass, then put a halt ^^).

But as said there is a lack of documentation, and I think than more pharocast could be a good way to change this. And since we are cleaning the system, I guess Morphic will come more and more understandable (I hope) ;)


I wish you good luck and I you have question do no hesitate :)



Ben



On Mar 25, 2011, at 9:06 AM, Stéphane Ducasse wrote:

Hi Daniel

I have two questions, a technical one and a more general one.

In broad strokes, what are people doing for GUIs? My guess would be using Morphic, but googling around you find more abuse than use, it looks like, and very little live links to up-to-date documentation. It makes me wonder: is there something other than Morphic which is being used? Or is everyone doing web apps? Or is there some other GUI toolkit I haven't found yet, and that's where all the action is? Whenever I see a neat Morphic window or something, I feel a bit like there's a party going on somewhere and I didn't get an invitation. Like the first rule of Morphic club is you don't talk about Morphic club.

Not really truth. :) Now we are cleaning the system and trying to make sure that we understand it.
However it does not prevent you to learn. Look at Benjamin: (a smart second year students), he built Finder and now he is building
Nautilus. Start by looking at some examples and ask for feedback. People will help you.
Now this is clear that the documentation is not at the level it should be.

The general question I have is basically, am I the problem?

No

Is it that the documentation isn't where I expect to find it, or in the form I'm used to seeing, or that it isn't relevant somehow in the Smalltalk universe?

If you can VisualWorks there is a lot of documentation.
Now they have engineers too.

Or is it all really intuitive except for me? :)

No I'm often puzzled too. The point is that I learn everyday more about the system and when I do not like the way it is done
I try to fix it. My main goal is to learn every day. Sometimes this is frustrating but in general it works.

I could accept that, I suppose, but how did you Smalltalk wizards become wizards?

I do not know. But probably starting to read
- mailing-list
- read the code
- break it by putting the wrong self halt at the wrong place
The cool aspect of Pharo is that it is really improving day after day.
And that when there is something ugly you can be sure that one of these days we will fix it. Now we should go step by step.


Did you just dive in and start reading the code in your own image?

Yes.
When I started been an harvester for Squeak, here is what I did.
read the bug report (there was none so it was easy)
read the submitted code and if I do not understand pass to the next one
until I find something that I can understand
I still do that everyday. My goal is to have read a lot of the code.

Was there some master Smalltalk wizard that you knew who showed you how to do these things?

I learned smalltalk alone.
Now if you can pair program with somebody this is much cooler.
You have pharoCasts, have a look at them.

I'm currently reading Smalltalk Best Practice Patterns
Excellent book

and it's one of the best programming books I've ever read. I see that there is a great deal of mastery of programming going around in Smalltalk circles, but I don't see the books that take you past beginner towards master,

You have smalltalk by example (even if it is for VW I like it). It is more about design than Pharo by example and I would like to have one like that in the future but too busy right now.

other than SBPP. So what's the trick going on here? How did you guys become excellent?

I hope none of this comes across as negative;

Not at all. We know our problems

I think surely it's that I'm missing something.

Thanks,


Daniel Lyons






Reply | Threaded
Open this post in threaded view
|

Re: GUIs with Pharo / how to learn smalltalk

Igor Stasenko
In reply to this post by Daniel Lyons
On 25 March 2011 06:48, Daniel Lyons <[hidden email]> wrote:
> Hi,
>
> I have two questions, a technical one and a more general one.
>
> In broad strokes, what are people doing for GUIs? My guess would be using Morphic, but googling around you find more abuse than use, it looks like, and very little live links to up-to-date documentation. It makes me wonder: is there something other than Morphic which is being used? Or is everyone doing web apps? Or is there some other GUI toolkit I haven't found yet, and that's where all the action is? Whenever I see a neat Morphic window or something, I feel a bit like there's a party going on somewhere and I didn't get an invitation. Like the first rule of Morphic club is you don't talk about Morphic club.
>
> The general question I have is basically, am I the problem? Is it that the documentation isn't where I expect to find it, or in the form I'm used to seeing, or that it isn't relevant somehow in the Smalltalk universe? Or is it all really intuitive except for me? :) I could accept that, I suppose, but how did you Smalltalk wizards become wizards? Did you just dive in and start reading the code in your own image?

in most cases. And reading mailing lists , asking questions ..

>Was there some master Smalltalk wizard that you knew who showed you how to do these things?

Just ask questions, read answers. It works here. :)
Our community is quite inviting to newcomers and we help each other.
That's what i discovered when i first came to squeak community (Pharo
was not formed at those days).

>I'm currently reading Smalltalk Best Practice Patterns and it's one of the best programming books I've ever read. I see that there is a great deal of mastery of programming going around in Smalltalk circles, but I don't see the books that take you past beginner towards master, other than SBPP. So what's the trick going on here? How did you guys become excellent?
>

By reading code and writing code, exchanging ideas and communicating :)

> I hope none of this comes across as negative; I think surely it's that I'm missing something.
>
> Thanks,
>
> —
> Daniel Lyons
>
>

--
Best regards,
Igor Stasenko AKA sig.

Reply | Threaded
Open this post in threaded view
|

Re: GUIs with Pharo / how to learn smalltalk

Göran Krampe
In reply to this post by Daniel Lyons
On 03/25/2011 06:48 AM, Daniel Lyons wrote:
> Hi,
>
> I have two questions, a technical one and a more general one.
>
> In broad strokes, what are people doing for GUIs?

Basically:

- For tools inside Pharo/Squeak, for research and for hobby projects
etc, we use Morphic. If you want it running inside Pharo there is only
Morphic (discounting MVC).

- For getting paid we probably use Seaside, web stuff.

In *broad strokes*.

> The general question I have is basically, am I the problem?

Basically yes :). No, just kidding. But this is open source and we
typically like hacking more than spewing out documentation :). But
*there is* docs, as others have pointed out.

But as others also have pointed out - Smalltalk code is great for
reading and *running*. Learn to use the tools for:

- Code navigation. alt-shift-N, alt-n, alt-m are especially your friends.
- Debugging. And halos are good to rip something apart that you wounder
how the hell it is built. :)
- Running and *reading* unit tests.

Also, the best way to build a Morphic UI, especially if you want to
build say a tool - is to copy code from a tool that seems similar and
learn from there. But if you do that, try to verify that the code you
are copying is reasonable *new* code so that you don't learn how to
build stuff 10 years ago. ;)

When I built the Squeakmap Package Loader I copied from the
SystemBrowser I think. ;)

> I hope none of this comes across as negative; I think surely it's that I'm missing something.

Nah, not really. We don't typically have great docs, but we do have very
good tools and the code is often very readable and easy to copy and
adjust etc.

regards, Göran

Reply | Threaded
Open this post in threaded view
|

Re: GUIs with Pharo / how to learn smalltalk

Schwab,Wilhelm K
Re learning about the GUI, look for Polymorph examples, the ProfessorStef browser, etc.  The GUI section of the CollaborActive Book looks good too, as are the screen casts.




________________________________________
From: [hidden email] [[hidden email]] On Behalf Of Göran Krampe [[hidden email]]
Sent: Friday, March 25, 2011 8:12 AM
To: [hidden email]
Subject: Re: [Pharo-project] GUIs with Pharo / how to learn smalltalk

On 03/25/2011 06:48 AM, Daniel Lyons wrote:
> Hi,
>
> I have two questions, a technical one and a more general one.
>
> In broad strokes, what are people doing for GUIs?

Basically:

- For tools inside Pharo/Squeak, for research and for hobby projects
etc, we use Morphic. If you want it running inside Pharo there is only
Morphic (discounting MVC).

- For getting paid we probably use Seaside, web stuff.

In *broad strokes*.

> The general question I have is basically, am I the problem?

Basically yes :). No, just kidding. But this is open source and we
typically like hacking more than spewing out documentation :). But
*there is* docs, as others have pointed out.

But as others also have pointed out - Smalltalk code is great for
reading and *running*. Learn to use the tools for:

- Code navigation. alt-shift-N, alt-n, alt-m are especially your friends.
- Debugging. And halos are good to rip something apart that you wounder
how the hell it is built. :)
- Running and *reading* unit tests.

Also, the best way to build a Morphic UI, especially if you want to
build say a tool - is to copy code from a tool that seems similar and
learn from there. But if you do that, try to verify that the code you
are copying is reasonable *new* code so that you don't learn how to
build stuff 10 years ago. ;)

When I built the Squeakmap Package Loader I copied from the
SystemBrowser I think. ;)

> I hope none of this comes across as negative; I think surely it's that I'm missing something.

Nah, not really. We don't typically have great docs, but we do have very
good tools and the code is often very readable and easy to copy and
adjust etc.

regards, Göran