2. C'est quoi Svelte(Kit) ?
"Cybernetically enhanced web apps"
Rich Harris
Svelte (puis SvelteKit) sont les créations de Rich Harris.
Rich Harris est un ancien journaliste, qui a notamment travaillé pour le Guardian et le New York Times. Puisqu'il était parmi les plus à l'aise avec "internet", il fut vite chargé d'aider à la création d'expériences interactives permettant d'afficher toutes sortes d'informations graphiques. C'est comme ça qu'il est "tombé" dans le développement web.
En pratiquement régulièrement les standards de l'époque (jQuery, Angular, React...), il se rend compte assez vitede leurs limitations, notamment lorsqu'il s'agit d'orchestrer un très grand nombre d'éléments à l'écran en fonction de données qui changent régulièrement, ce qui est le cas lorsqu'on construit des visualisations de données.
Il décide alors de créer son propre framework de composants, d'abord avec RactiveJS, une première tentative infructueuse, puis avec celui qui nous intéresse ici, Svelte.
Il a également créé Rollup un bundler encore apprécié aujourd'hui et notamment utilisé par Vite.
Depuis 2021, il est employé par Vercel à plein temps sur le développement de Svelte et SvelteKit, avec 2 autres personnes.
Même s'ils sont principalement sortis de l'esprit de Rich Harris, Svelte et SvelteKit ont tous les deux été portés à leurs débuts par une petite équipe de contributeurs passionnés. Merci à eux !
Svelte
Svelte est un framework de composants créé en 2016.
Il se démarque à l'époque (et encore aujourd'hui) par le fait que c'est avant tout un compilateur, ce qui permet de faire une bonne partie du travail en avance de phase, à la compilation.
À l'époque, le standard imposé de facto par React consistait à re-exécuter en permanence tout le code d'un composant lorsque l'une seule de ses données d'entrée change, puis à utiliser un Virtual DOM pour essayer d'optimiser le travail du navigateur en ce qui concerne le HTML. Tout cela étant assumé par le navigateur au moment de la consommation de la page. C'est encore comme ça que fonctionne React aujourd'hui.
Svelte est sorti de l'anonymat en 2019, notamment grâce à cette conférence – déjà mentionnée juste au-dessus –, et a grandement gagné en popularité depuis. Il est régulièrement cité comme l'un des frameworks les plus agréables à utiliser.
Sa version la plus récente, Svelte 5.0, embrasse la philosophie de réactivité par signaux via l'introduction des Runes, ce qui introduit une syntaxe radicalement différente des versions 3 et 4.
Les signaux sont un concept de programmation remis sur le devant de la scène par Ryan Carniato et son framework Solid permettant de faire de la réactivité de manière très efficace.
Nous allons uniquement étudier Svelte 5 dans cette formation.
Si vous le souhaitez, vous pouvez utiliser la syntaxe Svelte 4 dans un projet Svelte 5, tant que vous ne mélangez pas les 2 syntaxes dans un même fichier.
SvelteKit
SvelteKit est le framework d'application officiel de Svelte.
Il s'est construit sur les cendres de Sapper, qui n'est jamais sorti en version 1.0.
Ses caractéristiques principales sont :
- un routeur basé sur le système de fichiers
- des chargements de données par layout et page
- la possibilité d'appliquer des stratégies de rendu différentes (SSR, CSR, SSG...) selon les pages