La historia perdida de la programación orientada a objetos: Alan Kay

00:13:17
https://www.youtube.com/watch?v=SzHCqiyxPnA

الملخص

TLDREl video aborda la diferenciación entre leyendas de la informática y figuras comerciales como Steve Jobs, Bill Gates y Mark Zuckerberg, destacando que, aunque estas figuras comercializaron ideas de manera efectiva, no hicieron aportes innovadores a nivel tecnológico como lo hizo Alan Kay, famoso por la programación orientada a objetos. Se explica cómo las ideas de Alan Kay sobre objetos comunicándose mediante mensajes eran revolucionarias y se apartan de la implementación tradicional observada en lenguajes como C++. Además, se detalla el contexto histórico y técnico de la programación funcional y orientada a objetos, resaltando influencias clave como el cálculo lambda y la máquina de Turing. El video también explora conceptos modernos como promesas y lenses, alineándolos con las visiones de Alan Kay, y concluye con un ejemplo práctico ilustrando la comunicación mediante mensajes, enfatizando la flexibilidad y adaptabilidad de esta arquitectura en comparación con enfoques orientados a clases más convencionales.

الوجبات الجاهزة

  • 💡 Steve Jobs, Bill Gates y Mark Zuckerberg son vistos como leyendas comerciales, no informáticas.
  • 📚 La programación orientada a objetos tuvo su inspiración en trabajos de Alan Kay.
  • 🖥️ La programación funcional e imperativa se remonta a los años 30 con el cálculo lambda y la máquina de Turing.
  • 🔀 Alan Kay promovió sistemas de mini computadoras que se comunican mediante mensajes.
  • 🚫 La implementación de C++ es criticada como una mala representación de la visión de orientación a objetos de Kay.
  • 📜 Smalltalk, desarrollado por Alan Kay, es considerado más puro en orientación a objetos que Simula.
  • ⚙️ El modelo de objetos de Alan Kay enfatiza comunicación y encapsulamiento de estado.
  • 🔍 Las promesas y lenses se utilizan para manejar datos asíncronos y mutables de forma funcional.
  • 🌐 ARPANET sirvió de inspiración para conceptos de sistemas distribuidos y comunicación.
  • 🔄 La verdadera programación orientada a objetos se centra en adaptabilidad y comunicación en tiempo de ejecución.

الجدول الزمني

  • 00:00:00 - 00:05:00

    En el video se discute por qué ciertas figuras como Steve Jobs, Bill Gates y Mark Zuckerberg no son consideradas leyendas de la informática, sino leyendas del mundo comercial. Aunque hicieron innovaciones significativas, su impacto se centra más en la distribución y comercialización que en la innovación técnica pura. Se menciona a 'la and cake como un creador destacado en programación, específicamente en la programación orientada a objetos, pero también se señala que las implementaciones modernas de este paradigma, como en C++, no reflejan fielmente sus conceptos originales.

  • 00:05:00 - 00:13:17

    La programación orientada a objetos tiene sus raíces en las ideas de Alan Kay, quien se inspiró en biología y los primeros diseños de ARPANET para conceptualizar sistemas donde los objetos se comunican exclusivamente mediante mensajes. Kay lamentó haber popularizado el término "objeto" debido a su malinterpretación. La verdadera orientación a objetos, según Kay, se centra en la comunicación entre objetos a través de mensajes, encapsulando y protegiendo sus estados internos. Este enfoque ha influido en tecnologías modernas y conceptos como promesas y "lenses", reflejando la importancia de aplicar principios matemáticos y científicos a la computación.

الخريطة الذهنية

Mind Map

فيديو أسئلة وأجوبة

  • ¿Por qué Steve Jobs y Bill Gates no son considerados leyendas de la informática en el video?

    El video argumenta que Steve Jobs y Bill Gates son leyendas del mundo comercial porque tomaron ideas existentes y las distribuyeron de manera efectiva, mientras que las verdaderas leyendas de la informática son aquellas que contribuyeron a nuevos desarrollos técnicos.

  • ¿Qué es la programación orientada a objetos según Alan Kay?

    Para Alan Kay, la programación orientada a objetos implica programar con objetos cuyo estado está encapsulado y comunicarse mediante mensajes, permitiendo una arquitectura flexible y desacoplada.

  • ¿Qué críticas se mencionan sobre la implementación de orientación a objetos de C++?

    El video menciona que la implementación de C++ no refleja la verdadera esencia de la orientación a objetos como la concebida por Alan Kay, incluso siendo considerada penosa.

  • ¿Cuál es la relevancia de la máquina de Turing y el cálculo lambda discutida en el video?

    La máquina de Turing y el cálculo lambda son fundamentales en las bases de la computación, ya que demostraron ser sistemas equivalentes para el cálculo y establecieron las bases para la programación funcional e imperativa.

  • ¿Qué importancia tienen las promesas y los lenses en la programación moderna según el video?

    Las promesas y los lenses son conceptos en programación que facilitan la manipulación de datos y la ejecución de código de manera asíncrona manteniendo un enfoque funcional, y están relacionadas con las teorías que Alan Kay promovía.

  • ¿Cómo influenció Alan Kay en el desarrollo de Internet?

    Alan Kay se basó en los primeros diseños de ARPANET para desarrollar sus ideas sobre sistemas distribuidos y el modelo de comunicación mediante mensajes.

عرض المزيد من ملخصات الفيديو

احصل على وصول فوري إلى ملخصات فيديو YouTube المجانية المدعومة بالذكاء الاصطناعي!
الترجمات
es
التمرير التلقائي:
  • 00:00:00
    hace poco vimos un total de 10 leyendas
  • 00:00:03
    de la informática muchos de ustedes se
  • 00:00:04
    enojaron porque no aparecieron grandes
  • 00:00:06
    figuras de la revolución informática que
  • 00:00:08
    han habido en los últimos tiempos como
  • 00:00:10
    steve jobs bill gates o mark zuckerberg
  • 00:00:13
    pero en mi opinión ellos no son leyendas
  • 00:00:16
    de la informática sino que son leyendas
  • 00:00:18
    del mundo comercial steve jobs como
  • 00:00:21
    cosas que ya existían y las volvió
  • 00:00:23
    irresistibles y bill gates tampoco
  • 00:00:25
    inventó nada pero toma un computador
  • 00:00:27
    personal en conjunto con un sistema
  • 00:00:29
    operativo y se encargó de ponerlo en
  • 00:00:32
    casi todos los hogares del mundo y marck
  • 00:00:34
    zuckerberg no inventó las redes sociales
  • 00:00:36
    éstas ya existían hace mucho tiempo y en
  • 00:00:38
    mi opinión tomar cosas que ya existen
  • 00:00:41
    porque las inventaron otras personas y
  • 00:00:43
    distribuirlas de la manera que lo
  • 00:00:45
    hicieron ellos por supuesto que es un
  • 00:00:47
    mérito legendario pero comercial no
  • 00:00:50
    informático pero una de las personas que
  • 00:00:53
    aparece en este listado es 'la and cake
  • 00:00:55
    el creador de la programación orientada
  • 00:00:57
    a objetos pero también mencionó que la
  • 00:01:00
    programación orientada a objetos no se
  • 00:01:02
    parece en nada a lo que implementó sé
  • 00:01:04
    más más y ya va tampoco
  • 00:01:06
    reconocido como la implementación de
  • 00:01:08
    orientación objetos de arán key e
  • 00:01:11
    incluso dándole el adjetivo de penoso
  • 00:01:13
    hallaba entonces aquí se refería a la
  • 00:01:16
    ley con programación orientada a objetos
  • 00:01:18
    la respuesta a continuación
  • 00:01:22
    [Música]
  • 00:01:25
    hola mundo y bienvenidos a este vídeo la
  • 00:01:28
    programación funcional e imperativa
  • 00:01:30
    tienen muchos años de existir y es la
  • 00:01:33
    que es utilizada hoy en día ambas fueron
  • 00:01:35
    exploradas en 1930 con el cálculo lambda
  • 00:01:38
    de alonso church y la máquina de turing
  • 00:01:40
    de alan turing en la tesis de church
  • 00:01:42
    touring se demuestra que el cálculo
  • 00:01:44
    lambda y la máquina de turing son
  • 00:01:46
    equivalentes donde todo lo que sea
  • 00:01:48
    computable por la máquina de turing
  • 00:01:50
    también es computable por el cálculo
  • 00:01:52
    lambda el cálculo lambda representa una
  • 00:01:54
    visión de alto nivel con un enfoque de
  • 00:01:57
    aplicación de funciones para la
  • 00:01:59
    computación mientras que la máquina de
  • 00:02:01
    turing representa una visión de bajo
  • 00:02:03
    nivel paso a paso de la computación o en
  • 00:02:07
    otras palabras imperativa acá me voy a
  • 00:02:10
    detener un poco el cálculo lambda se
  • 00:02:12
    utiliza para poder representar a nivel
  • 00:02:14
    matemático y humano el funcionamiento de
  • 00:02:16
    un código sin necesariamente
  • 00:02:18
    implementarlo el cálculo la verdad tú lo
  • 00:02:20
    puedes hacer en papel es un sistema
  • 00:02:22
    formal en matemática lógica que se
  • 00:02:24
    utiliza para expresar computación en
  • 00:02:27
    funciones y variables es un modelo
  • 00:02:29
    universal que se utiliza para simular
  • 00:02:32
    máquinas de touring utilizando la
  • 00:02:34
    matemática en lugar del código de
  • 00:02:36
    máquina lenguajes de bajo nivel como el
  • 00:02:38
    código de máquina o assembly nacieron
  • 00:02:40
    recién en 1940 y para finales de 1950
  • 00:02:44
    aparecieron los primeros lenguajes de
  • 00:02:46
    alto nivel como list fortran y google
  • 00:02:48
    for tran y kobol fueron después ser
  • 00:02:50
    reemplazados por las familias dc y los
  • 00:02:52
    diales 2 de liszt hoy en día siguen
  • 00:02:54
    siendo muy utilizados como cloud your
  • 00:02:56
    skin ambos programación funcional y
  • 00:02:59
    programación imperativa tienen sus
  • 00:03:01
    raíces en las matemáticas y en las
  • 00:03:03
    ciencias de la computación pero la
  • 00:03:05
    programación orientada a objetos fue un
  • 00:03:07
    término acuñado por alan jay en 1966 o
  • 00:03:12
    1967 el año no está muy claro porque no
  • 00:03:15
    existe un registro claro de cuál de
  • 00:03:17
    estos dos años fue pero fue cuando alan
  • 00:03:19
    que se encontraba asistiendo a la
  • 00:03:20
    universidad el término de programación
  • 00:03:23
    orientada a objetos tuvo su inspiración
  • 00:03:24
    en sketch para un programa de
  • 00:03:26
    computación escrito por iván suderland
  • 00:03:29
    en 1963 mientras se desarrollaba la
  • 00:03:32
    tesis de su doctorado por el cual él
  • 00:03:34
    recibió el premio turing en 1988 y el
  • 00:03:36
    premio kioto en el 2012
  • 00:03:39
    fue el primer software que se creó de la
  • 00:03:41
    familia cat donde se podían ver
  • 00:03:43
    estructuras de objetos en las pantallas
  • 00:03:45
    estos objetos podrían ser considerados
  • 00:03:47
    un máster y sus instancias o más copias
  • 00:03:50
    se llamaban ocurrencias el primer
  • 00:03:52
    lenguaje que se reconoció actualmente
  • 00:03:54
    como orientado a objetos se llama simula
  • 00:03:57
    especificado en 1965 y como sketch pad
  • 00:04:00
    simula tenía objetos y eventualmente
  • 00:04:03
    introdujo clases subclases herencia y
  • 00:04:07
    métodos virtuales ya que tenemos un poco
  • 00:04:09
    del contexto histórico ahora vamos a ver
  • 00:04:11
    qué es lo que tenía a alan kay en mente
  • 00:04:13
    su principal idea era encapsular mini
  • 00:04:15
    computadoras el software y que éstas se
  • 00:04:17
    comunicarán a través de mensajes para
  • 00:04:19
    compartir sus datos y de esta manera
  • 00:04:21
    romper el esquema de estructura de datos
  • 00:04:23
    y procedimientos o sea que si nosotros
  • 00:04:26
    tuviésemos dibujar la programación
  • 00:04:29
    orientada a objetos de alan keen se
  • 00:04:32
    vería algo muy similar a esto donde no
  • 00:04:35
    sólo tenemos tres sistemas que éstos se
  • 00:04:38
    encuentran construidos incluso en
  • 00:04:40
    lenguaje de programación distintos y
  • 00:04:42
    estos se comunican entre sí
  • 00:04:46
    12 mensajes small tok fue desarrollado
  • 00:04:49
    por alan que quitan ingalls en el
  • 00:04:51
    goldberg y más desarrolladores en xerox
  • 00:04:54
    este era más considerado orientado a
  • 00:04:56
    objetos comparado con simula tenían
  • 00:04:58
    objetos clases enteros y closer las
  • 00:05:02
    primeras versiones de ese montón no
  • 00:05:04
    soportaban subclases estas fueron
  • 00:05:06
    introducidas más adelante por dan
  • 00:05:07
    ingalls e incluso su monto obteniendo
  • 00:05:10
    clases y subclases es montón no se
  • 00:05:12
    trataba de las clases este era un
  • 00:05:14
    lenguaje funcional inspirado en louis y
  • 00:05:16
    también en simular y hagan que considera
  • 00:05:18
    de que las subclases son una distracción
  • 00:05:21
    del verdadero beneficio que te entrega
  • 00:05:24
    la orientación a objetos más adelante en
  • 00:05:26
    su vida a alan key pidió disculpas
  • 00:05:28
    públicas diciendo que se arrepentía de
  • 00:05:31
    haber utilizado el término objeto ya que
  • 00:05:33
    él confundió a toda una industria
  • 00:05:35
    incluso hasta el día de hoy la idea
  • 00:05:37
    general que él quería transmitir era
  • 00:05:39
    mensaje
  • 00:05:41
    vamos a mencionar ahora aquí cosas son
  • 00:05:43
    esenciales para la programación
  • 00:05:45
    orientada a objetos de aland key número
  • 00:05:47
    uno no puede tener un estado mutable
  • 00:05:50
    compartido la única forma en el que el
  • 00:05:52
    estado de tu aplicación mudé es a través
  • 00:05:54
    de un mensaje y el estado de tu
  • 00:05:56
    aplicación es controlado solamente de
  • 00:05:58
    manera local número 2 desacoplado los
  • 00:06:01
    sistemas solamente pueden estar
  • 00:06:03
    acoplados por un emisor y un receptor y
  • 00:06:06
    estos sistemas se comunican única y
  • 00:06:08
    exclusivamente a través del emisor y del
  • 00:06:11
    receptor número 3 adaptable flexible y
  • 00:06:15
    resistente a los cambios todas estas
  • 00:06:17
    ideas que está mencionando alan que
  • 00:06:19
    tuvieron su origen en las células debido
  • 00:06:22
    a toda la experiencia que tenía a alan
  • 00:06:24
    kay en biología antes y también se basó
  • 00:06:27
    en los primeros diseños de arpanet
  • 00:06:31
    esta era una versión anterior a internet
  • 00:06:35
    como la conocemos hoy en día
  • 00:06:36
    alan que también vio que los objetos
  • 00:06:38
    poseían estructuras algebraicas por lo
  • 00:06:41
    cual se pueden esperar ciertas garantías
  • 00:06:43
    de estos objetos como por ejemplo del
  • 00:06:46
    comportamiento que éstos van a tener y
  • 00:06:48
    esto último se demostró ser cierto y
  • 00:06:51
    estas cosas todavía se están aplicando
  • 00:06:53
    hoy en día cuando estamos desarrollando
  • 00:06:55
    algunas de las leyes que él vio hoy en
  • 00:06:57
    día nosotros las conocemos como promesas
  • 00:07:00
    o lenses ambos inspirados en teorías de
  • 00:07:04
    categorías acá vamos a parar un poco ya
  • 00:07:06
    que hemos visto varios nombres que
  • 00:07:07
    podrían sonar un poco confusos las
  • 00:07:09
    promesas son objetos que funcionan como
  • 00:07:12
    un proxy y para un resultado que
  • 00:07:14
    inicialmente tiene un valor desconocido
  • 00:07:15
    en otras palabras una promesa es un
  • 00:07:18
    objeto que se desconoce su valor hasta
  • 00:07:21
    que ésta obtenga el valor que nosotros
  • 00:07:23
    estábamos esperando en otros lenguajes
  • 00:07:25
    estos se llaman futuros tareas deferr la
  • 00:07:29
    implementación de estos puede variar un
  • 00:07:31
    poco dependiendo del lenguaje pero el
  • 00:07:32
    objetivo es el mismo obtener un valor en
  • 00:07:36
    el futuro los lances te permiten obtener
  • 00:07:38
    asignar valores pero con un estilo
  • 00:07:41
    funcional teoría de categoría es la
  • 00:07:43
    formalización de estructuras matemáticas
  • 00:07:46
    y sus conceptos donde tú vas a obtener
  • 00:07:49
    grupos de objetos
  • 00:07:52
    llamados todos estos la categoría y vas
  • 00:07:56
    a tener distintas transformaciones entre
  • 00:07:59
    estos objetos llamados more fish moss
  • 00:08:02
    ahora volviendo al tema principal con
  • 00:08:04
    estas cosas a la pnc y se dio cuenta que
  • 00:08:06
    él podía realizar verificaciones
  • 00:08:08
    matemáticas formales y con resultados
  • 00:08:11
    esperables una realización de pruebas
  • 00:08:14
    muy superior ya que utilizando álgebra
  • 00:08:16
    él podía llegar a los resultados que él
  • 00:08:18
    quería en este aspecto cuando nosotros
  • 00:08:20
    decimos álgebra nos referimos a las
  • 00:08:22
    abstracciones creadas por funciones las
  • 00:08:24
    cuales son soportadas por leyes
  • 00:08:26
    matemáticas y por test unitarios que
  • 00:08:29
    estas funciones tienen que pasar todos
  • 00:08:31
    estos conceptos fueron olvidados por
  • 00:08:32
    décadas pero esto se están volviendo a
  • 00:08:35
    incluirse en lenguajes modernos como
  • 00:08:37
    javascript o python entonces qué es un
  • 00:08:40
    objeto
  • 00:08:44
    los objetos han tenido una connotación
  • 00:08:46
    muy diferente a lo que se refería al and
  • 00:08:49
    key en javascript un objeto es un tipo
  • 00:08:51
    de dato no tiene implicancias de un
  • 00:08:54
    lenguaje basado en clases ni tampoco la
  • 00:08:57
    programación orientada a objetos de alan
  • 00:08:58
    que en el general
  • 00:09:00
    hoy en día un objeto significa muchísimo
  • 00:09:03
    menos de lo que se refería al and cake
  • 00:09:04
    con objeto pero para alan que la
  • 00:09:07
    verdadera programación orientada a
  • 00:09:08
    objetos significa lo siguiente número
  • 00:09:10
    uno programar con objetos número dos el
  • 00:09:14
    estado de estos objetos debe estar
  • 00:09:16
    encapsulado y no puede ser accedido
  • 00:09:18
    libremente número tres se deben utilizar
  • 00:09:21
    mensajes para poder comunicarse entre
  • 00:09:24
    los distintos objetos y número cuatro
  • 00:09:26
    los objetos pueden ser agregados y dados
  • 00:09:30
    o modificados en el runtime de la
  • 00:09:33
    aplicación vamos a hacer un pequeño
  • 00:09:35
    ejemplo ahora de programación orientada
  • 00:09:36
    a objetos de alan kay y para nuestro
  • 00:09:39
    emisor y receptor de mensajes
  • 00:09:40
    utilizaremos la convención de despachar
  • 00:09:43
    un mensaje vamos a tener acá una vista
  • 00:09:45
    la cual va a contener un botón y este
  • 00:09:48
    botón va a tener el texto de ok
  • 00:09:51
    cuando nosotros presionemos este botón
  • 00:09:53
    vamos a despachar un evento le vamos a
  • 00:09:56
    dar a los eventos en forma de un círculo
  • 00:09:58
    y este va a ser el evento de guardar los
  • 00:10:01
    datos que estaban asociados con este
  • 00:10:04
    botón luego de eso nosotros vamos a
  • 00:10:06
    tener un objeto acá vamos a indicar que
  • 00:10:09
    es un cuadrado y este objeto cuando se
  • 00:10:12
    da cuenta que se despachó este evento de
  • 00:10:14
    guardar él lo que hará será actualizar
  • 00:10:17
    sus mismos datos va a actualizar su
  • 00:10:19
    estado y luego de actualizar su estado
  • 00:10:22
    él va a despachar otro evento y este
  • 00:10:26
    evento va a indicar que los datos han
  • 00:10:29
    sido actualizados además de esto
  • 00:10:31
    nosotros vamos a tener otro objeto que
  • 00:10:34
    se va a encargar de actualizar la vista
  • 00:10:36
    vamos a indicar que este objeto tiene la
  • 00:10:39
    letra de corta cuando este objeto reciba
  • 00:10:42
    este evento que los datos han sido
  • 00:10:44
    actualizados él lo que hará será
  • 00:10:46
    encargarse de actualizar nuestra vista
  • 00:10:49
    en este caso va a ser nuestro botón a su
  • 00:10:52
    vez también existe un servidor en la red
  • 00:10:55
    el cual va a estar escuchando estos
  • 00:10:59
    eventos que se están disparando él va a
  • 00:11:01
    escuchar cuando se despachó este evento
  • 00:11:04
    de guardar el lo que hará será
  • 00:11:08
    interceptarlo vamos a colocar nuevamente
  • 00:11:11
    la quiaca para que sea más fácil de
  • 00:11:12
    seguir
  • 00:11:14
    una vez de que él lo escucho se va a
  • 00:11:16
    encargar de disparar otro evento el cual
  • 00:11:19
    le va a indicar al servidor de base de
  • 00:11:22
    datos que tiene que guardar estos datos
  • 00:11:26
    y el servidor de base de datos va a
  • 00:11:28
    estar escuchando esto y bueno yo creo
  • 00:11:31
    que tú ya entendiste ese punto estos
  • 00:11:33
    componentes que nosotros acabamos de ver
  • 00:11:35
    no tienen ni siquiera por qué estar
  • 00:11:37
    dentro de la misma máquina el sistema
  • 00:11:39
    puede estar completamente
  • 00:11:40
    descentralizado e incluso en distintas
  • 00:11:43
    partes del mundo lo bueno que esto tiene
  • 00:11:45
    es que cualquier objeto o componente de
  • 00:11:49
    nuestro sistema podría ser reemplazado
  • 00:11:52
    en caliente sin necesidad de detener
  • 00:11:55
    nuestros servicios y esto permite que el
  • 00:11:58
    correcto funcionamiento de nuestro
  • 00:12:00
    sistema no se vea alterado ahora que ya
  • 00:12:04
    sabes lo que es la verdadera
  • 00:12:05
    implementación de la orientación objetos
  • 00:12:08
    y como dijo eric el yo es momento de
  • 00:12:11
    hacerles saber al mundo que su
  • 00:12:13
    experimento de herencia por clases ha
  • 00:12:16
    fracasado y ya es momento de volver a
  • 00:12:19
    abrazar las matemáticas y las
  • 00:12:21
    ciencias de la computación para que
  • 00:12:23
    podamos resolver los problemas ya que en
  • 00:12:26
    estos principios se fundó la verdadera
  • 00:12:29
    programación orientada a objetos y este
  • 00:12:32
    fue el vídeo esta semana sí que te gustó
  • 00:12:34
    recuerda golpear mucho el maldito del
  • 00:12:36
    botón de me gusta si es que te encantó
  • 00:12:38
    considera también suscribirte a este
  • 00:12:39
    canal déjame un comentario cada abajo
  • 00:12:41
    que otro tipo de vídeos de gustaría que
  • 00:12:43
    yo hiciera y si deseas profundizar en
  • 00:12:45
    alguna materia
  • 00:12:45
    por supuesto que acá abajo también vas a
  • 00:12:47
    encontrar links con acceso a todos mis
  • 00:12:50
    cursos hasta la próxima y chau mundo
  • 00:12:53
    [Música]
  • 00:13:09
    [Música]
الوسوم
  • programación
  • Steve Jobs
  • Bill Gates
  • Alan Kay
  • programación orientada a objetos
  • lenguajes de programación
  • cálculo lambda
  • Alan Turing
  • Smalltalk
  • desarrollo de software