Smalltalk/V Express, Smalltalk V MS-DOS

Version: 2019-04-27

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), Commodore (Amiga) 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 3.0 up to MS-Windows XP and under Linux with help of the windows emulator wine. Wine needs 16-bit support enabled. 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)

On WinWorld I found Smalltalk V from 1986 for MS-DOS. Somewhere else I found the Smalltalk V/286 handbook. Smalltalk V supports Hercules Graphics with 720x350 pixels in black&white, AT&T mode or toshiba mode with 640x400 pixels, EGA with 640x350 pixels and lowRes with 640x200 pixels. The DOSbox emulator can do Hercules and EGA, but in the first case there is no mouse pointer and in the other case the mouse pointer does corrupt the screen contents. Maybe I can fix DOSbox - but this will take some time. Mame has Hercules and EGA support, but I did not test Mame yet.
Download Smalltalk V 1.2 MS-DOS (7z)
Download Smalltalk V/286 Handbook (7z)

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++.
A if-then-else you write in Smalltalk:
a >= 0
    ifTrue: [Transcript nextPutAll: 'positive']
    ifFalse: [Transcript nextPutAll: 'negative']

In C++ you 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 free Smalltalk implementations

Squeak is a Smalltalk from Dan Ingalls and other original Smalltalk-80 developers.
Pharo is a Smalltalk spin-off with simple syntax.
Smalltalk/X is the work of Claus Gittinger and eXept.
Cincom offers VisualWorks and ObjectStudio free for personal use.
Instantiations offers VisualAge Smalltalk free trial version.
Check the licenses. Some are free as in 'free speech', other are free as in 'free beer'.