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

  • Anjana Vakil - Oops! OOP’s not what I thought | Øredev 2018

  • Object Oriented Programming is not what I thought - Talk by 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. :eyes:
  • 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

1 + 2
  • Objeto: 1
  • operador: +
  • argumento:2
'estamos ' , 'locos!'
  • objeto: estamos
  • operador: ,
  • argumento: locos!

Keyword

De la forma:

receptor keyword!: arg1 {keword2: arg2}

3 between: 2 and: 5
  • receptor: 3
  • mensaje: between: and:
  • argumentos: 2 y 5
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 Anjana Vakil - Oops! OOP’s not what I thought | Øredev 2018 Object Oriented Programming is not what I thought - Talk by 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 1 + 2 Objeto: 1 operador: + argumento:2 'estamos ' , 'locos!' objeto: estamos operador: , argumento: locos! Keyword De la forma: receptor keyword!: arg1 {keword2: arg2} 3 between: 2 and: 5 receptor: 3 mensaje: between: and: argumentos: 2 y 5
{"breaks":false}