Smalltalk
De Wikipedia, la enciclopedia libre
Paradigma: | orientado a objetos |
---|---|
Apareció en: | 1969 |
Diseñado por: | Alan Kay |
Tipo de dato: | dinámico |
Implementaciones: | múltiples |
Influido por: | Simula, Sketchpad, LISP |
Ha influido: | Objective-C, Java, Self, Python, Ruby, AppleScript |
Smalltalk es un sistema informático que permite realizar tareas de computación mediante la interacción con un entorno de objetos virtuales. Se puede considerar que un Smalltalk es un mundo virtual donde viven Objetos que se comunican mediante el envio de mensajes.
Un sistema Smalltalk esta compuesto por:
- Máquina virtual
- Imagen virtual que contiene todos los objetos del sistema
- Lenguaje de programación (también conocido como Smalltalk)
- Biblioteca de Objetos reusables
- Entorno de desarrollo
Los orígenes de Smalltalk se encuentran en las investigaciones realizadas por Alan Kay, Dan Ingalls, Ted Kaehler, Adele Goldberg y otros durante los años setenta en el Palo Alto Research Institute de Xerox (conocido como Xerox Parc), para la creación de un sistema informático orientado a la educación. El objetivo era crear un sistema que permitiese expandir la creatividad de sus usuarios, proporcionando un entorno para la experimentación, creación e investigación.
Se busca que todo lo que se pueda realizar con un ordenador se pueda realizar mediante un Sistema Smalltalk, por lo que en algunos casos se puede considerar que incluso sirve como Sistema Operativo.
Smalltalk es considerado el primero de los lenguajes orientados a objetos (OOP). 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 Pura
- Tipado dinámico
- Interacción entre objetos mediante envio de mensajes
- Herencia simple y con raíz común
- Reflexión completa
- Recolección de basura
- Multiplataforma
- Compilación en tiempo de ejecución o Interpretado (dependiendo de la distribución o del proveedor)
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.).
A pesar de ser un lenguaje muy simple, muy poderoso, y que promueve buenas prácticas de programación, Smalltalk (hasta el 2002) no había llegado a ser un lenguaje muy popular. Esto se debe a la poca aceptación de lenguajes interpretados en los años 1980 y 1990. A pesar de esto algunas empresas como Digitalk, Visual Works e IBM llegaron a tener relativo éxito con la plataforma como una herramienta de desarrollo rápido que competía contra herramientas como Power Builder y en menor grado contra Visual Basic que eran muy populares en los años 80 y 90.
[editar] Ejemplos de Smalltalk
En Smalltalk todo es un objeto, y a un objeto se le envían mensajes. Por ejemplo:
1 + 1
Significa que al objeto "1" le enviamos el mensaje "+" con el colaborador externo, otro objeto, "1". Este ejemplo entonces resulta en el objeto "2".
Transcript show: '¡Hola, mundo!'
En el típico Hola mundo, el objeto es Transcript, que recibe el mensaje show con el colaborador externo '¡Hola, Mundo!'.
Para crear una instancia de un objeto, sólo hay que mandar un mensaje new a la clase:
Objeto new
[editar] Enlaces externos
- "Smalltalk.org" sitio de difusión (en inglés).
- "Why Smalltalk?" comunidad de desarrolladores Smalltalk (en inglés).
- "Squeak" entorno Smalltalk de fuente abierta (en inglés).
- GoodStart "Smalltalk" sitio de difusión(en inglés).
- The Early History of Smalltalk by Alan C. Kay
- Free Smalltalk Books online
- Smalltalking: Un espacio para el estudio y desarrollo usando Ambientes de Objetos virtuales
- Principios de Diseño de Smalltalk (traducido al castellano)
- Libro de Programación con Smalltalk de Diego Gómez Deck
- Wiki con documentación de Squeak (derivado de SmallTalk-80) en español
- Manual de introducción para principiantes de Squeak
- Traducción al Castellano del libro Powerful Ideas in the Classroom, con experiencias educativas usando Squeak en el aula.