logo

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