midulive
Transcribed podcasts: 605
Time transcribed: 13d 15h 9m 33s
This graph shows how many times the word ______ has been mentioned throughout the history of the program.
que iba a evolucionar bastante más rápido
en javascript y no
no han llegado bastante rápido
si no sabéis lo que son los récords y las tuplas
ya está en fase 2, o sea
quiero decir que sà que está avanzando
está en fase 2, esto significa que está ya por la mitad
del camino y
quizás dentro de poco lo veamos en fase 3
cuando esto esté en fase 3 esto va a ser un locurón
lo que son los récords y las tuplas
para que lo sepáis, esto estoy
bastante seguro, eso es un problema
porque los récords no son los de typescript
se llaman igual y no tienen nada que ver
el tema
que los récords y las tuplas de javascript
son tipos nuevos
de datos inmutables
básicamente un récord es
un objeto inmutable
y la tupla es un array
inmutable, esto
no os podéis ni imaginar
como va a sacudir
el mundo de
la programación en javascript
en typescript si que están las tuplas
no son lo mismo
no son lo mismo
las tuplas de typescript
no son lo mismo que las tuplas
de javascript
por eso os digo
ni los récords de typescript
ni las tuplas
son lo mismo que los récords
y las tuplas de javascript
de hecho no me extrañarÃa
que le cambiase el nombre
justamente por esto
porque es bastante problemático
que no se refieren a lo mismo
se puede ver en un playground
creo que esto vimos en algún momento
el tema
si
en typescript se puede
se puede hacer
como que sean
inmutables
pero el tipo
por dentro no es
inmutable
y el object freeze
al final
lo que tienes también
son diferentes problemas
lo que estás haciendo
es que
lo hagas
puedes hacer un object freeze
pero tienes que hacerlo
recursivo
vale
tú no puedes hacer un object freeze
de un objeto asà de primera
sino que
tienes que haber una recursividad
de entrar
a objetos anidados
y tal
igualmente
no puedes hacer una comparación
¿qué quiere decir esto?
tú no puedes hacer
por más que hagas un object freeze
¿vale?
para que os hagáis una idea
¿vale?
aunque tú hagas
esto
por ejemplo
bueno vamos a poner
b
c
es que aquà vais a ver
la potencia
que van a tener
justamente
los recurs y las tuplas
¿vale?
vale
pues por ejemplo esto
¿no?
aquà tenemos dos objetos
que parecen lo mismo
pero si yo hago esto
por más que tú hagas un object freeze
o sea yo hago aquÃ
un object freeze
de la a
y de la b
y esto
igualmente
no son iguales
¿no?
es que aquà es donde
yo creo que se va a ver mejor
la diferencia
vale
estos son los objetos
normal y corrientes
en javascript
que tú los tienes aquÃ
parecen iguales
pero cuando los comparas
te dice que son falso
bueno
aquà vais a ver realmente
la potencia
que tienen los records
y las tuplas
y esto
que parece una tonterÃa
esto tiene implicaciones
también de rendimiento
porque
por ejemplo
las comparaciones
que hace React
a los objetos
si ahora empiezas a utilizar tuplas
o records
va a ser mucho mucho más fácil
por ejemplo
para que nos hagamos
una idea
ahora si yo
voy a ver si podemos
bueno es que hay dos sintaxis
¿vale?
que se están viendo
una es asà con el hash
y otra es con otra
con otro
aunque veo que aquÃ
son iguales
bueno
vamos a compararlo
a ver si lo puedo comentar
todo esto
bueno
para crear
un record
¿vale?
un record serÃa como un objeto inmutable
lo que tienes que hacer
pues serÃa
lo mismo
pero
al principio
tendrÃas que poner un hash
y luego
para crear otro
que sea inmutable
pues tendrÃas que poner aquÃ
lo mismo
¿vale?
por ejemplo asÃ
ahora
lo que sà que realmente
es interesante
es que se deberÃan poder comparar
a ver
si ponemos aquÃ
un console.log
¿veis?
esto es
la mega diferencia
y es que
aquà tenemos
como dos records
que son iguales
y podemos ver
que se pueden comparar
y además
podéis empezar a anidarlos
también
o sea tú aquÃ
lo que podrÃas poner
es tener C
y tener aquà también
A1
¿vale?
pongamos que
los tenemos anidados
pues esto como puedes ver
también es true
o sea está viendo
incluso por dentro
y esta comparación
es ridÃculamente rápida
porque estamos teniendo
estructuras de datos
que son totalmente
inmutables
claro yo ahora
si intento
a decirle
A.A
o A.C
que sea hola
pues esto
ya te avisa
cannot assign to read
only property of object
no sé qué
o sea esto va a ser
la bomba
y ya está en fase 2
y esto de verdad
me parece que va a ser tremendo
¿es necesario meter un record
dentro de otro record?
efectivamente sÃ
porque fÃjate
mira lo que te dice
si intentas meter un objeto
te dice
type error
no puedes utilizar un objeto
como valor
dentro de un record
y tiene sentido
porque si tú quieres
que la estructura de datos
justamente
sea inmutable
no puedes hacer
que dentro de la inmutabilidad
metas una estructura de datos
que es mutable
porque si no a la mÃnima
esto lo rompes
por todos los sitios
ya
si utilizas un record
ya justamente
tienes que hacer esto
¿vale?
tienes que
ay perdón
tienes que hacerlo asÃ
porque si no
estarÃa rompiendo
serÃa demasiado fácil
serÃa muy fácil quebrarlo
no tiene sentido
esto mismo
claro
claro que puede servir
para la programación funcional
esto va a servir para la programación funcional
y para un millón de cosas
obviamente también esto lo podéis
podéis utilizar todas las funciones del objeto
por ejemplo
el object keys
se puede utilizar con los records
¿vale?
por ejemplo
object keys de la A
es que esto lo que va a venir un poco
es a sustituir los objetos
¿veis?
object keys de la A
pues aquà tenemos A y C
que son los dos keys que tenemos aquÃ
podéis utilizar todos
los object keys
el object values
todo
básicamente es como si fuese un objeto
pero inmutable
además pues también tenéis
el array
que con el array
pues lo vais a ver aquÃ
pues lo mismo
¿vale?
tenéis un, dos, tres
imagÃnate esto
other numbers
y a poder hacer esto
no me digáis que esto
no es para lamerlo
y pillarlo
fornicárselo
a escondidas
porque es que
me parece increÃble
poder hacer algo asÃ
en javascript
o sea
poder comparar
dos tuplas
estos serÃan tuplas
¿vale?
y hacer esto
true
o sea
comparar dos tuplas
que tiene lo mismo valores dentro
y que esto te dé true
esto va a ser increÃble
¿vale?
esto va a ser increÃble
esto va a ser la bomba
va a ser la bomba
y esto
y para que os hagáis una idea
de lo potente que es esto
fÃjate
voy a quitar este tres
le voy a poner un record dentro
¿vale?
y aquà le voy a poner otro record dentro
pues fÃjate
o sea
esto es una tupla
que tiene además un record dentro
y cuando los comparo los dos
me dicen que son true
es que esto va a ser increÃble
o sea
es que va a ser brutal
¿crees que serÃa bueno entonces
que sea sin taxis por defecto
sin hash?
no
algo asà como que en un futuro
se cambie
no
no
no
no
y no
no
no
no
Lucas
y te voy a decir por qué
¿vale?
es súper importante Lucas
aunque entiendo por dónde van los tiros
porque parece ¿no?
o sea
tiene sentido
esto parece mucho mejor
que lo que tenemos ahora
nunca jamás
y de hecho eso serÃa una equivocación
garrafal
que pudieran hacer eso
en javascript
es el hecho de que nunca
va a cambiar esto
al objeto
porque si no romperÃas
internet ¿sabes?
o sea que no va a pasar
jamás
jamás
uno de los grandes retos
a los que se enfrenta muchas veces javascript
a la hora de evolucionar
que no le pasa por ejemplo a typescript
o a otros lenguajes
es el hecho de que siempre tiene que ser retrocompatible
con todo el código que exista hoy en dÃa
hay unas pequeñas excepciones que han ocurrido
pero esto tienen datos de por ejemplo
esta funcionalidad
solo existe en un 0,01% de las webs
vale pues entonces es algo que podemos romper
¿sabes?
tienen como un baremo
pero en este caso
no podrÃan hacer esto
como una sintaxis por defecto
porque serÃa
demasiado rompedor
¿sabes?
demasiado rompedor
¿molarÃa a nivel nativo
detectar las diferencias entre objetos?
hostia pues
diferencias entre objetos
creo que no se puede
no sé si
pero tiene un montón de métodos
o sea
lo que os he enseñado
es solo
una parte
porque tiene un montón de cosas
por ejemplo
también tiene esto del box
o sea
tiene un montón de
de métodos aquÃ
vale
tiene la tupla
el box
que es para
para
box
my object
es como que puedas utilizar un objeto
dentro de un record
pero tienes un montón de métodos nuevos
bueno
igualdad
¿vale?
que esto es lo que os he enseñado
el tema de la igualdad
object model
pero tiene
tiene nuevos métodos
asà que
el from entries
este sÃ
bueno
se puede utilizar esto
el from
ah
puedes transformar fácilmente
de una array a una tupla
que eso también es brutal
o sea
el hecho de decir
que tú tienes aquÃ
pues numbers
tienes un dos tres
y decirle
immutable
immutable numbers
pues tú le dices
tuple
from numbers
y de esta forma
ya tendrÃamos
a ver
ah vale
porque he puesto esto
console.log
immutable numbers
o sea
hacerlo inmutable
serÃa tan fácil
como esto
le dices
tú tienes el array
y dices vale
créame una tupla
de los números
y ya tendrÃamos aquÃ
una estructura de datos
que es inmutable
esto va a ser increÃble
para el 2022
ya sé que
dice gracias
no lo conocÃa
ahora me dieron ganas
de tenerlo
a todo el mundo
con inmutable
quieres decir
que no cambiarÃa
para nada
con inmutable
quieres decir
que no cambiarÃa
para nada
como que no cambiarÃa
para nada
hombre
lo hace inmutable
que te parece
esto funciona
para TypeScript
esto no funciona
ahora mismo
para ningún sitio
o sea
esto es una cosa
que va a llegar
en 2022
a JavaScript
que como justamente
ojalá venga
con groupby
claro
groupby también
o sea
groupby va a funcionar
con esto
de hecho
es que
a ver
las tuplas son iterables
ves
como los arrays
las tuplas son iterables
lo que pasa
es que es verdad
que creo
que las tuplas
no tienen
acceso
ah pues sÃ
sÃ
mira sà que tiene acceso
parece que sÃ
que tiene acceso
a
tiene acceso
al for each
al map
y todo esto
según esto
o sea que
tiene buena pinta
bueno pues eso
para el año que viene
vale