Smalltalk es considerado el primero de los lenguajes orientados a objetos (OOP), aunque en realidad el primero en implementar programación orientada a objetos fue Simula. En Smalltalk todo es un objeto, incluidos los números reales o el propio entorno Smalltalk.
Como lenguaje tiene las siguientes características:
- Orientación a Objetos
- Tipado dinámico
- Interacción entre objetos mediante envío de mensajes
- Herencia simple y con raíz común
- Reflexión computacional completa
- Recolección de basura
- Compilación en tiempo de ejecución o Interpretado (dependiendo de la distribución o del proveedor)
- Múltiples Implementaciones
Smalltalk ha tenido gran influencia sobre otros lenguajes como Java o Ruby, y de su entorno han surgido muchas de las prácticas y herramientas de desarrollo promulgadas actualmente por las metodologías ágiles (refactorización, desarrollo incremental, desarrollo dirigido por tests, etc.).