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.
Un programa Smalltalk consiste únicamente de
objetos, un concepto que se utiliza universalmente dentro de todo sistema
Smalltalk. Prácticamente todo, desde un número natural como el 4 hasta un servidor web es un objeto. Los objetos Smalltalk
presentan características comunes:
·
Poseen capacidad para comunicarse con otros objetos.
·
Poseen la capacidad de heredar características de objetos ancestros.
·
Tienen capacidad de procesamiento.
Los objetos se comunican entre sí mediante el envío de mensajes.. Asimismo, un objeto puede proveer muchas
operaciones (actualmente esto está determinado por cada implementación)
Las definiciones de estas operaciones en los
objetos son llamadas métodos. Un método
especifica la reacción de un objeto cuando recibe un mensaje que es dirigido a
ese método. La resolución (en el sentido de ligado) de un mensaje a un método
es dinámica. La colección entera de métodos de un objeto es llamada protocolo de mensajes ointerfaz de
mensajes del objeto. Los mensajes pueden ser
parametrizados, estos parámetros serán objetos, y el resultado o respuesta del
mismo también será un objeto.
Las características comunes de objetos está
capturado bajo la noción de clase, de tal forma que los objetos
agrupados bajo una clase son llamados instancias de ella. Las instancias son creadas durante la ejecución de un programa
con algún propósito y son barridos automáticamente en el momento que no son
necesitados más por el recolector de basura. Exceptuando algunos objetos
especiales como los muy simples, llamados literales (números, cadenas, etc), cada objeto tiene su propio estado local y
representa una instancia diferente de su clase.
CARACTERISTICAS
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:
·
Interacción entre objetos mediante envío de mensajes
·
Herencia simple y con raíz común
·
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.).
EL ENTORNO
Las implementaciones de Smalltalk de mayor peso (VisualWorks, Squeak, VisualSmalltalk, VisualAge, Dolphin, Pharo Smalltalk,
Smalltalk X) poseen un entorno de interacción muy diferente al entorno
de desarrollo típico de otras tecnologías como Microsoft
Visual Studio .Net o Eclipse. El entorno o
ambiente Smalltalk es primordialmente gráfico y funciona como un sistema
en tiempo de ejecución que integra varias herramientas de programación (Smalltalk), utilidades multimedia, interfaces para ejecutar código
no nativo a Smalltalk y
servicios del sistema operativo.1 Estas posibilidades, que han influido en la metodología de
trabajo y concepción de la programación, se traducen en la tendencia a
considerar a Smalltalk más que un simple lenguaje
de programación. La
forma de desarrollar software en Smalltalk no consiste en el ciclo típico de
las tecnologías tradicionales: Arrancar un editor de texto, compilar y ejecutar y terminar la aplicación. En Smalltalk se manipula
el entorno mismo, comúnmente mediante el Navegador del Sistema.
SINTAXIS
Tradicionalmente, Smalltalk no posee una notación explícita para
describir un programa entero. Sí se utiliza una sintaxis explícita para definir
ciertos elementos de un programa, tales como métodos, pero la manera en que
tales elementos están estructurados dentro de un programa entero generalmente
es definida por las múltiples implementaciones. El estándar
mismo no promueve otra dirección, por lo que define una sintaxis abstracta de
programas Smalltalk, que define todos los elementos que constituyen un programa
Smalltalk y la manera en que esos elementos están lógicamente compuestos por
otros elementos, sin embargo, cada implementación es libre de definir y
utilizar las muchas sintaxis posibles que están conformes a la sintaxis
abstracta estándar. Un ejemplo de una sintaxis concreta es el Formato de Intercambio Smalltalk (o SIF, de Smalltalk Interchange
Format) definida en el mismo estándar.
La sintaxis de Smalltalk-80 tiende a ser minimalista. Esto
significa que existen un grupo pequeño de palabras reservadas y declaraciones
en comparación con la mayoría de los lenguajes populares. Smalltalk posee un
grupo de 5 palabras reservadas: self, super, nil, true y false.
EJEMPLO DE SMALTALK
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 una clase:
ClaseDelObjeto new
Para obtener las vocales de una cadena de texto:
'Esto es un texto' select: [:aCharacter | aCharacter isVowel].
No hay comentarios:
Publicar un comentario