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