This document will give you a short step-by-step introduction to
the Smalltalk language in general and the Smalltalk/X integrated
programming environment in particular.

The tutorial is meant for those who have never worked with
a Smalltalk system before - if you have, you may skip this document.

Notice that although these texts are available on the web and
can be viewed with a regular webBrowser (Mozilla, Opera etc.)
they are interactive documents containing executable code
for execution within the ST/X help-browser.
Interactive examples, buttons, automatic opening of example windows
as present in the texts can only be executed if this text is viewed with
the ST/X help system.

If you are reading this via the internet in a regular wen-Browser,
we highly recommend that you download the Smalltalk/X package and
read these documents there
(it's much more fun if you click on a codeing examample, and the underlying code is executed).

All of the language and non-GUI related information in this tutorial is pretty much valid for all of the Smalltalk
implementations (Dolphin, GNU-ST, Squeak, ST/X, VA, VisualWorks and others).
They all use the same language syntax and even most of the class-libraries and set of
operations are more or less the same.
However, they do differ in their GUI-libraries and tools.
Consider them as systems using the same language, almost the same standard library,
but different GUI libraries. After all, in C, people also use other libraries beside Xlib and Qt.
Also, even in Java, there is AWT, Swing and the Eclipse Toolkit.
However, in Smalltalk, even those differences are probably smaller than those between
Visual-C, Eclipse, Vi or Emacs.

Also, the set of available tools and the "way programs are made" is very similar among all Smalltalk systems,
and also very different to the way things work in almost every other language system and IDE.
The single most striking difference is, that you develop, execute and debug your program WITHIN the
IDE itself. As you add new code and functionality, this immediately becomes part of your working
environment and is immediately usable.
There is no separate executable.
The new code lives in the same object-space as all the basic classes, the compiler,
the widgets and even the pieces which make up the IDE itself.
If your program needs text-edit capabilities, simply instantiate a TextEditor;
if it needs to generate and compile a piece of Smalltalk-code, simply call for the compiler.
Even a debugger or browser can be
opened via a simple message send. They are all there for you to be used.
On the other hand, this also makes it very easy to extend, fix or adapt the IDE itself according
to your needs.

If you know one Smalltalk, you will, with a high probability be able to use the others
in relatively short time, because they share the same basic "philosophy".

Therefore, give it a try and don't worry - it's worth learning it, you will get so much insight
into the OO-world, that even if you will not use Smalltalk at work, it will give a lot
of inspiration, ideas and after all, pure fun.

It has never been easier to simply try out an idea than in Smalltalk !

A number of books on Smalltalk are avaliable for free and included in
the Smalltalk/X distribution for your convenience: books.
Google for "free smalltalk literature" or "Stephane Ducasse literature" should
give you many more hits.