New Squeaker Introduction

Jason B Burke jason.b.burke at Abbott.com
Wed Nov 23 19:52:20 UTC 2005


Greetigns Klaus,

I'd be happy to give you my perspective on this. The first language I 
learned was
Basic (it was a sad start, but the only free option on the Apple ][ =). 
So, there's
no doubt that I come from a procedural background in programming. In that 
context, top to bottom programming is the way to write clean code. So, the 

first jump to OO programming was the most difficult. I was introduced to 
OO
through Bruce Eckel's fantastic book, "Thinking in Java". However, Java 
(and
Python) both have standards language constructs (for loops, if..then, etc, 
etc)
which makes it fairly easy to write something without knowing the class
library when you come from a proccedural background. Some articles that 
I've
come across about smalltalk say that using methods as nothing more than
holding spots for proceedural code is bad style (and from an OO view I 
agree).
Python, in particular, supports proceedural scripting even though 
everything is 
an object in the language (The OO elements are pretty seemless in Python).
The thing is that even though it's OO (for both Java and Python) the 
syntax
constructs allow you to write top-down proceedural code, and people (like
myself) comming from that background can get away without really learning
the whole OO story. We learn just enough to integrate our proceedures into
objects.

However, in Smalltalk, since the language syntax is very simple, and it 
doesn't
have any language constructs that exist outside of an object, it's 
baffling to 
people comming from another language (especially with such a deeply 
embeded
paradigm like top down proceedural coding) to figure out how to do simple 
things like looping. Since looping happens within the context of an object 
(and
not as part of the lanugage syntax) you have to be familiar with the 
object (in
the class library) that you want to iterate over. So becomming familiar 
with
the class library is essential to doing anything in the language. It seems 
that
the generally accepted paradigm for smalltalkers is that you learn a 
small,
necessary chunk of the class library, and build on to that as you go by 
looking
at the source code comments in the browser.

Personally, I learned Python (after C, Java and Perl) in a weekend, and 
the
next week I wrote a FTP mirroring program in 15 lines. This was possible 
because of the excellent class documentation available for Python (that 
included examples) coupled with the interactive interpreter (which is 
based
on smalltalk's workspace) and the built-in dir() function for inspecting 
the
system objects and environment. Since the interactive interpreter and 
object inspection are both available with smalltalk I believe that the 
main
issues is the documentation.

Just my thoughts on this.

Jason 




Hi Jason,

on Wed, 23 Nov 2005 17:35:51 +0100, you <jason at buddhistheart.org> wrote:

[SNIP]

This is an interesting point indeed and one which always makes me curious. 
 
Have (Java and Phyton) people learned the Java class library and the 
Python class library in a couple of hours or by self studing? Please do 
not take my question personally, I just want to ask that to a *real* 
person who has actually *made* this experience (of trying to learn 
Smalltalk after Java and Python) and not somebody who has read about such 
difficulty. So, if that is a question for you then please, tell us how 
you've learned Java and Python.

Thank you very much in advance.

/Klaus




-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20051123/ba0c1d23/attachment.htm


More information about the Squeak-dev mailing list