logo

midulive


Transcribed podcasts: 605
Time transcribed: 13d 3h 7m 36s

This graph shows how many times the word ______ has been mentioned throughout the history of the program.

Dino, Dino, Dino, ay Dino, Dino and Complicated JavaScript, que bueno esto, Dino, para el que no lo sepa, es una alternativa a Node, y es del mismo creador, el creador de Node, hace muchos años hizo Node, pasaron los años y dijo, sabes que, Node no me ha salido bien, voy a hacer otro, y hizo Dino, que además el nombre, Dino, Deno, que sería un juego de palabras con Node.
Pues una de las grandes cosas por las que hizo Dino, es porque no estaba de acuerdo con NPM, que cuando tú haces una instalación de una dependencia en un proyecto de Node, haces un NPM install, o JAN install, o lo que sea, y tienes un Node modules, como un sistema de paquetes, donde ahí puedes imparcer tus dependencias y tal.
Fue uno de los grandes cismas, y uno de los grandes ataques, si vosotros miráis los primeros vídeos de Dino y tal, era constante el hecho que te decía, no, si es mucho más divertido que importes las dependencias así, te decían, importa directamente toda la URL, así, con la versión y tal, y va a ser divertidísimo, ¿eh?
Y le llamaban HTTP Imports, ¿vale? Que era esto. Bueno, pues resuelta que, bueno, una cosa que ya sabíamos por todo, ¿no? Por todo como ha ido, que ahora, más que nunca, a 29 de julio del 2024, han confirmado lo que todos sabíamos.
Nos hemos equivocado con los Imports HTTP. Todo debería ser todo lo posiblemente simple, pero no más simple.
Me gusta mucho porque, si os fijáis en la página, ¿no? Que ponía Uncomplicate JavaScript, siempre Dino intentaba como, no, más simple, más simple.
Y esta frase me parece buenísima porque es verdad, ¿no? Que a veces lo llevamos a un extremo de intentar simplificar algo que lo hacemos demasiado complicado.
Y aquí, yo creo que se le fue un poco la olla, ¿no? De esta idea que sí era como que iba a cambiar las reglas del juego, es que podías importar directamente una URL.
Y funcionar funcionaba. El problema es que, claro, tenías que tener todas las URLs aquí, los tenías que tener versionados.
¿Qué pasaba si esto importabas dos versiones diferentes del mismo paquete en el mismo proyecto? ¿Cómo lo podías mantener? Se hacía bastante complicado.
Entonces, encontraron una solución que, además, es nativa. La longitud de las URLs, claro, es mucho más genial lo de arriba que no lo de abajo.
Que, además, a mí siempre la X esta, siempre me ha molestado. Esta X ahí en medio, como dino.lan barra X, no sé, o sea, nunca me ha gustado, la verdad.
O sea, me molestaba un poquito. Luego, la administración de las dependencias, ¿no? El tema de las versiones que decía, tener que importar, además, esto a mí me parecía horrible,
para poder importar módulos en concreto, tener que poner aquí los paths. Esto era horrible, horrible, ¿no?
Y luego, las dependencias duplicadas, el poder asegurarte, la solución. La solución, obviamente, no van a eliminar los HTTP impulsos
porque estarían rompiendo la retrocompatibilidad, pero trajeron esta solución.
Esta solución, esto es muy importante para que lo sepas, si eres programador de JavaScript, tienes que saber esto.
Esta solución que estás viendo, esto es algo que funciona en JavaScript. Esto es nativo de JavaScript. Esto no es una cosa que ha inventado Dino.
A esto se le llaman import maps. Es una tecnología muy interesante que, además, hemos utilizado en algún proyecto
en el que tú puedes, con JavaScript, importar una dependencia y, automáticamente, con este import map, le dices,
cuando tú encuentres un loadash, ¿vale? Como este, en realidad, ve a esta URL.
Y lo bueno de esto es que tienes un archivo totalmente separado donde tienes todas tus dependencias
y así ya te olvidas totalmente. Y está muy, muy bien.
Y esto se haría, pues, por ejemplo, import map mdn, para que veáis cómo sería la etiqueta, ¿vale?
Sería así, script type import map. Y aquí pondrías el JSON con todo eso.
Está muy interesante. La verdad es que es una tecnología muy chula y que puede estar bien.
No solo lo puedes hacer con dependencias, lo puedes hacer, por ejemplo, con archivos tuyos.
O sea, son como alias, ¿vale? Para que lo entiendas.
Entonces, esta podría ser una solución, pero no es lo suficientemente buena.
¿Sabéis qué es lo que han creado? ¿Sabéis al final cuál ha sido la solución de Dino?
La solución de Dino ha sido, que ya lo sabíamos en realidad, crear su propio NPM.
Al final han lanzado su propio NPM, que es JSR, ¿vale?
Es un sistema de paquetes de JavaScript Registry, ¿vale?
Es una alternativa NPM que, básicamente, que sí, que funciona bien.
Puedes buscar React, aunque no tienen todos paquetes todavía.
Pero yo qué sé, por ejemplo, Hono, creo que sí lo tenemos, ¿vale?
Y aquí, pues, tendrías como un NPM.
Si lo veis, se ve visualmente, es muy parecido.
Cómo lo puedes importar, cómo lo puedes instalar y todo.
¿Ves? Use Dino.
Pues tienes aquí Dino, Add y la dependencia.
Entonces, no voy a decir, no voy a decir, no voy a decir algo polémico.
Sí, voy a decir algo polémico.
Ha sido dar la vuelta entera.
O sea, ha sido, no a NPM, voy a intentar hacer una alternativa, voy a crear NPM, ¿no?
Sí, te lo dije, te lo dije.
La verdad, no sé si os acordaréis, no sé si os acordaréis de esto, cuando salió Dino, muy al principio,
y os dije que iban a sacar su propio NPM porque no me creía que lo de las URLs iba a funcionar.
Estaba 100% seguro.
Y yo decía, van a tener que hacerlo compatible.
Y lo hicieron compatible con NPM primero.
No dije que iban a sacar su registro, dije que lo iban a hacer compatible.
No dije que iban a sacar su propio registro, eso no me lo veía.
Dije que iban a hacerlo compatible y lo hicieron compatible.
Eso es verdad.
No dije lo del registro.
Dije que iban a hacer su propio sistema compatible con NPM.
Lo del registro me ha sorprendido porque la verdad es que es mucho dinero.
Pero lo de que iba a ser compatible con NPM y de que ibas a poder utilizar NPM,
eso lo dije al principio porque tenía todo el sentido del mundo.
Y a ver, me parece que está bien.
Pero entonces, pues han sacado JSR y aquí es lo que están diciendo.
¿Qué es lo que están diciendo?
Pues, amigos, lo que están diciendo es que van a sacar Dino 2 y que Dino 2 ya no,
la idea es que no utilices las URLs, sino que puedas importar directamente de JSR,
que es su registro de paquetes, ¿vale?
Que vas a poder utilizarlo de esta forma.
Con los import maps también, JSR, y te indicarás aquí cuál es el paquete.
Os voy a decir algo que es más importante que todo esto.
Y es que está bien cambiar de opinión.
Lo digo porque en programación muchas veces lo vemos como algo negativo.
Y yo ahora que estoy en tono jocoso, alguien puede entender que estoy como en contra.
Pero no, todo lo contrario.
Creo que si hay una cosa muy importante en programación es aprender de tus errores.
Porque lo jodido no es tener errores.
Lo jodido es no aprender de ellos.
Errores cometemos todos.
Pero si no aprendes de ellos estás jodido.
Así que me parece muy bien por la parte de Dino,
que además están anunciando que en septiembre van a sacar la versión 2.
Me parece perfecto que estén cambiando de opinión
y que se hayan dado cuenta que la forma correcta era pues tener módulos,
oye, ya sea con su registro propio, con NPM,
que van a tener compatibilidad con NPM,
las van a seguir teniendo, va a ser retrocompatible con Note y tal.
Y me parece perfecto.
O sea, no me parece malo, no me parece negativo,
no me parece algo de lo que se tengan que, no sé, que avergonzar,
ni que alguien pueda decidir que es algo, no sé.
Me parece que está muy bien y creo que es incluso loable que lo hayan puesto en un artículo.
O sea, está súper bien.
Lo digo porque en programación muchas veces se ve como debilidad o el cambio de opinión
y nada de eso.
Y me parece, además, que está muy bien explicado.
Entender que hay veces que uno piensa una cosa
y luego se puede dar cuenta yo mismo con Tailwind,
joder, cuántas veces me la habéis recordado lo de Tailwind.
Y no me da vergüenza, la verdad, no me da vergüenza decir
que yo al principio Tailwind pensaba que era horrible
y al final me ganó y sigo viéndole cosas malas.
Eso no significa que de repente me haya convertido en un fanboy y tal,
sino que digamos que las cosas buenas han superado a las malas.
Y incluso así puede ser que el día de mañana, pues, cambie de opinión,
por lo que sea, ¿no?
Porque puede ser que salga una nueva opción, que sea mejor o lo que sea, ¿no?
Así que yo creo que eso es superimportante que tengáis siempre la mente abierta.