Smalltalk Language

Officially there is no language called Smalltalk; there is a family of rather different languages called Smalltalk-xx, where the xx are the last two digits are the year that language was finalized. However most people just refer to Smalltalk as the language and mean the Smalltalk-80 dialect of the language (or a derivative of it as virtually all modern Smalltalk systems implement an evolution of Smalltalk-80). Older dialects of Smalltalk include Smalltalk Seventy One, Smalltalk Seventy Two, and Smalltalk Seventy Eight. Self Language can be considered a newer dialect of Smalltalk.

The languages were designed by Alan Kay's research group at Xerox Parc in the seventies and implemented on the first personal computers produced by Xerox Parc, like the Alto, Dolphin, and Dorado workstations.

Smalltalk-76 achieved some exposure from a Scientific American article presenting Alan Kay's research. The most famous of these languages is Smalltalk-80, which was released commercially and about which a set of celebrated books has been written. Since Smalltalk-80 this naming convention has not been adhered to although the language has continued to evolve. For a full history of Smalltalk go to Wikipedia at en.wikipedia.org .

Smalltalk family languages are small languages with a slightly unusual syntax. Smalltalk family languages have been loosely based on Actor System semantics up to and including Smalltalk-76, and on more conventional procedural semantics in later versions.

Smalltalk semantics rely (almost) solely on polymorphic Message Passing to instances of hierarchically organized classes.

Smalltalk-80 was once the number two object-oriented programming language behind C++ by about a factor of ten in job starts. Java replaced Smalltalk-80 in this number two position and then ate it alive. Smalltalk-80 evolved in two directions. The first, based on Smalltalk-80 rel 2 was taken out of Xerox by Adele Goldberg et al. into Parc Place and renamed Object Works, this was later renamed Visual Works and is still sold by Cincom. Another version based on Smalltalk-80 rel 1 was evolved by Alan Kay et al. and renamed Squeak Smalltalk. There is now another branch of Squeak called Pharo that has aimed to make a more commercial offering. Both Squeak and Pharo are OSS. There are a couple of other implementations worthy of note; IBM's Visual Age Smalltalk now sold by Instantiations and Dolphin Smalltalk. In recent years with the rise of dynamic languages such as Python and Ruby there has been a renewal of interest in Smalltalk. As well Ruby is pretty much a Perlized dialect of Smalltalk, so all in all the future of the language is far from dead.

Many of the Wiki authors have used C++, Java, and C# extensively and still prefer Smalltalk for nearly any purpose.



Wiki's Full Search says:

Date unknown: Smalltalk found on 423 pages out of 3506 pages searched.

2000/03/29: Smalltalk found on 837 pages out of 8073 pages searched.

2001/04/12: Smalltalk found on 1159 pages out of 14890 pages searched.

2002/04/08: Smalltalk found on 1419 pages out of 20255 pages searched.

2003/02/10: Smalltalk found on 1524 pages out of 23026 pages searched.

2003/11/07: Smalltalk found on 1677 pages out of 25749 pages searched.

2004/01/14: Smalltalk found on 1750 pages out of 26178 pages searched.

2005/04/10: Smalltalk found on 2061 pages out of 30852 pages searched.

2005/12/03: Smalltalk found on 2162 pages out of 31708 pages searched.

2006/02/01: Smalltalk found on 2184 pages out of 32910 pages searched, In 137 Page Titles.

2008/02/11: Smalltalk found on 2224 pages out of 32967 pages searched, In 145 Page Titles.

2009/02/06: Smalltalk found on 2251 pages out of 33807 pages searched. In 145 Page Titles.


These are some of the better ones ...

Visual Age Smalltalk

Smalltalk/X

Smalltalk/MT

Ambrai Smalltalk

Cuis Smalltalk - added 20141201

Pharo Smalltalk - added 20141215

If you want to try Smalltalk for yourself without spending a lot of money, see Learning Squeak or try one of the evaluation versions of the commercial Smalltalks.


This link lists some projects and points to some other lists of projects.


The pages about Extreme Programming are not overtly about Smalltalk, but if you read them carefully you will see the Smalltalk influence in nearly every page.


I'm afraid I've never programmed in Smalltalk Language ('though I'd love to!), but I think we should mention that two languages I have programmed in, Objective Cee and Ruby Language, are both strongly influenced by Smalltalk Language, and many (but not all, of course!) said about Smalltalk Language on these pages apply to them as well.


Smalltalk Language was the motivator of Cee Plus Plus, Java Language, and the rest of the current "Object Oriented" languages. Alan Kay coined the term "Object Oriented", and He Invented The Term as part of his creation of Smalltalk Language (Smalltalk was, in turn, heavily influenced by Simula Language and Lisp Language). As such, virtually ALL object oriented technology began with Smalltalk.

So what about Simula Language?

And what about Capability Systems?


Is it true that there is effectively no way to deploy a smalltalk app? No source code? That the app is the runtime image of the development environment?

No. This has not been true since the very earliest days of commercial Smalltalks. I don't know enough about Squeak to know how this question is handled in Squeak, but in the environments that were supported by Envy Developer (Digitalk Smalltalk, Ibm Smalltalk, and older versions of Parc Place), an application was "packaged", meaning that the classes and methods (often without source) needed by the application were emitted by the development environment into a special image. During the process, the various components of the development environment (such as the compiler and its support classes) were stripped from the packaged image. The result is a fully-functional Smalltalk application that runs independently from the environment. Other approaches, that had varying levels of success, included constructing linkable modules (DLLs in windows, so's or .o's in unix, etc) that ran the application. Modern Visual Works has a sophisticated parcelling system and deployment tools to allow runtime systems to be deployed.

[There are different ways to do this in Open Source Smalltalks. I'm unaware if this kind of "automatic image deployment" is implemented in Squeak/Pharo/Cuis, but that would be most doable. Other way is stripping down your development image (a copy of it), which is implemented (at least partially?) in those. And another way is filing out your classes (as a changeset, monticello package, or some other way), and loading them to an already minimal image (this is the closest you get to source code compiling, i guess). Then there's Gnu Smalltalk, if you want to go that route...]


The irony is that Smalltalk zealots generate a large amount of impassioned debate. The language should be called Big Mouth.

"I think that applies to most languages..."


Are the original Xerox releases of smalltalk-80 and smalltalk-80 release 2 available anywhere online?



See original on c2.com