SMALLTALK ist eine objektorientierte Programmiersprache, eine große Klassenbibliothek und eine interaktive Programmierumgebung in einem.

SMALLTALK war die erste konsequent objektorientierte Sprache. Heutige Standardelemente moderner Anwendungen wie Mausbedienung , Fenstersysteme , interaktive Entwicklungsumgebungen und viele Techniken wie VM, GC, Unittests, Klassenbrowser die heute wie selbstverständlich von Sprachen wie Java und C# verwendet werden, haben im Smalltalk ihre Wiege. Smalltalk ist ein ausgereiftes, hoch-performantes und skalierbares System, das "write-once-run-everywhere" Ausführung erlaubt

Die Grundelemente der Sprache sind:
1. Rein objektorientierte Sprache mit einfachster Syntax, d.h. alles im System ist ein Objekt im Sinne der Objektorientierung. Die Syntax kann man quasi auf einem Bierdeckel aufschreiben.

2. reflexiv bedeutet, dass Smalltalk in Smalltalk entwickelt wurde, was z.B. die Anpassung der Entwicklungsumgebung durch den Entwickler erlaubt.

3. eine implizit getypte Sprache besitzt zwar Typen -- in Smalltalk sind dies die Klassen der Objekte -- aber die Zuordnung der Typen zu Objekten erfolgt zur Laufzeit und muss nicht als Typdeklaration zur Programmierzeit angegeben werden.

4. Frameworkbasierte Systeme sind ‚unfertige Programmiergerüste‘, die beispielsweise durch Designentscheidungen definierte Entwurfsmuster, wie das Modell-View- Controller-Muster unterstützen. Die Frameworks sichern die Umsetzung und Qualität der Designentscheidungen, tragen zur Lesbarkeit des Codes bei und beschleunigen die Entwicklungsgeschwindigkeit.

5. Visionsorientierte Systeme sind agile Entwicklungssysteme, die den kompetenten Umgang mit IT-Technologischen Aufgabenstellungen fördern. Ein Mitarbeiter bringt für ein Unternehmen genau dann den größten Nutzen, wenn er seinen Neigungen und Talenten entsprechend eingesetzt und gefordert wird. Smalltalk bietet durch die einfache Syntax die Möglichkeit einem in einem bestimmten fachlichen Kontext kompetenten Mitarbeiter durch erlernen einer einfachen Programmiersprache diese Kompetenz in Software auszudrücken. Wo an anderer Stelle mehrere Techniker versuchen ein fachliches Problem zu verstehen, zu verdrehen und schliesslich halbrichtig umzusetzen, kann in Visionsorientierten Systemen der richtige Mitarbeiter die richtigen fachlichen Umsetzungsentscheidungen treffen und somit seinem Unternehmen den höchsten wirtschaftlichen Nutzen bringen. Gleichzeitig kann ein technisch starker Entwickler, durch Bereitstellung geeigneter Frameworks, seinem fachlich stärkeren Kollegen helfen, auf schnellstem Wege fachliche Anforderungen mit höchst möglicher Qualität umzusetzen, wobei er die fachlichen Themen ebenso zu verstehen lernt.