Small World: A Little (More) Smalltalk

Lesson 1 footnotes


The way you begin a Java application is of course different on different platforms.  On Unix systems it will usually be a command line statement such as the following:

java SmallWorld

An optional argument can be given, which if present is assumed to be an image file. The manipulation of image files is discussed in a later lesson. The appearence of the browser windows is very different in Small World from that found in the original Smalltalk-80 language or its later derivitives, such as Squeek.


Readers familar with the original Smalltalk-80 language will note that Small World has eliminated a few categories of Smalltalk-80 literals. The idea of a symbol is gone, replaced by string literals. The idea of an array literal in Smalltalk-80 has been replaced by the more general array expression, which is more useful in the initialization of complex structures. Array expressions are described later in this lesson.

Primitive Operations

Again, readers familar with Smalltalk-80 will notice that primitives are handled slightly differently in the Small World system. In Smalltalk-80 there are primitive methods, entire methods that are replaced by the virtual machine. In the Small World system primitives are expressions, embedded within other methods. This makes the handling of primitives more flexible.

Array Expression

This is another difference between Smalltalk-80 and the Small World system. In Smalltalk-80 there are array literals, but these can only have static values (strings or numbers or the like). In Small World these have been replaced by an array expression, which can have dynamically evaluated expressions as elements. This makes array expressions much more useful for initializing complex structures.  See the creation methods for many windows (such as the class edit window) for examples of this use.

Other significant differences between Small World and Smalltalk-80 include a vastly smaller standard image, the elimination of cascaded messages, a very different browser interface, and some minor differences in the meaning of certain operations.