Smalltalk è un linguaggio di programmazione progettato espressamente per supportare i concetti di programmazione orientata agli oggetti. All'inizio degli anni '1970, Alan Kay guidò un team di ricercatori della Xerox per inventare un linguaggio che consentisse ai programmatori di immaginare gli oggetti dati che intendevano manipolare. A differenza di C ++, Smalltalk non è stato costruito sulla sintassi di un linguaggio procedurale; è un linguaggio "puro" orientato agli oggetti con regole applicate in modo più rigoroso rispetto al C ++ che consente alcuni dei costrutti procedurali del linguaggio C.
Sebbene Smalltalk possa continuare ad attrarre un fedele seguito, Java, un derivato di C ++ progettato per sistemi distribuiti, è diventato il linguaggio orientato agli oggetti più diffuso sul Web.