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:
- a la biología: pues tenemos un conjunto de entidades, permeables, cerradas y con funcionamiento propio, como las células.
- a la mátemática: pues tenemos un conjuto de mensajes que permite operar a las entidades anterior, similares a las álgebras.
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
- Todo es un mensaje y todo es un objeto
- Los objetos pueden comunicarse con otros objetos o consigo mismo. Los objetos tienen características reflexiva o de introspección: saber sobre su propio estado.
Tenemos varios mecanismos para modelar la complejidad,
entre ellos composición y herencia.
- composición permite modelar objetos complejos, a partir de objetos más sencillos (si modelamos perros y gatos, podemos modelar el refugio animal).
- Herencia: que podemos saber que un conjunto comparte comportamientos con el conjunto que lo contiene, a la vez que especializa ciertos comportamientos.
Para ambos usamos las clases:
-
Clases: Organizan un discurso del mundo a través de la contenencia.
- Operan como los conjuntos y sus contenencia. Ver imagen de los ojos chuecos enloquecidos.

-
Mensaje: qué le pido a un objeto.
-
Método: cómo implemento lo que pido.
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
- Número
- Caracter
- Cadena.
- Booleano.
Tipos de mensajes
Cuando computamos,
son importantes dos cosas:
- Cómo representamos la información (Objetos)
- Cómo manipulamos la información (Mensajes)
Los mensajes tienen tres tipos:
Unarios
Del tipo objeto mensaje
'anita lava la tina' reversed
3 factorial
Binarios
Del tipo objeto operador argumento
- Objeto:
1
- operador:
+
- argumento:
2
- objeto:
estamos
- operador:
,
- argumento:
locos!
Keyword
De la forma:
receptor keyword!: arg1 {keword2: arg2}
- receptor: 3
- mensaje:
between: and:
- argumentos:
2 y 5