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.&nbsp; 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).&nbsp; In Smalltalk: &quot;OOP ... means only messaging, local retention, protection, and hiding of state-process, and extreme late-binding of all things&quot;.&nbsp; The focus is on sending and receiving messages between objects, regardless of their types.<br>
&nbsp;<br>I can understand your desire to know the type of each variable beforehand, if that&#39;s the style of development that you are most familiar with.&nbsp; But try this.&nbsp; First, read <a href="http://coweb.cc.gatech.edu/cs2340/5556">this article </a>on the Squeak debugger.&nbsp; After, look at a unit test, add a halt somewhere in the implementation code, and run that unit test.&nbsp; The debugger will pop up.&nbsp; The debugger is like a stack trace, only you can inspect every object in this frozen process (including their types).&nbsp; 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&#39;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.&nbsp; Me, I feel more productive with Lisp dialects and Smalltalk.<br>
<br>You said you&#39;re still new to Smalltalk - I can recommend a few books that helped me, if you&#39;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 &lt;<a href="mailto:phm@sdf.lonestar.org">phm@sdf.lonestar.org</a>&gt; 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 &#39;type&#39; 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&#39;d like is a kind of overview of what&#39;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&#39;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;">

&quot;peter&quot; == peter h meadows &lt;<a href="mailto:phm@sdf.lonestar.org" target="_blank">phm@sdf.lonestar.org</a>&gt; writes:<br>
</blockquote></blockquote></blockquote></blockquote></blockquote>
<br>
peter&gt; Oh. I&#39;m still very new to smalltalk. It seemed like it would help me to<br>
peter&gt; understand what&#39;s going on. I wanted it to remember everything. E.g if<br>
peter&gt; the thing is an array it will tell me what has been stored in it. Also,<br>
peter&gt; wouldn&#39;t it help with code completion? If it knows what type of object<br>
peter&gt; it was in the past it can guess which messages I want to send to<br>
peter&gt; 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&#39;re not &quot;thinking smalltalk&quot; yet. &nbsp;Stop worrying about types. :)<br>
<br>
Oh, and they aren&#39;t types. &nbsp;They&#39;re instances of classes.<br>
<br>
If you want to see what&#39;s going on, learn to single step in the debugger.<br>
It&#39;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>