3 months ago 13 views

Smalltalk

Haremos una introducción a la computación desde la escuela de Smalltalk, siguiendo la idea de genealogías difractivas de Janeke Adema en Living Books, que rehistorizan la computación alejándola de unos orígenes púramente militarista y de postguerra.

Iniciado en los 70’s con el grupo de Xerox Palo Alto Ver Smalltalk en la Wikipedia

Según Alan Kay, la computación tiene una definición recursiva: un computador está hecho computadores más pequeños que se envían mensajes entre sí.

Computación: definición recursiva tldraw.

En ese sentido, él afirmaba que la computación tiene símiles:

Continuando la métáfora de las células, la idea es que se puede modelar complejidad a través de la agregación de unidades más sencillas: las células conforman tejidos, que conforman órganos, que conforman tejidos, que conforman cuerpos.

Para más información hay un par de charlas interesantes de Anjana Vakil

Para una historia larga y difractiva de la computación, en particular de Smalltalk puede encontrarse en la tesis doctoral de filosofía Tracing the Dynabook, James W. Maxwell

Alan Kay dice que, desafortunadamente, cuando el ayudó a nombrar la Programación Orientada a Objetos, eligió un mal nombre, pues debió ser Programación Orientada a Mensajes, pues los objetos son una idea menor y lo clave son los mensajes.

Intro a los objetos:

Ejemplo inicial de objetos

Tenemos varios mecanismos para modelar la complejidad, entre ellos composición y herencia.

Para ambos usamos las clases:

Un listado de mensajes, subrayados en rosado.

Al cliquear en el triangulito, podemos ver el método.

Datos primitivos y mensajes

Si queremos modelar objetos complejos, tenemos que tener cierta familiaridad con los objetos preexistentes, pues en Smalltalk, a diferencia de la mayoría de lenguajes y entornos de programación, no tomamos texto que luego convertimos en un sistema de cómputo (como en Python, C/C++, Lua, Nim), sino que tomamos un entorno de computo preexistente y lo vamos modificando hasta que lo convertimos en el entorno que queremos. Saber qué viene incluido y cómo explorar el entorno preexistente nos ayuda en ese tránsito.

Tipos de basicos datos

Son objetos con los cuales creamos más objetos. Entres los tipos básicos

Tipos de mensajes

Cuando computamos, son importantes dos cosas:

Los mensajes tienen tres tipos:

Unarios

Del tipo objeto mensaje

'anita lava la tina' reversed 3 factorial

Binarios

Del tipo objeto operador argumento

1 + 2
'estamos ' , 'locos!'

Keyword

De la forma:

receptor keyword!: arg1 {keword2: arg2}

3 between: 2 and: 5