Smalltalk and Squeak (was: [q]squeak is too slow?)
klausf at schule.de
Wed Dec 8 14:19:19 UTC 2004
Andreas Raab wrote:
> It always annoys me when people [...] confuse the language with
> the system. That Croquet has been written using the Smalltalk language
> means nothing whatsoever. It might as well have been written in
> now have Parsers. None of which would make much of a difference.
> What we _have_ been doing and what does matter is that we have been
> using Squeak as a system with all that implies - starting from being
> able to use BitBlt for image processing, the mp3 plugin for sound and
> video up to being able to run Morphic right inside a Croquet texture. We
> would NOT have been able to do this with VisualWorks, Dolphin, GST or
> any other "Smalltalk" implementation.
> For all of this "Smalltalk" is totally meaningless - it just happens to
> have been the programming language of choice for people who did the
> important part: Make it accessible for us in Squeak. It is Squeak which
> matters, plain and simple. We could have done without Smalltalk but we
> couldn't have done without Squeak.
That seems to be very interesting to me - from a philosophical point of
view. (I am relative new to squeak - not to Smalltalk - and still
struggeling with some concepts.) So - what of the following is
acceptable und what is a misconception:
- Smalltalk is object-orientation(OO), plain and simple, with a minimum
of fuzz and a minimum of syntactic overhead. OO means:
- a conciese object-hierarchy;
- classes, snippets of code and as much of the operating system and
the machine as possible are objects too;
- a support for concepts such as MVC and other programming paradigms
which are intellectual tools to cope with complexity.
Smalltalk also means: "direct manipulation"(DM), e.g. represent an
abstract entity so that the user can directly touch it. DM is a direct
consequence of Smalltalk's OO-concept, it even reflects the
postfix-notation of operations in the code.
- Squeak is based on Smalltalk and first of all illustrates Smalltalk's
principles. So the question if Squeak could have been written in another
language is largely irrelevant: Squeak breathes the Smalltalk-concepts
of OO out of every user-interaction.
- Squeak allows to play with _additional_ concepts (that's the point
where my difficulties regarding Squeak come to surface):
- There are *Morphs*. Morphs may be a replacement for MVC. MVC tends to
be rather bureaucratic; who really knows what a "controller" is, anyway.
??? May be Morphs carry restriction with them, too and I finally don't
want to completely mix up the core-solution of a problem with it's
- There are *EToys*. Let's try a costume-player-paradigm and see if we
get more interaction, more fun, more DM than with MVC.
??? But is this idiom really as universally applyable as MVC? Squeak's
players are good to move Morphs, perferably Sketches, around and watch
out for different colors. Don't I need additional kind of players?
- In addition to the costume-player-paradigm EToys offer a classless
approach to OO-Programming: instead of subclassing a class you copy an
object to modify it's behaviour.
??? How can I keep an overview about the different objects and their
behaviours in a complex system? How do I find an object which is best
suited to be transformed to adhere to a new task.
Any hints to clarify the different concepts are highly appreciated.
Where does Croquet come into the play? Which features of Squeak are
constituents of Croquet?
PS. As this is my first posting to this list: I'm a German secondary
teacher for Mathematics, CS and Physics for grade 5-13. I use Squeak to
teach CS in 11-13, to simulate physical systems in 7-13 and I plan to
use it in an introductional course on programming in grade 7.
This course is giving me the biggest headache, because I would like to
allow the pupils to work in a sort of morphic "Mathland" and I just
can't get it straight, because I still can't ask the right questions as
to me some parts of Squeak are still rather a-morph :-)
More information about the Squeak-dev