• Skip to primary navigation
  • Skip to main content
  • Skip to footer

Codemotion Magazine

We code the future. Together

  • Discover
    • Events
    • Community
    • Partners
    • Become a partner
    • Hackathons
  • Magazine
    • Backend
    • Dev community
    • Carriere tech
    • Intelligenza artificiale
    • Interviste
    • Frontend
    • DevOps/Cloud
    • Linguaggi di programmazione
    • Soft Skill
  • Talent
    • Discover Talent
    • Jobs
    • Manifesto
  • Companies
  • For Business
    • EN
    • IT
    • ES
  • Sign in
ads

Riccardo DegniNovembre 15, 2023

Svelte 5: l’evoluzione della reattività e oltre

Frontend
Collaborative coding. A group of developers working together. Kotlin introduction. Agile
facebooktwitterlinkedinreddit

Nel dinamico mondo dello sviluppo front-end, l’efficienza, la reattività e l’esperienza utente sono parametri cruciali per il successo di qualsiasi applicazione web. Svelte, emergendo come una novità nel panorama dei framework front-end, ha radunato una comunità di sviluppatori entusiasti grazie alla sua semplicità intuitiva e alla potente gestione della reattività. Mentre le precedenti versioni di Svelte hanno gettato le basi per un codice più pulito e performante, Svelte 5 si preannuncia come un balzo in avanti audace verso un ecosistema di sviluppo front-end più robusto e flessibile.

Svelte ha sempre brillato per la sua capacità di offrire un codice comprensibile e minimale, riducendo il bloatware e facilitando lo sviluppo rapido. Con il prossimo rilascio di Svelte 5, la comunità di sviluppatori è in fermento, in attesa di esplorare le nuove frontiere che questo aggiornamento promette di aprire. Tra le attese migliorie, le “runes” rappresentano la punta di diamante di una serie di novità destinate a rivoluzionare il modo in cui gli sviluppatori interagiscono con la reattività nel loro codice.

Recommended article
Maggio 26, 2025

10 consigli per diventare esperto di React!

Lucilla Tomassi

Lucilla Tomassi

Frontend

In questo articolo, ci immergeremo nel cuore di Svelte 5, esplorando le novità che si preannunciano, le migliorie apportate al compilatore, e come queste innovazioni puntano a elevare ulteriormente l’esperienza dello sviluppatore. Attraverso una disamina delle caratteristiche chiave, cercheremo di fornire una panoramica esaustiva di ciò che Svelte 5 ha in serbo per la comunità di sviluppatori, senza perdere di vista la promessa di Svelte di mantenere le cose semplici, efficienti e reattive.

Runes: Una Nuova Era della Reattività

Il mondo dello sviluppo front-end è in continua evoluzione, con nuove tecnologie che emergono per affrontare sfide sempre più complesse. Al centro di queste sfide vi è la gestione della reattività, un elemento chiave per garantire applicazioni web fluide e responsive. Svelte 5 si propone di elevare la gestione della reattività a un nuovo livello attraverso l’introduzione delle “runes”.

Una “rune” in Svelte 5 è descritta come una primitiva potente che aiuta a controllare la reattività all’interno dei componenti Svelte e, per la prima volta, anche nei moduli JavaScript e TypeScript. Queste runes sono simboli funzione che forniscono istruzioni al compilatore Svelte, senza la necessità di essere importate da nessuna parte. Agiscono come direttive a livello di codice, guidando il compilatore su come gestire la reattività durante la compilazione del codice​​.

L’introduzione delle runes apre una porta verso una maggiore flessibilità e controllo sul comportamento reattivo del codice. Per esempio, potrebbero essere utilizzate per gestire la reattività di una variabile o di una proprietà specifica in modo più granulare, o per creare legami reattivi personalizzati tra variabili e funzioni.

Le runes rappresentano un passo avanti significativo, permettendo agli sviluppatori di scrivere codice reattivo in modo più intuitivo e meno verboso, mantenendo al contempo un alto grado di controllo sul comportamento del codice.

Con le runes, Svelte 5 sembra destinato a fornire agli sviluppatori gli strumenti necessari per costruire applicazioni più efficienti e potenti. Questa nuova funzionalità promette di ridurre la complessità associata alla gestione della reattività, consentendo al contempo di realizzare soluzioni più sofisticate con meno sforzo.

<script>
	let count = $state(0);

	function increment() {
		count += 1;
	}
</script>

<button on:click={increment}>
	clicks: {count}
</button>
Code language: HTML, XML (xml)

A prima vista, questo potrebbe sembrare un passo indietro, meno “snello” dello Svelte che siamo abituati a vedere. Ma all’aumentare della complessità delle applicazioni, capire quali valori sono reattivi e quali no può diventare complicato. Il precedente meccanismo di reattività funziona solo per le dichiarazioni let al livello del componente (variabili globali). Avere il codice che si comporta in un modo all’interno dei file .svelte e in un altro all’interno dei file .js può rendere difficile il refactoring, ad esempio se devi trasformare qualcosa in uno “store” in modo da poterlo utilizzare in più posti.

Le rune sono una caratteristica aggiuntiva, ma rendono obsoleti un sacco di concetti esistenti:

  • la differenza tra let al livello più alto di un componente e ovunque
  • export let
  • $: e attuali stranezze correlate
  • comportamento diverso tra <script> e <script context=”module”>
  • l’API degli store e complessità correlata
  • il prefisso $ dello store
  • $$props e $$restProps
  • funzioni del ciclo di vita (come onMount che ora può essere funzione $effect)

Questo significa che per gli utilizzatori di Svelte, ci sono cose nuove da imparare e una mentalità da “convertire” leggermente, mentre per i nuovi utilizzatori sarà semplicemente tutto parte della nuova API.


Lettura consigliata: Top 10 certificazioni avanzate internazionali in cybersecurity


Reattività a run-time

Oggi Svelte utilizza la reattività in fase di compilazione (compile-time). Ciò significa che se hai del codice che utilizza l’etichetta $: per essere eseguito nuovamente ed automaticamente quando le sue dipendenze cambiano, tali dipendenze vengono determinate quando Svelte compila il tuo componente:

const multiplyByHeight = (width) => width * height;
$: area = multiplyByHeight(width);
Code language: JavaScript (javascript)

Poiché la dichiarazione $: area = … può solo “vedere” width, non verrà ricalcolata quando cambia l’altezza (height). Di conseguenza, comprendere quando Svelte sceglie di aggiornare quali valori può diventare piuttosto difficile oltre un certo livello di complessità.

Svelte 5 introduce le rune $derived e $effect, che invece determinano le dipendenze delle loro espressioni quando vengono valutate:

<script>
	let { width, height } = $props(); 

	const area = $derived(width * height);

	$effect(() => {
		console.log(area);
	});
</script>
Code language: HTML, XML (xml)

Come con $state, anche $derived e $effect possono essere utilizzati nei file .js e .ts.


Lettura consigliata: I migliori tool potenziati dall’Intelligenza Artificiale per sviluppatori android


Signals migliorati

La reattività di Svelte 5 è alimentata dai “segnali” (signals), che sono essenzialmente ciò che Knockout (https://knockoutjs.com/) stava facendo nel 2010. Più recentemente, i segnali sono stati resi popolari da SolidJS e adottati da una moltitudine di altri framework.

In Svelte 5, i segnali sono un dettaglio di implementazione interno, piuttosto che qualcosa con cui interagisce direttamente lo sviluppatore. Pertanto, non si hanno gli stessi vincoli di progettazione API, con l’obiettivo di massimizzare sia l’efficienza che l’ergonomia. Ad esempio, si evitano i problemi di “type narrowing” che sorgono quando si accede ai valori tramite chiamata di funzione (al posto che direttamente tramite variabile), e, durante la compilazione in SSR è possibile eliminare del tutto i segnali, per evitare del tutto il loro overhead sul server.

I segnali sbloccano una reattività autentica e granulare, il che significa che (ad esempio) le modifiche a un valore all’interno di una lista di grandi dimensioni non devono necessariamente invalidare tutti gli altri membri della stessa lista. Di conseguenza, Svelte 5 risulta incredibilmente veloce.

Compilatore rinnovato e error boundaries: un salto di qualità in Svelte 5

L’essenza di Svelte risiede nella sua capacità di offrire un compilatore potente che trasforma i componenti dichiarativi in codice imperativo ottimizzato, garantendo performance superiori e un codice finale snello. Con Svelte 5, è prevista una revisione del compilatore che potrebbe portare miglioramenti significativi sia in termini di performance che di gestione degli errori.

Il cuore pulsante di Svelte è il suo compilatore, che è destinato a ricevere un’attenta rifinitura in Svelte 5. Sebbene i dettagli specifici non siano stati ancora completamente rivelati, è lecito aspettarsi che il nuovo compilatore possa offrire una compilazione più rapida, una migliore ottimizzazione del codice e un’analisi più accurata del codice sorgente. Questi miglioramenti sono cruciali per mantenere Svelte competitivo in un ecosistema front-end in rapida evoluzione, assicurando che gli sviluppatori possano continuare a beneficiare di un flusso di lavoro efficiente e di applicazioni ad alte prestazioni.

Un altro aspetto fondamentale del rinnovamento in Svelte 5 è l’introduzione delle “error boundaries”, un meccanismo di gestione degli errori che permette di catturare e gestire errori in modo più strutturato all’interno di un’applicazione. Le “error boundaries” funzionano come contenitori di errore, catturando gli errori nei sottocomponenti e fornendo una via di gestione e di recupero dell’errore. Questo meccanismo potrebbe significativamente migliorare la robustezza delle applicazioni Svelte, fornendo agli sviluppatori gli strumenti per gestire gli errori in modo più efficace e strutturato.

La rivisitazione del compilatore e l’introduzione delle “error boundaries” rappresentano passi fondamentali verso una maggiore maturità e robustezza di Svelte. Gli sviluppatori beneficeranno di un ambiente di sviluppo più stabile, con migliori strumenti di debug e gestione degli errori, che a loro volta possono portare a una maggiore produttività e a codice di qualità superiore.


Lettura consigliata: Come mettere in piedi un progetto Cypress in TypeScript


Conclusioni

Svelte 5 si preannuncia come un’evoluzione significativa nell’ecosistema dei framework frontend, portando con sé innovazioni e miglioramenti che potrebbero ridisegnare il paesaggio dello sviluppo web. Con nuove funzionalità come le “runes” e l’introduzione delle “error boundaries”, Svelte 5 mira a semplificare la gestione della reattività e a fornire strumenti più robusti per la gestione degli errori, contribuendo a migliorare l’efficienza e la qualità del codice.

La revisione del compilatore e i miglioramenti dell’esperienza dello sviluppatore sono altre pietre miliari che dimostrano l’impegno del team di Svelte verso un ecosistema di sviluppo più veloce e intuitivo. La rinnovata documentazione e il tutorial aggiornato sono testimonianze della dedizione di Svelte nell’accompagnare gli sviluppatori lungo il loro percorso di apprendimento, fornendo risorse preziose per esplorare il potenziale di Svelte 5.

La vibrante community di Svelte, l’entusiasmo per le anteprime rilasciate e l’accoglienza dei nuovi “Svelte Ambassadors” evidenziano una crescita matura e un’anticipazione palpabile per il futuro di Svelte. Gli sviluppatori hanno ora l’opportunità di prepararsi, esplorare le nuove funzionalità e contribuire al feedback collettivo, avvicinando Svelte 5 al suo rilascio ufficiale.

Nonostante la data di rilascio di Svelte 5 non sia stata ancora annunciata, l’anticipazione e la preparazione in corso sono un segnale positivo del crescente impatto di Svelte nel mondo dello sviluppo front-end. Con una base solida, una community attiva e una visione chiara, Svelte 5 è destinato a essere un aggiornamento entusiasmante che potrebbe portare gli sviluppatori a nuovi orizzonti di creatività e efficienza.

Related Posts

Angular httpResource: un nuovo approccio al fetch dei dati

Davide Passafaro
Aprile 10, 2025
design system with css

CSS Nativo: ora è tutta un’altra storia – Parte 2

Daniele Carta
Aprile 9, 2025

CSS Nativo: ora è tutta un’altra storia – Parte 1

Daniele Carta
Marzo 3, 2025

Angular Resource API: la guida completa

Davide Passafaro
Febbraio 5, 2025
Share on:facebooktwitterlinkedinreddit

Tagged as:svelte 5 sviluppo software

Riccardo Degni
Sono uno sviluppatore web senior, attivo sia nel front-end che nel back-end, un insegnante focalizzato sulla programmazione moderna, un consulente di ricerca per la tecnologia dell'informazione e uno scrittore che crea articoli e guide di programmazione. Sono sia uno sviluppatore con solide basi nelle nuove tecnologie come gli ambienti basati interamente su JavaScript e la programmazione ad oggetti sul lato server (PHP, Node e Java), sia un designer che realizza modelli potenti, moderni, completamente responsivi e privi di WordPress.
Prospettiva CTO: Francesca Torlasco Head of IT Italy @Selecta
Previous Post
L’impatto dei Large Language Model e dell’IA sul mondo dell’e-commerce
Next Post

Footer

Discover

  • Events
  • Community
  • Partners
  • Become a partner
  • Hackathons

Magazine

  • Tech articles

Talent

  • Discover talent
  • Jobs

Companies

  • Discover companies

For Business

  • Codemotion for companies

About

  • About us
  • Become a contributor
  • Work with us
  • Contact us

Follow Us

© Copyright Codemotion srl Via Marsala, 29/H, 00185 Roma P.IVA 12392791005 | Privacy policy | Terms and conditions