Hi Peter,<br><br>I went to a college where they only taught Java, so hopefully I can help you a little.<br><br>In school, I was taught that the 3 tenets of object oriented programming are encapsulation, inheritance, and polymorphism. That may be true, but only if one chooses to ignore history (which reminds me, I should call up Johns Hopkins and ask for most of my tuition back). In Smalltalk: "OOP ... means only messaging, local retention, protection, and hiding of state-process, and extreme late-binding of all things". The focus is on sending and receiving messages between objects, regardless of their types.<br>
<br>I can understand your desire to know the type of each variable beforehand, if that's the style of development that you are most familiar with. But try this. First, read <a href="http://coweb.cc.gatech.edu/cs2340/5556">this article </a>on the Squeak debugger. After, look at a unit test, add a halt somewhere in the implementation code, and run that unit test. The debugger will pop up. The debugger is like a stack trace, only you can inspect every object in this frozen process (including their types). Once you are familiar enough with the Smalltalk and the debugger, you may find that C++/Java/C# type systems are a pain.<br>
<br>However, if type-free development doesn't suit your tastes, but you are still looking for a language which offer high levels of abstraction, you may want to look into Haskell. Me, I feel more productive with Lisp dialects and Smalltalk.<br>
<br>You said you're still new to Smalltalk - I can recommend a few books that helped me, if you're interested.<br><br>Hope you found this somewhat helpful,<br><br>Bill Six<br><br><br> <div class="gmail_quote">On Mon, Jun 2, 2008 at 8:57 PM, peter h meadows <<a href="mailto:phm@sdf.lonestar.org">phm@sdf.lonestar.org</a>> wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><br>
Ah. Well, more often than not the variables in my code stay as one 'type' of thing. And I thought that generally they would otherwise things would get really confusing!?<br>
<br>
Sometimes when I try to understand how a program is working I get lost in the debugger. What I'd like is a kind of overview of what's going on. Something I can browse and focus in on the parts that seem interesting. In theory I can do this with the system browser but it doesn't tell me how everything fits together. I want to see an overview of how all the parts fit together.. Who uses what.. Which bits are connected.. The order in which things are done, etc.<br>
<br>
Can I get the debugger to show a tree of message sends, that I can browse? Something like that?<br>
<br>
Any ideas? thx.<div class="Ih2E3d"><br>
<br>
<br>
<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
"peter" == peter h meadows <<a href="mailto:phm@sdf.lonestar.org" target="_blank">phm@sdf.lonestar.org</a>> writes:<br>
</blockquote></blockquote></blockquote></blockquote></blockquote>
<br>
peter> Oh. I'm still very new to smalltalk. It seemed like it would help me to<br>
peter> understand what's going on. I wanted it to remember everything. E.g if<br>
peter> the thing is an array it will tell me what has been stored in it. Also,<br>
peter> wouldn't it help with code completion? If it knows what type of object<br>
peter> it was in the past it can guess which messages I want to send to<br>
peter> it. That would be useful.<br>
<br>
But the problem is that a given type in the past is not any indication of<br>
a type in the future.<br>
<br>
You're not "thinking smalltalk" yet. Stop worrying about types. :)<br>
<br>
Oh, and they aren't types. They're instances of classes.<br>
<br>
If you want to see what's going on, learn to single step in the debugger.<br>
It's quite informative.<br>
<br>
</blockquote></div><div><div></div><div class="Wj3C7c">
_______________________________________________<br>
Beginners mailing list<br>
<a href="mailto:Beginners@lists.squeakfoundation.org" target="_blank">Beginners@lists.squeakfoundation.org</a><br>
<a href="http://lists.squeakfoundation.org/mailman/listinfo/beginners" target="_blank">http://lists.squeakfoundation.org/mailman/listinfo/beginners</a><br>
</div></div></blockquote></div><br>