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
|