9 puntos por GN⁺ 2023-09-21 | 4 comentarios | Compartir por WhatsApp
  • Svelte 5 introduce una función llamada Runes para mejorar la reactividad de JavaScript
  • En 2019, Svelte 3 convirtió JavaScript en un lenguaje reactivo
    • Usando el compilador para transformar componentes declarativos en JavaScript optimizado
  • Runes aplica esta reactividad en todas partes
    • Se aplica en forma de función, como let count = $state(0);
    • De reactividad en tiempo de compilación a reactividad en tiempo de ejecución
  • A través de Runes, la reactividad se extiende más allá de los límites de los archivos .svelte, simplificando el proceso de encapsular y reutilizar lógica entre componentes
  • La nueva versión de Svelte funciona sobre una base de Signals, como usaba antes Knockout. No opera de forma directa, sino como una implementación interna, por lo que está hecho de una manera un poco distinta
  • Se introducen las runes $derived y $effect, que determinan las dependencias de las expresiones cuando se evalúan, mejorando la reactividad en tiempo de ejecución
  • Runes vuelve innecesarios varios conceptos existentes, simplificando el framework Svelte y permitiendo construir y mantener aplicaciones más fácilmente
  • El objetivo es que sea un reemplazo posible para la mayoría de los usuarios, y las nuevas funciones podrán usarse de forma opcional para garantizar que los componentes existentes sigan funcionando
  • Aún no se ha decidido la fecha de lanzamiento de Svelte 5, y el trabajo sigue en curso

4 comentarios

 
ryuheechul 2023-09-21
 
rjcnd105 2023-09-21

Parece que estuvo muy influenciado por Qwik.

 
GN⁺ 2023-09-21
Opiniones en Hacker News
  • El artículo analiza el lanzamiento de Svelte 5 y, en particular, la nueva función "Runes".
  • Algunos comentaristas comparan las nuevas funciones de Svelte con las variables de estado y las variables derivadas/calculadas de Vue y Solid.
  • Hay debate sobre el efecto de las señales reactivas, y algunos sostienen que esto puede causar la confusión de cambios que afectan a otros cambios.
  • Algunos usuarios expresan preocupación por la nueva función "Runes", y afirman que se parece más a código genérico que antes, lo que podría causar confusión.
  • Hay una sensación de incomodidad frente al cambio, y algunos usuarios temen que Svelte se esté volviendo demasiado complejo y pierda su simplicidad.
  • Un comentarista sugiere que Svelte podría mantener la sintaxis tradicional y transformarla en segundo plano para que funcione de forma similar a la nueva función.
  • Se discute una fortaleza única de Svelte: tener un compilador personalizado y comportarse como un lenguaje; algunos temen que se esté pareciendo cada vez más a los frameworks tradicionales de JavaScript.
  • Algunos usuarios expresan frustración porque distintas librerías están reinventando de forma independiente los mismos conceptos reactivos, lo que reduce la compatibilidad y hace más difícil cambiar de framework en el futuro.
  • Algunos comentaristas se alegran por la eliminación de $:, y dicen que esto ayudará a los usuarios de Typescript y evitará confusiones de sintaxis.
  • Hay una pregunta sobre cómo Svelte maneja arreglos largos y si puede hacer solo los recálculos/actualizaciones granulares necesarios para ese elemento de la vista.
  • Un usuario comparte un enlace para comparar Svelte 4, Svelte 5 y otros frameworks.
  • Algunos usuarios critican que Svelte cambie su postura sobre la "reactividad por defecto" y sostienen que esto implica una pérdida de confianza y es un síntoma de la tendencia del ecosistema de Node.js a reinventar y redescubrir cosas.
  • El comentario final sugiere que Svelte se está acercando más a React Hooks, pero usando una etapa de compilación para optimizarlos.
 
wooseop 2023-09-21

Viéndolo por encima, parece que la dirección también cambió respecto a lo anterior y se siente bastante ajeno. También da la impresión de que fue innecesario y de que es menos conciso; igual que la reacción en Hacker News, es una parte que me genera algo de preocupación.