Svelte vs React: caratteristiche, differenze e performance
Sia Svelte che React sono architetture di supporto JavaScript che tornano molto utili ai programmatori per sviluppare software e applicazioni web. Fra di loro però risultano molto diverse per il tipo di approccio oltre che per il fatto che uno è più recente rispetto all’altro. Svelte infatti esiste dal 2016 al contrario del “collega” rilasciato ancora nel 2013.
Entrambi hanno delle qualità e dei difetti ma si tratta di sicuro dei framework più utilizzati. Al primo posto rimane React che essendo disponibile da più anni risulta anche più conosciuto, ma pian piano in molti si stanno convertendo all’alternativa. Di seguito faremo un bilancio dei pro e dei contro di entrambi
React e la sua community
Per correttezza meglio partire dal più anziano nonché ufficialmente ancora il più apprezzato. Per iniziare a farci pratica lo si può scaricare in breve dal sito ufficiale e confrontarsi con programmatori e sviluppatori web già esperti pronti a dare una mano. Esiste infatti una grossa community a cui fare rifermento per trovare risposta ai propri dubbi o chiedere consigli.
Per funzionare questa architettura utilizza Javascript JSX, che unisce al suo interno sia il linguaggio di programmazione sia la tecnologia HTML. Il file .jsx che risulta comprende rappresentazione e logica di ogni elemento dell’applicazione. Esistono dei convertitori online per traferire le porzioni di linguaggio HTML in JSX se sono molto ampie.
La base di questo come di altri framework è il DOM virtuale (Documenti Object Model) ossia la rappresentazione del file creato sul web. Tutte le componenti create possono essere riutilizzate in caso o modificate per aggiornare un’applicazione all’occorrenza. In questo modo si possono creare dei modelli predefiniti.
Svelte, un approccio libero dal DOM
A sviluppare questo framework è stato Rich Harris, già creatore di Ractive.js (una libreria per UI). Non è stato possibile usarlo per progettare applicazioni fino al 2019 quando ha iniziato effettivamente a rappresentare la concorrenza per React. Diversamente da lui infatti non opera nel browser ma fa uso di un compilatore.
Questo aspetto permette di non avere sorprese quando il browser esegue il software progettato rischiando di dare un risultato diverso. Svelte permette di averlo già pronto e senza ritardi o problemi al momento in cui lo si deve caricare per la prima volta. I file che si creano sono comunque molto simili ai .jsx visti con React,
Il linguaggio che si usa per Svelte tuttavia è meno rigido e più semplice da imparare. Si tratta di un insieme di HTML, CSS e JavaScript che quindi risulta più familiare a chi sia già abituato a programmare con questi strumenti. Inoltre questo framework include una funzione per sincronizzare le modifiche chiamata “reactive declarations“. Ogni variabile è reattiva e se collegata ad altre basta modificare solo la principale.
Grazie a questa caratteristica la scrittura del codice risulta meno impegnativa e più rapida rispetto ad altre architetture meno moderne. Per di più i tempi di avvio dei software sono ottimizzati rispetto ai framework tradizionali e perciò la popolarità di Svelte sta crescendo rapidamente.
Gli svantaggi a confronto
Non solo React/Svelte: gli altri framework JavaScript
- Aurelia. Si tratta di un’architettura open source rilasciata nello stesso periodo di Svelte. Lo si può utilizzare comodamente sia per sviluppare applicazioni per dispositivi mobili che per il desktop. Ha un’estensibilità considerevole e non perde in termini di prestazioni neanche con UI molto articolate.
- Vue.js, creato per Google nel 2014. Oltre che come framework può tornare utile anche come libreria, ma non è adatto per applicazioni complesse, a meno che non si tratti di quelle one-page.
- SproutCore 2.0 ora ribattezzato Ember.js. Comparve nel 2011 e da allora si sa che ha incontrato le esigenze di compagnie come DigitalOcean Holdings.
Infine si può ricordare AngularJS. Questo framework ha una storia più lunga anche di React in quanto iniziò a essere utilizzato ancora nel 2010. Lo si è usato soprattutto per le interfacce di piattaforme per l’eCommerce e applicazioni per fornire aggiornamenti meteo. Purtroppo non risulta più supportato dal 2021.