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]