<br><font size=2 face="Arial">Greetigns Klaus,</font>
<br>
<br><font size=2 face="Arial">I'd be happy to give you my perspective on this. The first language I learned was</font>
<br><font size=2 face="Arial">Basic (it was a sad start, but the only free option on the Apple ][ =). So, there's</font>
<br><font size=2 face="Arial">no doubt that I come from a procedural background in programming. In that </font>
<br><font size=2 face="Arial">context, top to bottom programming is the way to write clean code. So, the </font>
<br><font size=2 face="Arial">first jump to OO programming was the most difficult. I was introduced to OO</font>
<br><font size=2 face="Arial">through Bruce Eckel's fantastic book, &quot;Thinking in Java&quot;. However, Java (and</font>
<br><font size=2 face="Arial">Python) both have standards language constructs (for loops, if..then, etc, etc)</font>
<br><font size=2 face="Arial">which makes it fairly easy to write something without knowing the class</font>
<br><font size=2 face="Arial">library when you come from a proccedural background. Some articles that I've</font>
<br><font size=2 face="Arial">come across about smalltalk say that using methods as nothing more than</font>
<br><font size=2 face="Arial">holding spots for proceedural code is bad style (and from an OO view I agree).</font>
<br><font size=2 face="Arial">Python, in particular, supports proceedural scripting even though everything is </font>
<br><font size=2 face="Arial">an object in the language (The OO elements are pretty seemless in Python).</font>
<br><font size=2 face="Arial">The thing is that even though it's OO (for both Java and Python) the syntax</font>
<br><font size=2 face="Arial">constructs allow you to write top-down proceedural code, and people (like</font>
<br><font size=2 face="Arial">myself) comming from that background can get away without really learning</font>
<br><font size=2 face="Arial">the whole OO story. We learn just enough to integrate our proceedures into</font>
<br><font size=2 face="Arial">objects.</font>
<br>
<br><font size=2 face="Arial">However, in Smalltalk, since the language syntax is very simple, and it doesn't</font>
<br><font size=2 face="Arial">have any language constructs that exist outside of an object, it's baffling to </font>
<br><font size=2 face="Arial">people comming from another language (especially with such a deeply embeded</font>
<br><font size=2 face="Arial">paradigm like top down proceedural coding) to figure out how to do simple </font>
<br><font size=2 face="Arial">things like looping. Since looping happens within the context of an object (and</font>
<br><font size=2 face="Arial">not as part of the lanugage syntax) you have to be familiar with the object (in</font>
<br><font size=2 face="Arial">the class library) that you want to iterate over. So becomming familiar with</font>
<br><font size=2 face="Arial">the class library is essential to doing anything in the language. It seems that</font>
<br><font size=2 face="Arial">the generally accepted paradigm for smalltalkers is that you learn a small,</font>
<br><font size=2 face="Arial">necessary chunk of the class library, and build on to that as you go by looking</font>
<br><font size=2 face="Arial">at the source code comments in the browser.</font>
<br>
<br><font size=2 face="Arial">Personally, I learned Python (after C, Java and Perl) in a weekend, and the</font>
<br><font size=2 face="Arial">next week I wrote a FTP mirroring program in 15 lines. This was possible </font>
<br><font size=2 face="Arial">because of the excellent class documentation available for Python (that </font>
<br><font size=2 face="Arial">included examples) coupled with the interactive interpreter (which is based</font>
<br><font size=2 face="Arial">on smalltalk's workspace) and the built-in dir() function for inspecting the</font>
<br><font size=2 face="Arial">system objects and environment. Since the interactive interpreter and </font>
<br><font size=2 face="Arial">object inspection are both available with smalltalk I believe that the main</font>
<br><font size=2 face="Arial">issues is the documentation.</font>
<br>
<br><font size=2 face="Arial">Just my thoughts on this.</font>
<br>
<br><font size=2 face="Arial">Jason </font>
<br>
<br>
<br>
<br>
<br><font size=2 face="Courier New">Hi Jason,<br>
<br>
on Wed, 23 Nov 2005 17:35:51 +0100, you &lt;jason@buddhistheart.org&gt; wrote:<br>
<br>
[SNIP]<br>
<br>
This is an interesting point indeed and one which always makes me curious. &nbsp;<br>
Have (Java and Phyton) people learned the Java class library and the &nbsp;<br>
Python class library in a couple of hours or by self studing? Please do &nbsp;<br>
not take my question personally, I just want to ask that to a *real* &nbsp;<br>
person who has actually *made* this experience (of trying to learn &nbsp;<br>
Smalltalk after Java and Python) and not somebody who has read about such &nbsp;<br>
difficulty. So, if that is a question for you then please, tell us how &nbsp;<br>
you've learned Java and Python.<br>
<br>
Thank you very much in advance.<br>
<br>
/Klaus<br>
<br>
<br>
</font>
<br>
<br>