midulive
Transcribed podcasts: 605
Time transcribed: 13d 18h 38m 6s
This graph shows how many times the word ______ has been mentioned throughout the history of the program.
se vienen cosas brutales con javascript y es que el otro día vi este pedazo de tweet que te voy a
enseñar ahora egmascript excitement va a haber una reunión que va a estar en bloomberg en tokio y
ojo con la agenda de cosas que iban a llegar a javascript que iban a estar comentando async
context decimal import attributes internacionalización del message format negar in pattern
matching structs tdz throw expressions type annotations sólo por estas cosas es espectacular
no me va a dar tiempo hoy a ver una a una y explicártelas y cada una está en diferentes
niveles no hay unas que están más cerca otras que están más lejos pero hoy hay una que sí que me
gustaría enseñarte para que te vaya sonando porque a mí personalmente me parece increíble me parece
brutal creo que si llega va a ser tremendo vale creo que va a ser una cosa brutal y que va a hacer que
javascript suba un peldaño más especialmente a su viaje para convertirse en un lenguaje de programación
más funcional entonces las type annotations supongo ya sabéis todos que esto es como para añadir tipos
como si fuese typescript pero que serían comentarios veo muchos errores de mucha gente e incluso de
creadores de contenido que se creen que las type annotations es añadirle tipos a javascript y no es
exactamente así las type annotations es añadirle comentarios que son de tipos a javascript que quiere
decir javascript no va a tener tipos o sea que van a ignorarlo tú podrás poner que una variable es un
string y le podrás asignar un número porque javascript no fallará porque va a entender que
es como un comentario que estás diciendo que eso debería ser un string pero tú vas a hacer luego
lo que te la gana algo más parecido a lo que hace python lo que pasa es que la sintaxis sí que se
podría reutilizar con lo que estamos haciendo con typescript y esa es un poco la idea hay muchas
cosas interesantes pero me voy a quedar con el pattern matching vamos a ver un poquito qué es el pattern
matching por qué es tan interesante al menos a mí porque me llama tanto tanto la atención mira pattern
matching es algo que lo tenemos desde hace mucho tiempo en algún otro lenguaje de programación por
ejemplo en rust tiene algo bastante parecido y sería una alternativa a switch pero funcional con
programación funcional para mí switch ya sabéis que a mí no me gusta mucho switch porque es una
estructura de control que tiene muchísimo código boilerplate además tienes que es bastante imperativa
donde tienes que decir dónde tiene que terminar a la hora de ejecutar una función no sé a mí no me gusta
mucho también que os guste y todo esto no pasa nada pero el tema es que el pattern matching durante
mucho tiempo siempre se ha visto como una alternativa mucho mejor porque estás evitando muchos de los
errores que tiene switch a la hora de cómo controlar los cases que le tengas que poner un break que te
hace hacer un reto un seguro que el ámbito de ejecución de switch es ambiguo porque va por llaves no va
por llaves y tal es bastante complicado mira ser mejor que switch el tema es que switch está bien pero en
muchas en muchos casos puede ser incluso más problemático que otra cosa entonces vamos a ver
un poquito de dónde viene cómo lo van a hacer hay una biblioteca de typescript que os recomiendo
bastante que se llama ts pattern que está muy interesante es una biblioteca y por lo tanto la
tendréis que importar pero es una con la que podéis hacer pattern matching y fijaos qué bonito es o sea
importas match y decís match result y cuando el tipo es esto entonces hago esto y fíjate que es con un con
una función y directamente ya ejecutas esto y la verdad que está súper súper bien puedes hacer que sea
exhaustiva o sea exhaustiva puede ser que ejecute sólo un caso o que puedas ejecutar más de un caso que es una
cosa que con switch también bastante más complicado imagínate poder tener un switch que pueda entrar en más de un
caso pero o de un solo caso y que tú lo puedas controlar mucho más fácil que no teniendo que ponerlo en el caso
de cada uno sino al final decirle o que sólo sea uno o que pueda entrar en más de uno bueno total aquí tendrías un ejemplo
este sería la sintaxis por ejemplo haces un match de la respuesta cuando la respuesta y fíjate que no tienes
ni una comparación en esta parte del when sino que dices cuando el rest tiene el status 200 body rest y tal
entonces haríamos esto y aquí en el when fíjate que aquí sí que puedes llegar a hacer más cosas aquí sí que
puedes decirle status destination y le pones después cuando el if o sea le haces if si el status es menor que
300 o sea le puedes poner condiciones extras para ir incluso más allá y esta sería un poquito la
sintaxis tienes un caso por defecto también lo puedes poner sin ningún problema pero fíjate que es como
mucho más de ejecutar directamente la función o el código puedes decirle cuando pase esto entonces haz
esto otro la expresión de match es mucho más funcional que te permite como entender mucho mejor el
código ahora te voy a decir una cosa antes de que te asustes vale porque cuando se ve por primera vez la
gente se asusta y tal sabes lo bueno de esto porque luego esto en youtube cuando llegue este vídeo a
youtube mucha gente me pondrá el comentario me dirá yo no entiendo por qué ponen esto lo están
complicando están complicando el lenguaje no sé qué no sé cuánto y a lo mejor tiene razón pero pero nadie
ni nada te obligará a que utilices esto quiero decir que esto muchas veces está súper bien porque te da una
alternativa a utilizar la programación funcional que hay mucha gente que es súper fan y que por desgracia necesita
una biblioteca para hacer esto quizás tú tú no lo vas a usar nunca y está bien no hay ningún tipo de problema no lo
usas nunca lo ve muy complicado que yo estoy convencido que conforme lo vas lo vas a ir leyendo lo vas a ir
entendiendo mejor que no te preocupes que no tienes que utilizarlo vale o sea está bien que lo entiendas pero que
no pasa nada pero aquí tenemos un ejemplo más para utilizar el fetch normalmente con el fetch aquí podríamos utilizar un montón
de if un montón de cosas fíjate que al recuperar la respuesta del fetch puedes decir cuando la respuesta
machea vale y tienes esto cuando el status es 200 y el headers tiene este content length no sé qué pues hace este
console log cuando el status es 404 hago esto al final es una alternativa de switch como que quedaría
medio camino entre hacer un switch y un if pero con vitaminas vale eso sería un poquito la idea y la
verdad es que se lee mucho mejor y lo hace como mucho más funcional y declarativo que te ayuda un montón a
controlar el código este es un ejemplo mucho más sencillo que lo otro y que la verdad que se entiende
aquí tenéis otro ejemplo también para hacer reducers de redax para que veáis un poco la diferencia este
sería con switch fíjate no tienes switch el case el retón case retón no sé qué y aquí tendríamos al hacerlo
con un match te puede gustar más o menos pero una cosa que te quita es que la comparación que tienes que
hacer dentro está bastante bien porque directamente le puedes pasar el objeto para decir la acción y ya
lo compara directamente no tienes que extraerlo y decir action punto type igual no sé qué no sé
cuánto sino que es mucho más directo y fíjate que ni siquiera tienes que hacer un retón porque la idea
del pattern matching es que cuando llega a esta condición directamente devuelve esto que al final
tú puedes hacer que sea más una ejecución de una función y si quieres hacer un bloque de código lo puedes
hacer como sería este ejemplo este es un ejemplo requiere más código y entonces le haces cuando pase
esto entonces haz le metes una llave y ni siquiera necesitas un retón ves aquí no haces un retón
porque el retón directamente es implícito no necesita el retón porque todo lo que esté al final lo devuelve
es como funciona justamente el pattern matching el do lo necesitas justamente cuando quieras hacer un bloque
de código o sea si tú quieres devolver directamente este objeto pues lo devuelves directamente no tienes que
poner retón y el código sino que lo devuelves directamente pero para poder diferenciar que
esto lo que va a devolver es un objeto a unas llaves que lo que quieres es poner un bloque de código
utiliza la palabra clave do y entonces dices cuando ocurra esto entonces haz todo lo que tengo en estas
llaves y en estas llaves ahora sí vas a crear esto y al final va a devolver el código que quieras la verdad
es que está tremendo a mí personalmente me gusta mucho y fíjate que incluso para este tipo de cosas para
renderizados condicionales dentro de react también lo puedes utilizar y queda súper bien porque algo
que normalmente podría haber sido mucho más complicado con un montón de if y cómo renderiza
cada cosa con retón y tal que tienes que repetir código pues fíjate que aquí queda como mucho más
declarativo mucho más corto y mucho más fácil viendo esta prueba está para este otro lenguaje de
programación está jodidamente genial bueno lo bueno que siempre ha tenido yo creo javascript es que lo que
ha tenido es que es multiparadigma o sea tiene un poquito de programación orientada a prototipos pero que
también tienes mucho de programación funcional tienes no es orientado a objetos pero lo puedes
simular bastante tienes declarativo imperativo o sea tiene un montón de cosas eso es lo que siempre
ha tenido muy bien javascript ya me parece genial dice vas a hacer un vídeo llamado es el fin de switch
haciendo cara de sorprendido agarrándote la cabeza y con círculos rojos en la miniatura midu querido
pues igual sí la verdad porque qué más da o sea si lo importante es el contenido mira voy a vamos a hacer la
miniatura ahora está muerto switch ha muerto si te soy sincero vino complete para mí switch hace mucho
tiempo que ha muerto o sea yo no utilizo switch ya sabes que no me gusta me gusta mucho más utilizar un
diccionario utilizar y utilizar un montón de cosas así que me da igual podría hacer perfectamente esa esa
portada y no sería para mí ningún bait porque para mí switch hace mucho tiempo que ha muerto hay muy pocas
veces que utilizo switch porque prefiero muchas veces utilizar un y que no switch me gusta mucho más pero
es un tema personal no digo que sea mejor sino que a mí me gusta más eso es lo que digo