Smalltalk is an object-oriented programming language and environment. It uses everything is an object and message passing paradigms. Some key aspects include: objects can have methods and fields, method calls use message passing syntax instead of function syntax, types are dynamically checked, and it has features like closures, reflection, and automatic memory management via garbage collection. The Smalltalk environment has been used for over 50 years and current implementations like Squeak and Pharo remain actively developed.