Smalltalk is a hackish class-based _(OO)  *(programming language)
with _(reflective|metaprogramming) capabilities.

Smalltalk can be viewed as an _(OS) of sorts, more so if it is not running on another OS. It is fine grained, having 30,000-60,000 objects, rooted in some 200 classes; some big Smalltalk systems have over 1 million _(object)s. No differentiation-separation is made between System and Application software: it's all one big sea of objects. It has _(no-kernel) properties; but the _(VM) serves a similar purpose. It has extensive, relentless boundary checking.

It is the most consistent _(OO) language. Everything is an object, no exception: every number, letter. No object can directly affect the state of another object, only indirectly, by messages. No pointer arithmetic can occur.

Smalltalk was inspired by Simula. Smalltalk was developed under Alan Kay's team, at Xerox PARC in the 1970s and early 1980s. Xerox famously sat on some amazing technologies, throwing away many great opportunities, later developed instead by other companies: Ethernetworking (3com), Postscript (Adobe), laser printers (Apple), windowing graphic user interfaces (Apple, Microsoft), and Smalltalk (ParcPlace-Digitalk is now in much trouble due to overpricing Smalltalk).

Then Apple Computer's Steve Jobs got Kay and many of the PARC team to
move to Apple. Some of the Smalltalk team moved to Digitalk. Then some
Digitalkers moved to Apple. Sometime during all this, Apple licensed
Smalltalk-80.

As corporate America often did and does, Apple sat on advanced stuff it
had, and did nothing with it. In the meantime, IBM developed Visual Age,
and now has 20,000-30,000 Smalltalk programmers.

<UL CLASS="links">
<LI>_("Simula and Smalltalk: A Social and Political History" | http://www.cs.washington.edu/homes/dugan/history.html)</LI>
<LI>_("Ted Kaehler's WWW Site" | http://www.squeak.org/us/ted/)</LI>
<li>Reflective frameworks for Smalltalk:
<ul>
<li>_(MetaClassTalk|http://csl.ensm-douai.fr/MetaclassTalk)
<li>_(SOUL|http://prog.vub.ac.be/research/DMP/soul/soul2.html): Logic meta-programming as the Smalltalk Open Unification Language.
<li>_(AspectS): aspect-oriented programming in Smalltalk.
</ul>
</UL>

<UL CLASS="implementations">
<LI>_(Squeak)</LI>
<LI>_("GNU Smalltalk" | http://www.smalltalk.org/versions/GNUSmalltalk.html)</LI>
<LI>_("Little Smalltalk" | ftp://ftp.cs.orst.edu/pub/budd/little/ReadMe.html)</LI>
<LI>_("Smalltalk/X" | http://www.exept.de/exept_99/english/welcomeFrame_smalltalk.html)</LI>
</UL>