||Historically, languages designed for other people
to use have been bad: Cobol, PL/I, Pascal, Ada, C++.
The good languages have been those that were designed
for their own creators: C, Perl, Smalltalk, Lisp.
How to use the System
- Read "Getting Started".
This document describes how to start & stop the Smalltalk/X system,
how to edit text and how pop up-menus are used. Also, command line arguments and
scripting options are described in detail.
If you don't know the Smalltalk language
Another useful starter is the
"List of useful selectors";
if used with the
this list helps you to find out how and where classes and their methods are used.
Almost all classes source is there, and most of the stuff is well documented.
- Read the "Smalltalk tutorial".
Although this document is not yet finished, it gives some information
on the concepts of objects, classes, messages etc.
- Read a textbook on the Smalltalk language
A good introduction is Ivan Tomek's "The Joy Of Smalltalk",
which (many thanks to the author) can be freely used and copied.
Although originally written for VisualWorks Smalltalk, the information therein also
applies to other Smalltalk systems (be prepared, that some examples do not work 100% in Smalltalk/X).
In addition, Ivans "Introduction to Smalltalk"
contains a step-by-step quick introduction and executable code examples.
This document has been adapted to Smalltalk/X.
Thanks a lot, Ivan!
Canol Gökel has written an introduction for GNU-Smalltalk called
"Computer Programming using GNU-Smalltalk",
which is also valid for Smalltalk/X (mostly).
To evaluate the step-by-step examples of that text,
- either use an
Evaluation Workspace, type in the examples there,
and execute them with the DoIt function,
- or start Smalltalk/X with the "--repl" (i.e. Read-Eval-Print-Loop) command line option,
and execute the examples without a graphical user interface.
More literature links are found
- Read the
which gives you a very rough idea of which
classes are included and what they are used for. Things are not
described in much detail there, but you will get an idea of
what is most interesting and where (i.e. in which classes) to look for more
- Get a feeling for the basic classes.
See the class overview documents for a starting point.
- C++ and Java Programmers who have problems reading Smalltalk, should read
"I can Read C++ and Java but not Smalltalk (PDF)",
by Wilf LaLonde.
- Lisp Programmers will find many familiar concepts in Smalltalk.
They sure will like
"Smalltalk for Lispers"
which describes these similarities.
- Write little programs
Since Smalltalk is well aimed for applications with a graphical user
interface, start in that area. It is much easier than in other languages
and you will be rewarded with something 'you can look at' quite early.
Start with simple board games, notepads, telephone/address/todo list browsers.
Also, all classes include some documentation and examples
(usually found in the classes documentation category)
which can be viewed with the browser.
Finally, many methods contain a comment which demonstrates a typical use
of that method.
Although the Smalltalk language itself is simple and easy to learn,
there is a huge class library containing ready to be used building blocks.
Don't get shocked by the number of existing classes and methods
- you don't have to know and remember everything by heart
(even the authors of those systems need the browser to find their way through ;-).
If you know Smalltalk, but want to see interesting things about ST/X
On the basic class level, Smalltalk/X is pretty much
compatible to other Smalltalk implementations.
So if you already know collections, streams & friends, read:
Also, interesting information is found in:
However, for experienced programmers, most of this is well known.
The main differences are found in the implementation of the view classes;
it is recommended, to read:
which gives you a step-by-step tutorial on this.
If you want to do some GUI programming, read:
which gives a short introduction on how to use the UIPainter, which is
a tool for painting graphical user interfaces.
When programming, start with some of the included graphical demos.
Load them using the
and have a look at and understand the code.
Nice short demos are found in the directory "
Most of those demos try to point out a specific feature.
The stuff in "
doc/coding" is less oriented toward graphics.
Then turn to the more complex demos - the
DrawTool is a pretty
(and powerful) application to look at.
Also, the 3D demos found in "
clients/GLdemos" invite to play and try new things.
If you know Smalltalk, and want to write primitives and inline C code
The later text also gives you a step-by-step guide and examples of
how you can create and include your own binary class libraries.
Look into already existing methods which include primitive code to see
concrete examples. A browser on all methods with primitive code is opened by:
(be a bit patient; startup takes a while, since the source of all methods has to be processed...)
browseMethodsWhere:[:cls :mthd :sel | mthd hasPrimitiveCode]
title:'methods with primitive code'
If your system supports dynamic loading of binary code (currently SYS5-based, Solaris, Linux
and Windows-based systems),
primitive (i.e. C-) code can be typed right into the browser and accepted.
If you know Smalltalk, but are interested in its history and some philosophic background
Alan Kay wrote an interesting paper on the early history of Smalltalk:
"The Early History of Smalltalk (pdf)"
Copyright © 1996-2017 Claus Gittinger Development & Consulting, all rights reserved
Copyright © 2003-2017 eXept Software AG, all rights reserved