How does a newbie get past the feeling thay he is trying to understand an elephant whilst looking through a keyhole?

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

How does a newbie get past the feeling thay he is trying to understand an elephant whilst looking through a keyhole?

Stephen Davies-3
Hi,

I'm trying to get familiar with Squeak.  I used Smalltalk/V way back,
have and read and understand the Smalltalk 80 book, so it's not
completely new to me....

But Squeak is so much bigger.  I'm really struggling to get an overall
sense of the beast - I can't see the wood for the trees and for me, at
least, the environment seems to contribute to that because of the
method-by-method interface to the code seems to make it harder to get
the big picture.  Methods are presented in alphabetical order, without
much clue as to how they relate.  Similarly for classes.

Are there any pointers/suggestions?  I feel like I'm missing some tool
I don't know about.  It's great that you can see everything, but
understanding for me would be aided with some sort of "gradual
revelation"; a way to replace all the details of a class or bunch of
classes with conceptual documentation - showing in a screen or two the
overall story of that class's purpose and place in the system.  And a
way to dip under that to the implementation as needed.

Any comments or suggestions for me?

Thanks,
Steve Davies

Reply | Threaded
Open this post in threaded view
|

Re: How does a newbie get past the feeling thay he is trying to understand an elephant whilst looking through a keyhole?

Edgar J. De Cleene
Stephen Davies puso en su mail :

> Hi,
>
> I'm trying to get familiar with Squeak.  I used Smalltalk/V way back,
> have and read and understand the Smalltalk 80 book, so it's not
> completely new to me....
>
> But Squeak is so much bigger.  I'm really struggling to get an overall
> sense of the beast - I can't see the wood for the trees and for me, at
> least, the environment seems to contribute to that because of the
> method-by-method interface to the code seems to make it harder to get
> the big picture.  Methods are presented in alphabetical order, without
> much clue as to how they relate.  Similarly for classes.
>
> Are there any pointers/suggestions?  I feel like I'm missing some tool
> I don't know about.  It's great that you can see everything, but
> understanding for me would be aided with some sort of "gradual
> revelation"; a way to replace all the details of a class or bunch of
> classes with conceptual documentation - showing in a screen or two the
> overall story of that class's purpose and place in the system.  And a
> way to dip under that to the implementation as needed.
>
> Any comments or suggestions for me?
>
> Thanks,
> Steve Davies
I have  one.
Decide a first project for learn "The Squeak Way".
Try what that project was as fun and crazy one as you could, a game maybe.
Load IRC and connect to Squeak channel and start to fire questions.
And if size of Squeak raise havoc, I get SqueakLight in several flavours,
including one with IRC ready to run.

Edgar



__________________________________________________
Correo Yahoo!
Espacio para todos tus mensajes, antivirus y antispam ¡gratis!
¡Abrí tu cuenta ya! - http://correo.yahoo.com.ar

Reply | Threaded
Open this post in threaded view
|

Re: How does a newbie get past the feeling thay he is trying to understand an elephant whilst looking through a keyhole?

stéphane ducasse-2
In reply to this post by Stephen Davies-3
you can have a look at the videos:
        http://www.iam.unibe.ch/~ducasse/Resources.html

If you have ideas of things that you would like to know that you do not
know yet :), please tell me I want to produce new videos.

Stef

On 29 avr. 06, at 13:55, Stephen Davies wrote:

> Hi,
>
> I'm trying to get familiar with Squeak.  I used Smalltalk/V way back,
> have and read and understand the Smalltalk 80 book, so it's not
> completely new to me....
>
> But Squeak is so much bigger.  I'm really struggling to get an overall
> sense of the beast - I can't see the wood for the trees and for me, at
> least, the environment seems to contribute to that because of the
> method-by-method interface to the code seems to make it harder to get
> the big picture.  Methods are presented in alphabetical order, without
> much clue as to how they relate.  Similarly for classes.
>
> Are there any pointers/suggestions?  I feel like I'm missing some tool
> I don't know about.  It's great that you can see everything, but
> understanding for me would be aided with some sort of "gradual
> revelation"; a way to replace all the details of a class or bunch of
> classes with conceptual documentation - showing in a screen or two the
> overall story of that class's purpose and place in the system.  And a
> way to dip under that to the implementation as needed.
>
> Any comments or suggestions for me?
>
> Thanks,
> Steve Davies
>
>


Reply | Threaded
Open this post in threaded view
|

Re: How does a newbie get past the feeling thay he is trying to understand an elephant whilst looking through a keyhole?

Trygve
In reply to this post by Edgar J. De Cleene
IRC??? >:-o The best way to make people shut up is to throw TLAs at them.
(Don't you know any TLAs? Get off the line.)

I googled and found:
"There is an IRC (Internet Relay Chat) channel devoted to Squeak. Its name
is #squeak (naturally!), and it's on irc.freenode.net (note their FAQ about
IRC ... :-)

Seriously, I believe Stephen hits a sore point. I've been programming
Smalltalk since 1978, and most code is still unreadable. I try to pick up
programs I wrote ten years ago, and what do I find? A bunch of spaghetti
nicely chopped into noodles. I load some package that sounds interesting,
and get what Stephen describes so well. :'(

The most revolutionary part of Smalltalk is, IMO, the Stored Program Object
Computer. Seen in this light, its current programming language is a
language for microcode because it defines new operations on the objects,
just as regular microcode defines new operations on the binary words.

We need one or more languages that lets uts describe higher level
constructs where a program = Data + Communication + Algorithm. I have
written an exploratory example in Java that is based on strongly
encapsulated components. It seems to help readability, but at the cost of a
very bureaucratic object strucure.

What does the FORTRAN of OO look like?

Cheers
--Trygve



At 15:25 29.04.2006, you wrote:

>Stephen Davies puso en su mail :
>
> > Hi,
> >
> > I'm trying to get familiar with Squeak.  I used Smalltalk/V way back,
> > have and read and understand the Smalltalk 80 book, so it's not
> > completely new to me....
> >
> > But Squeak is so much bigger.  I'm really struggling to get an overall
> > sense of the beast - I can't see the wood for the trees and for me, at
> > least, the environment seems to contribute to that because of the
> > method-by-method interface to the code seems to make it harder to get
> > the big picture.  Methods are presented in alphabetical order, without
> > much clue as to how they relate.  Similarly for classes.
> >
> > Are there any pointers/suggestions?  I feel like I'm missing some tool
> > I don't know about.  It's great that you can see everything, but
> > understanding for me would be aided with some sort of "gradual
> > revelation"; a way to replace all the details of a class or bunch of
> > classes with conceptual documentation - showing in a screen or two the
> > overall story of that class's purpose and place in the system.  And a
> > way to dip under that to the implementation as needed.
> >
> > Any comments or suggestions for me?
> >
> > Thanks,
> > Steve Davies
>I have  one.
>Decide a first project for learn "The Squeak Way".
>Try what that project was as fun and crazy one as you could, a game maybe.
>Load IRC and connect to Squeak channel and start to fire questions.
>And if size of Squeak raise havoc, I get SqueakLight in several flavours,
>including one with IRC ready to run.
>
>Edgar
>
>
>
>__________________________________________________
>Correo Yahoo!
>Espacio para todos tus mensajes, antivirus y antispam ¡gratis!
>¡Abrí tu cuenta ya! - http://correo.yahoo.com.ar


--

Trygve Reenskaug      mailto: [hidden email]
Morgedalsvn. 5A       http://heim.ifi.uio.no/~trygver
N-0378 Oslo           Tel: (+47) 22 49 57 27
Norway



Reply | Threaded
Open this post in threaded view
|

Re: How does a newbie get past the feeling thay he is trying to understand an elephant whilst looking through a keyhole?

Stephan Rudlof
On 29.04.2006 17:12, Trygve Reenskaug wrote:
>...

> The most revolutionary part of Smalltalk is, IMO, the Stored Program Object
> Computer. Seen in this light, its current programming language is a
> language for microcode because it defines new operations on the objects,
> just as regular microcode defines new operations on the binary words.

Interesting POV!

>
> We need one or more languages that lets uts describe higher level
> constructs where a program = Data + Communication + Algorithm. I have
> written an exploratory example in Java that is based on strongly
> encapsulated components. It seems to help readability, but at the cost of a
> very bureaucratic object strucure.
>

> What does the FORTRAN of OO look like?

Good question.

To go into this direction evolutionarily Squeak could have
1. namespaces;
2. multiple inheritance of code (e.g. Traits) - related to the former
point! -;
3. rigid conventions or tools or language extensions (not meant as xor)
for answering the questions - 'outside' more or less fine granular being
another class or package or ? -:
3.a) what is the 'official' interface, which *can/should* be used from
outside,
3.b) which part of above interface *has* been used from the outside;
4. BlockClosures.

Currently I have no opinion about package oriented code extensions
(class boxes), since this could lead to difficult to grasp code
variations being valid all together... (related to 1., 2., 3.).


Regards,
Stephan

>
> Cheers
> --Trygve
>...
--
Stephan Rudlof ([hidden email])
   "Genius doesn't work on an assembly line basis.
    You can't simply say, 'Today I will be brilliant.'"
    -- Kirk, "The Ultimate Computer", stardate 4731.3

Reply | Threaded
Open this post in threaded view
|

Re: How does a newbie get past the feeling thay he is trying to understand an elephant whilst looking through a keyhole?

Laurence Rozier
In reply to this post by Stephen Davies-3
Hi,

If you open the Objects tool from the World menu, you get some categories which cut across packages, classes and methods . These categories are not optimal or exhaustive, but they can help one zoom in on some wood. From Object tools,select a category of interest(Graphics is a good choice), drag out an object and bring up a halo and browse the class. Yes, you're back in the browser but at least with a little context. If you do this with a few objects in the category you'll notice similarites and differences. Now the Object Explorer can help - there's nothing like working with wood! One easy thing you can do to increase bandwidth while browsing is to open the World menu and select Appearances/Preferences then browsing. Select opeionalButtons. Now when you open a new browser, you'll get a row of buttons which get you more wood. Mouse over the inheritance button and pay attention to it's color. Hopefully all this helps some.

There is a deeper issue here which Americo has touched upon on the Croquet list and I'd be very interested in your take on his tutorials at: http://www.dmu.com/crb/

Other help is on the way.

Regards,

Laurence

On 4/29/06, Stephen Davies <[hidden email]> wrote:
Hi,

I'm trying to get familiar with Squeak.  I used Smalltalk/V way back,
have and read and understand the Smalltalk 80 book, so it's not
completely new to me....

But Squeak is so much bigger.  I'm really struggling to get an overall
sense of the beast - I can't see the wood for the trees and for me, at
least, the environment seems to contribute to that because of the
method-by-method interface to the code seems to make it harder to get
the big picture.  Methods are presented in alphabetical order, without
much clue as to how they relate.  Similarly for classes.

Are there any pointers/suggestions?  I feel like I'm missing some tool
I don't know about.  It's great that you can see everything, but
understanding for me would be aided with some sort of "gradual
revelation"; a way to replace all the details of a class or bunch of
classes with conceptual documentation - showing in a screen or two the
overall story of that class's purpose and place in the system.  And a
way to dip under that to the implementation as needed.

Any comments or suggestions for me?

Thanks,
Steve Davies




Reply | Threaded
Open this post in threaded view
|

Re: How does a newbie get past the feeling thay he is trying to understand an elephant whilst looking through a keyhole?

Stephen Davies-3
Thanks for all the various responses.  Don't worry, I know what IRC is...

Stef - I didn't know about your videos, which are great - I watched
all of them I think, and definitely learned some things in the
process.  Also came across and downloaded the Squeak CD which has some
books that I will read - "Smalltalk with Style" caught my eye for one.

Laurence - thanks for your practical suggestions, I will look at
Americo's tutorials too.

And Edgar - yes, a specific goal will definitely add needed focus.  I
have an idea for a project, so lets see.

I was thinking a bit more as to why I feel at sea.  In the traditional
scene of static programs - lets say I'm looking at program.tcl, or
program.mod, program.pas, program.rb etc etc - In a language that I'm
not familiar with.  I know what the program is supposed to do,
Comments in the code or my common sense and general experience of
programming will give me a framework in which I can see what's going
on.  The "domain space" is smaller, and the "solution space" is maybe
a few thousand lines of source code.

Regards,
Steve

Reply | Threaded
Open this post in threaded view
|

Re: How does a newbie get past the feeling thay he is trying to understand an elephant whilst looking through a keyhole?

Klaus D. Witzel
Hi Steve,

on Sun, 30 Apr 2006 17:53:06 +0200, you wrote:

> ...
> I was thinking a bit more as to why I feel at sea.  In the traditional
> scene of static programs - lets say I'm looking at program.tcl, or
> program.mod, program.pas, program.rb etc etc - In a language that I'm
> not familiar with.  I know what the program is supposed to do,
> Comments in the code or my common sense and general experience of
> programming will give me a framework in which I can see what's going
> on.  The "domain space" is smaller, and the "solution space" is maybe
> a few thousand lines of source code.
>

Just out of curiosity: if you fileOut the code of a Squeak class and  
view/edit that file in your favorite text editor ("string" editor), would  
you feel less "at sea"?

/Klaus


Reply | Threaded
Open this post in threaded view
|

Re: How does a newbie get past the feeling thay he is trying to understand an elephant whilst looking through a keyhole?

Ralph Johnson
Most Smalltalk classes build on a lot of other Smalltalk classes. So, they are hard to understand until you know the classes that they use.
 
In fact, you can't print out Object and completely understand it, because it has methods like "inspect" that call a lot of other classes.  It is possible to build the image up from a small base, but it is not done one class at a time.  Each layer is partly new classes and partly adding methods to existing classes.  This is a good thing, not a bad thing, but it makes it harder to learn Smalltalk.
 
When an expert teaches Smalltalk, it is like getting a guided tour of a city.  We show just the part of Smalltalk that a beginner is able to understand, and avoid the parts that are confusing until they have the background.  You don't get that by looking at the image.  For example, I tell people to ignore the GUI, the compiler, and all the tools at first.  Just focus on Collection classes and numbers.  We spend several weeks with just the core classes before we move on to other things.  The GUI is way more cool, but I think students learn better if you ignore it at first.
 
Unfortunately, one of the disadvantages of Smalltalk over Java is that it is harder to learn on your own.  It is not hard to learn with a guide, but newcomers don't know what to look at and what to ignore.  It would help to have a beginners browser that hid most of the classes that beginners want to ignore anyway.
 
-Ralph Johnson


Reply | Threaded
Open this post in threaded view
|

Re: How does a newbie get past the feeling thay he is trying to understand an elephant whilst looking through a keyhole?

Roel Wuyts
In reply to this post by Stephen Davies-3
Hello,

As other people mentioned, getting started with Smalltalk is the  
toughest part (unlike most scripting languages like php, where it is  
the opposite -- try to get some real work done after an initial  
period of wonder and everything-goes).

What might help is:
1) (as was already mentions) : try to fix a goal. What do you want to  
learn about first ? Morphic (then build a kind of GUI application),  
network library (write a newsfeed client), ...

2) you might want to use tools like eCompletion or RoelTyper to  
figure out some dependencies between classes.

3) you might want to use the StarBrowser so that you can keep some of  
the classes that interest you in classifications. For me this helps  
sometimes to build my own structure for understanding code.


Note that all of these approaches are bottom-up. I second the need  
for top-down information. What I planned to do some years back was to  
launch the StarBrowser with some beginner classifications that for  
example contain some of the most used collections, some Morphic  
classes, etc.

On 29 Apr 2006, at 13:55, Stephen Davies wrote:

> Hi,
>
> I'm trying to get familiar with Squeak.  I used Smalltalk/V way back,
> have and read and understand the Smalltalk 80 book, so it's not
> completely new to me....
>
> But Squeak is so much bigger.  I'm really struggling to get an overall
> sense of the beast - I can't see the wood for the trees and for me, at
> least, the environment seems to contribute to that because of the
> method-by-method interface to the code seems to make it harder to get
> the big picture.  Methods are presented in alphabetical order, without
> much clue as to how they relate.  Similarly for classes.
>
> Are there any pointers/suggestions?  I feel like I'm missing some tool
> I don't know about.  It's great that you can see everything, but
> understanding for me would be aided with some sort of "gradual
> revelation"; a way to replace all the details of a class or bunch of
> classes with conceptual documentation - showing in a screen or two the
> overall story of that class's purpose and place in the system.  And a
> way to dip under that to the implementation as needed.
>
> Any comments or suggestions for me?
>
> Thanks,
> Steve Davies
>


Reply | Threaded
Open this post in threaded view
|

Re: How does a newbie get past the feeling thay he is trying to understand an elephant whilst looking through a keyhole?

Roel Wuyts
In reply to this post by Ralph Johnson
Indeed; this is one of the things I wanted to add to the  
StarBrowser,but never found the time to do. But it coiuld be worth it...

I would add:
1- classification: 'Basic Collections' : Set, Array, String,  
OrderedCollection, SortedCollection (and maybe Stream)
2- classification: 'Basic Enumeration methods' : #do:, #collect:,  
#select:, #detect:ifNone:
3- classification: 'Boolean' : True, False
4- classification: 'Loops and conditions' :  #ifTrue:, ifFalse:,  
ifTrue:ifFalse, ifFalse:ifTrue, #while:do:, ... (some more)
5- classification: 'Interesting objects' : Smalltalk, ??

More suggestions ?

All of these methods/classes should have a comment with some very  
simple examples (I guess quite a lot of these already do).

On 30 Apr 2006, at 22:11, Ralph Johnson wrote:

> Most Smalltalk classes build on a lot of other Smalltalk classes.  
> So, they are hard to understand until you know the classes that  
> they use.
>
> In fact, you can't print out Object and completely understand it,  
> because it has methods like "inspect" that call a lot of other  
> classes.  It is possible to build the image up from a small base,  
> but it is not done one class at a time.  Each layer is partly new  
> classes and partly adding methods to existing classes.  This is a  
> good thing, not a bad thing, but it makes it harder to learn  
> Smalltalk.
>
> When an expert teaches Smalltalk, it is like getting a guided tour  
> of a city.  We show just the part of Smalltalk that a beginner is  
> able to understand, and avoid the parts that are confusing until  
> they have the background.  You don't get that by looking at the  
> image.  For example, I tell people to ignore the GUI, the compiler,  
> and all the tools at first.  Just focus on Collection classes and  
> numbers.  We spend several weeks with just the core classes before  
> we move on to other things.  The GUI is way more cool, but I think  
> students learn better if you ignore it at first.
>
> Unfortunately, one of the disadvantages of Smalltalk over Java is  
> that it is harder to learn on your own.  It is not hard to learn  
> with a guide, but newcomers don't know what to look at and what to  
> ignore.  It would help to have a beginners browser that hid most of  
> the classes that beginners want to ignore anyway.
>
> -Ralph Johnson
>


Reply | Threaded
Open this post in threaded view
|

Re: How does a newbie get past the feeling thay he is trying to understand an elephant whilst looking through a keyhole?

stéphane ducasse-2
In reply to this post by Roel Wuyts
now that videos are easy to do, we should produce a massive amount of  
"code with me that application"
movie.

Stef


On 1 mai 06, at 09:03, Roel Wuyts wrote:

> Hello,
>
> As other people mentioned, getting started with Smalltalk is the  
> toughest part (unlike most scripting languages like php, where it  
> is the opposite -- try to get some real work done after an initial  
> period of wonder and everything-goes).
>
> What might help is:
> 1) (as was already mentions) : try to fix a goal. What do you want  
> to learn about first ? Morphic (then build a kind of GUI  
> application), network library (write a newsfeed client), ...
>
> 2) you might want to use tools like eCompletion or RoelTyper to  
> figure out some dependencies between classes.
>
> 3) you might want to use the StarBrowser so that you can keep some  
> of the classes that interest you in classifications. For me this  
> helps sometimes to build my own structure for understanding code.
>
>
> Note that all of these approaches are bottom-up. I second the need  
> for top-down information. What I planned to do some years back was  
> to launch the StarBrowser with some beginner classifications that  
> for example contain some of the most used collections, some Morphic  
> classes, etc.
>
> On 29 Apr 2006, at 13:55, Stephen Davies wrote:
>
>> Hi,
>>
>> I'm trying to get familiar with Squeak.  I used Smalltalk/V way back,
>> have and read and understand the Smalltalk 80 book, so it's not
>> completely new to me....
>>
>> But Squeak is so much bigger.  I'm really struggling to get an  
>> overall
>> sense of the beast - I can't see the wood for the trees and for  
>> me, at
>> least, the environment seems to contribute to that because of the
>> method-by-method interface to the code seems to make it harder to get
>> the big picture.  Methods are presented in alphabetical order,  
>> without
>> much clue as to how they relate.  Similarly for classes.
>>
>> Are there any pointers/suggestions?  I feel like I'm missing some  
>> tool
>> I don't know about.  It's great that you can see everything, but
>> understanding for me would be aided with some sort of "gradual
>> revelation"; a way to replace all the details of a class or bunch of
>> classes with conceptual documentation - showing in a screen or two  
>> the
>> overall story of that class's purpose and place in the system.  And a
>> way to dip under that to the implementation as needed.
>>
>> Any comments or suggestions for me?
>>
>> Thanks,
>> Steve Davies
>>
>
>


Reply | Threaded
Open this post in threaded view
|

Re: How does a newbie get past the feeling thay he is trying to understand an elephant whilst looking through a keyhole?

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

> Hello,
>
> As other people mentioned, getting started with Smalltalk is the
> toughest part (unlike most scripting languages like php, where it is
> the opposite -- try to get some real work done after an initial
> period of wonder and everything-goes).
>
> What might help is:
> 1) (as was already mentions) : try to fix a goal. What do you want to
> learn about first ? Morphic (then build a kind of GUI application),
> network library (write a newsfeed client), ...
>
> 2) you might want to use tools like eCompletion or RoelTyper to
> figure out some dependencies between classes.
>
> 3) you might want to use the StarBrowser so that you can keep some of
> the classes that interest you in classifications. For me this helps
> sometimes to build my own structure for understanding code.
>
>
> Note that all of these approaches are bottom-up. I second the need
> for top-down information. What I planned to do some years back was to
> launch the StarBrowser with some beginner classifications that for
> example contain some of the most used collections, some Morphic
> classes, etc.

What Roels say reminds me to send again this:

http://www.4shared.com/file/833444/8e413b3e/MorphClassMaps.html

Courtesy of Morphic Team, here you could have a .zip with some of class
hierarchy in new Morphic clasification, I attach the small .jpg for you have
the idea of what is in .zip

This is the complete list, produced from Squeak with GraphViz module from
John Pierce

Morphic-Menus class hierarchy.jpg
Morphic-Menus class hierarchy.dot
Morphic-Pluggable Widgets class hierarchy.jpg
Morphic-Pluggable Widgets class hierarchy.dot
Morphic-Support class hierarchy.jpg
Morphic-Support class hierarchy.dot
Morphic-Text Support class hierarchy.jpg
Morphic-Text Support class hierarchy.dot
Morphic-Widgets class hierarchy.jpg
Morphic-Widgets class hierarchy.dot
Morphic-Windows class hierarchy.jpg
Morphic-Windows class hierarchy.dot
Movies class hierarchy.jpg
Movies class hierarchy.dot
Speech class hierarchy.jpg
Speech class hierarchy.dot
Nebraska class hierarchy.jpg
Nebraska class hierarchy.dot
BalloonMMFlash class hierarchy.jpg
BalloonMMFlash class hierarchy.dot


Possible uses is you could have a clear understanding of Morphic or amazing
friends with wall size versions of jpg and hard copy of NASA job search
about Squeak :=)

Enjoy




Morphic-Menus class hierarchy[1].jpg (38K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: How does a newbie get past the feeling thay he is trying to understand an elephant whilst looking through a keyhole?

Chris Muller
In reply to this post by Roel Wuyts
I would like to add the Tracing Messages Browser to this list.  This browser is great for browsing the flow of code that cuts across classes in various packages.  You end up with a single window showing the flow of execution instead of 57 windows.
 
 
----- Original Message ----
From: Roel Wuyts <[hidden email]>
To: The general-purpose Squeak developers list <[hidden email]>
Sent: Monday, May 1, 2006 2:05:09 AM
Subject: Re: How does a newbie get past the feeling thay he is trying to understand an elephant whilst looking through a keyhole?

Hello,

As other people mentioned, getting started with Smalltalk is the
toughest part (unlike most scripting languages like php, where it is
the opposite -- try to get some real work done after an initial
period of wonder and everything-goes).

What might help is:
1) (as was already mentions) : try to fix a goal. What do you want to
learn about first ? Morphic (then build a kind of GUI application),
network library (write a newsfeed client), ...

2) you might want to use tools like eCompletion or RoelTyper to
figure out some dependencies between classes.

3) you might want to use the StarBrowser so that you can keep some of
the classes that interest you in classifications. For me this helps
sometimes to build my own structure for understanding code.


Note that all of these approaches are bottom-up. I second the need
for top-down information. What I planned to do some years back was to
launch the StarBrowser with some beginner classifications that for
example contain some of the most used collections, some Morphic
classes, etc.

On 29 Apr 2006, at 13:55, Stephen Davies wrote:

> Hi,
>
> I'm trying to get familiar with Squeak.  I used Smalltalk/V way back,
> have and read and understand the Smalltalk 80 book, so it's not
> completely new to me....
>
> But Squeak is so much bigger.  I'm really struggling to get an overall
> sense of the beast - I can't see the wood for the trees and for me, at
> least, the environment seems to contribute to that because of the
> method-by-method interface to the code seems to make it harder to get
> the big picture.  Methods are presented in alphabetical order, without
> much clue as to how they relate.  Similarly for classes.
>
> Are there any pointers/suggestions?  I feel like I'm missing some tool
> I don't know about.  It's great that you can see everything, but
> understanding for me would be aided with some sort of "gradual
> revelation"; a way to replace all the details of a class or bunch of
> classes with conceptual documentation - showing in a screen or two the
> overall story of that class's purpose and place in the system.  And a
> way to dip under that to the implementation as needed.
>
> Any comments or suggestions for me?
>
> Thanks,
> Steve Davies
>







Reply | Threaded
Open this post in threaded view
|

Re: How does a newbie get past the feeling thay he is trying to understand an elephant whilst looking through a keyhole?

Ralph Johnson


On 5/1/06, Chris Muller <[hidden email]> wrote:
I would like to add the Tracing Messages Browser to this list. 
 

It can be hard for newbies to understand the value of a new tool.  Making movies of them (following Stephane's suggestion) can help a lot.
 
-Ralph


Reply | Threaded
Open this post in threaded view
|

Re: How does a newbie get past the feeling thay he is trying to understand an elephant whilst looking through a keyhole?

Stephen Davies-3
On 01/05/06, Ralph Johnson <[hidden email]> wrote:
>
> On 5/1/06, Chris Muller <[hidden email]> wrote:
> > I would like to add the Tracing Messages Browser to this list.
>
> It can be hard for newbies to understand the value of a new tool.  Making
> movies of them (following Stephane's suggestion) can help a lot.

So the frustrating thing for me - I loaded the Tracing Messages
Browser from Monitcello.  I can see the class(es) in the browser, I
have a pref for "traceMessages" in my preferences.

But I can't figure out how to get a Tracing Messages Browser open, or
what I'm supposed to see happen...

Steve

Reply | Threaded
Open this post in threaded view
|

Re: How does a newbie get past the feeling thay he is trying to understand an elephant whilst looking through a keyhole?

stéphane ducasse-2
In reply to this post by Chris Muller

On 1 mai 06, at 17:36, Chris Muller wrote:

> I would like to add the Tracing Messages Browser to this list.  
> This browser is great for browsing the flow of code that cuts  
> across classes in various packages.  You end up with a single  
> window showing the flow of execution instead of 57 windows.

Where is that browser?

Stef

>
>
> ----- Original Message ----
> From: Roel Wuyts <[hidden email]>
> To: The general-purpose Squeak developers list <squeak-
> [hidden email]>
> Sent: Monday, May 1, 2006 2:05:09 AM
> Subject: Re: How does a newbie get past the feeling thay he is  
> trying to understand an elephant whilst looking through a keyhole?
>
> Hello,
>
> As other people mentioned, getting started with Smalltalk is the
> toughest part (unlike most scripting languages like php, where it is
> the opposite -- try to get some real work done after an initial
> period of wonder and everything-goes).
>
> What might help is:
> 1) (as was already mentions) : try to fix a goal. What do you want to
> learn about first ? Morphic (then build a kind of GUI application),
> network library (write a newsfeed client), ...
>
> 2) you might want to use tools like eCompletion or RoelTyper to
> figure out some dependencies between classes.
>
> 3) you might want to use the StarBrowser so that you can keep some of
> the classes that interest you in classifications. For me this helps
> sometimes to build my own structure for understanding code.
>
>
> Note that all of these approaches are bottom-up. I second the need
> for top-down information. What I planned to do some years back was to
> launch the StarBrowser with some beginner classifications that for
> example contain some of the most used collections, some Morphic
> classes, etc.
>
> On 29 Apr 2006, at 13:55, Stephen Davies wrote:
>
>> Hi,
>>
>> I'm trying to get familiar with Squeak.  I used Smalltalk/V way back,
>> have and read and understand the Smalltalk 80 book, so it's not
>> completely new to me....
>>
>> But Squeak is so much bigger.  I'm really struggling to get an  
>> overall
>> sense of the beast - I can't see the wood for the trees and for  
>> me, at
>> least, the environment seems to contribute to that because of the
>> method-by-method interface to the code seems to make it harder to get
>> the big picture.  Methods are presented in alphabetical order,  
>> without
>> much clue as to how they relate.  Similarly for classes.
>>
>> Are there any pointers/suggestions?  I feel like I'm missing some  
>> tool
>> I don't know about.  It's great that you can see everything, but
>> understanding for me would be aided with some sort of "gradual
>> revelation"; a way to replace all the details of a class or bunch of
>> classes with conceptual documentation - showing in a screen or two  
>> the
>> overall story of that class's purpose and place in the system.  And a
>> way to dip under that to the implementation as needed.
>>
>> Any comments or suggestions for me?
>>
>> Thanks,
>> Steve Davies
>>
>
>
>
>
>
>
>


Reply | Threaded
Open this post in threaded view
|

Re: How does a newbie get past the feeling thay he is trying to understand an elephant whilst looking through a keyhole?

Chris Muller
In reply to this post by Stephen Davies-3
When you browse Squeak code, one of the browsers you will invariably use VERY frequently is a Methods browser.  This browser appears whenever you browse "senders" or "implementors" of a method, or references to a class or variable, among other things.  It is a two-paned browser, methods list in the upper-pane, code in the lower-pane.
 
 So just keep exploring code normally, the next time you use senders or implementors (something any Smalltalker does about 1000 times per day) you will see the Tracing Messages Browser.
 
 These browsers look the same initially, but by having the "traceMessages" preference set, they take on enhanced behavior as you "trace" method calls.  The SqueakMap entry describes it well:
 
 "I look like a standard methods browser with methods in the upper pane, code in the lower. As you browse senders and implementors, the upper pane is built into a "stack" rather than opening new method browsers, reducing window profileration. Implementors are indented below the currently selected method, senders are outdented above. You end up with a flow of the execution of methods across multiple classes all in one place.  The stack is quickly customized by easy-removal of unwanted methods. First, the upper pane is multi-select, and can handle rapid, sweeping gestures of the mouse without dropping selections (shift+clicking is also supported). Once methods are selected, you can quickly remove them (just from the browser) with otherwise unused Command+f."
 
 I think this browser has saved me years of closing windows.
 
 Please let me know if you have other questions.
 
 Cheers,
   Chris

----- Original Message ----
From: Stephen Davies <[hidden email]>
To: The general-purpose Squeak developers list <[hidden email]>
Sent: Monday, May 1, 2006 4:05:15 PM
Subject: Re: How does a newbie get past the feeling thay he is trying to understand an elephant whilst looking through a keyhole?

On 01/05/06, Ralph Johnson <[hidden email]> wrote:
>
> On 5/1/06, Chris Muller <[hidden email]> wrote:
> > I would like to add the Tracing Messages Browser to this list.
>
> It can be hard for newbies to understand the value of a new tool.  Making
> movies of them (following Stephane's suggestion) can help a lot.

So the frustrating thing for me - I loaded the Tracing Messages
Browser from Monitcello.  I can see the class(es) in the browser, I
have a pref for "traceMessages" in my preferences.

But I can't figure out how to get a Tracing Messages Browser open, or
what I'm supposed to see happen...

Steve






Reply | Threaded
Open this post in threaded view
|

Re: How does a newbie get past the feeling thay he is trying to understand an elephant whilst looking through a keyhole?

Simon Michael
That was very helpful. Thanks!


Reply | Threaded
Open this post in threaded view
|

Re: How does a newbie get past the feeling thay he is trying to understand an elephant whilst looking through a keyhole?

Stephen Davies-3
In reply to this post by Chris Muller
On 02/05/06, Chris Muller <[hidden email]> wrote:
> When you browse Squeak code, one of the browsers you will invariably use VERY frequently is a Methods browser.  This browser appears whenever you browse "senders" or "implementors" of a method, or references to a class or variable, among other things.  It is a two-paned browser, methods list in the upper-pane, code in the lower-pane.
>
>  So just keep exploring code normally, the next time you use senders or implementors (something any Smalltalker does about 1000 times per day) you will see the Tracing Messages Browser.
>
>  These browsers look the same initially, but by having the "traceMessages" preference set, they take on enhanced behavior as you "trace" method calls.  The SqueakMap entry describes it well:

Ah - got it.  Thanks for the explanation.

Steve

12