Viene por parte la cosa... Si no leiste la parte 1...
Es muy difícil explicar, a personas que no lo conozcan, que es Smalltalk y porque es tan diferente a otras herramientas más populares.
El origen de ese des-entendimiento viene a razón de que el proyecto Smalltalk estuvo - y sigue estando - regido por una concepción diferente de como debieran usarse las computadoras:
Las computadoras deben ser herramientas que sirvan como amplificadores del espíritu creativo de las personas.
Eso implica, entre otras cosas, que:
- Todo el sistema tiene que ser entendible, y por ende modificable, por una sola persona.
- El sistema tiene que estar construido con un mínimo juego de partes intercambiables. Cada parte puede ser cambiada sin que el resto del sistema se modifique.
- Todo el sistema tiene que estar construido basado en una metáfora que pueda ser aplicada en todas las partes.
- Cada componente del sistema tiene que poder ser inspeccionado y cambiado.
Smalltalk es un ambiente de objetos. Los objetos interactúan enviándose mensajes entre si.
Smalltalk incluye un lenguaje de programación y este fue desarrollado usando los principios que ya se enumeraron. Esto quiere decir, por ejemplo, que el lenguaje Smalltalk puede ser cambiado - como cualquier otra parte - y reemplazado por otro; o que pueden convivir diferentes lenguajes de programación en el mismo ambientes, etc.
Un ambiente de Smalltalk típico también incluye muchas herramientas que asisten en la tarea de programación. Pero estas, como todo, también pueden ser modificadas o reemplazadas por otras.
A su vez, un ambiente de Smalltalk, incluye objetos para crear interfaces de usuarios gráficas. Todo escrito en Smalltalk, todo a la vista y todo modificable.
Centrándonos en el punto de vista de meros programadores mortales, podemos decir que Smalltalk:
- Incluye un lenguaje de programación.
- Incluye una librería de clases
- Incluye un entorno de desarrollo
Tanto el lenguaje, como la librería de clases y el entorno de desarrollo llevan más de 30 años de uso y depuración. No en vano Smalltalk ha sido la referencia para el desarrollo de lenguajes y entornos de desarrollo.