[Newbies] do it, print it, inspect it, explore it, debug it missing from workspace menu

subbukk subbukk at gmail.com
Sat May 19 06:47:19 UTC 2007


On Saturday 19 May 2007 2:56 am, mstram wrote:
> This is only day 3 (hour ~20) of getting into Squeak / Seaside :)  I've
> programmed with other languages / environments, but never with Smalltalk
> and am getting frustrated trying to "battle" the interface for the simplest
> things.
Squeak is really a beast for beginners because its paradigm is very different. 
Missing and outdated docs and links add to the confusion. I arrived at the 
following tips to get around:
1. Squeak image is like a 'software computer' - an entire computer, not just 
an IDE. The 'quit' doesn't shutdown, it only suspends this computer and the 
vm resumes it from where you left off next time you start it. Objects created 
in this image can live on for years! This soft computer even crashes like a 
real one. I always work with copies of images when experimenting with it.
2. Commands take the form "<subject> <verb> .." instead of the usual "<verb> 
<subject>". Though, this sounds simple, it takes some time to switch mental 
models from imperative mode to message sends.
3. Most tutorials exhort beginners to "doIt". Please don't. Use "debugIt", so 
you can see trace the execution and learn a lot from it. Tracing something 
even as simple as "3+4" can be very illuminating as it takes you through 
compiler, string conversions, primitive calls and so on. After a few hours 
browsing code, DNU pop-ups are no longer scary :-(. Morphs (like menus) can 
be traced by using the debug halo item.
4. I find the "explain" menu item very handy while browsing code (e.g. Is 
SoundPlayer a class or a variable?). It is buried one level deep in content 
menu :-(. I also make liberal use of "implementors of" and "senders of" to 
understand the larger context.
5. The "browse protocol" is another useful menu item listing all messages 
(including inherited ones) for an object. Here again, the most useful 
category, '--all--',  comes in the end :-(.

Hope this helps .. Subbu


More information about the Beginners mailing list