Smalltalk Express
Smalltalk-80 was the first object oriented programming language with
graphical user interface (GUI), but it was no big success. In the
1980s personal computers did not have enough memory or processing power
for Smalltalk. The first computer to run Smalltalk-80 was the Xerox Alto
workstation, a modified
Data General Nova minicomputer.
Companies like Apple (MacIntosh), Digital Research
(Atari ST) and Microsoft (MS-Windows) re-implemented the GUI with
traditional programming languages. Today languages like Java (Sun) and
C# (Microsoft) become more and more like Smalltalk, for example in
using garbage collection.
Smalltalk is a pure OO language, C++, Java and C# are hybrids. In
Smalltalk you have one big object tree, in the hybrids you grow some
small object bushes in your application. In Smalltalk you can browse
the source-code of the GUI implementation exactly like you browse your
own source-code. In hybrid languages you can hardly look behind the GUI
API interface where the callbacks come from.
Some Smalltalk
history and introduction is given here.
You can download the free Smalltalk
Express from this web page in version 2.04
as a ZIP file. After un-zipping you can run the VW.EXE program in
directory STEXPRES under MS-Windows and under Linux with help of the
windows emulator wine. After un-zipping the tutorial you can read it
with a web-browser. Just open the file index.htm in directory tutorial.
Download Smalltalk Express 2.04 (ZIP)
Download Tutorial (ZIP)
The "Tutorial and Programming Handbook" for Smalltalk Express can be
found on some university servers.
On the university for applied science in munich, germany. To Smalltalk Express
Tutorial
On the university hannover, germany. To
Smalltalk Express Tutorial
Strange
Smalltalk
The numerical expression 1 + 2
* 3 evaluates to 9 in Smalltalk. The hybrid languages give you 7
as solution.
A function max with two arguments a, b is written a max: b in
Smalltalk, but max(a, b) in C++.
For if-then-else you write in Smalltalk:
a >= 0
ifTrue: [Transcript nextPutAll: 'positive']
ifFalse: [Transcript nextPutAll: 'negative']
In C++ you would write:
if (a >= 0) {
fprintf(stdout, "positive");
} else {
fprintf(stdout, "negative");
}
Strangeness is relative: if you had a real bad pocket calculator as
a child and if Smalltalk was your first programming language, then
hybrid
languages would be the strange ones.
More
Smalltalk implementations
Squeak, Smalltalk/X and VisualWorks are Smalltalk implementations
you can find for example on Smalltalk.org.
VisualWorks is free only for non-commercial use.
Back