Depuis six ans maintenant, le développeur et créateur de Best of JS, Michael Rambeau, suit les projets tendances dans l’écosystème JavaScript et les assemble dans son rapport annuel JavaScript Rising Stars, qui classe les projets en fonction des étoiles attribuées sur GitHub au cours des douze derniers mois. Les prix sont répartis en une douzaine de sous-catégories, ainsi qu’une catégorie globale de gagnants. Rambeau résume les résultats et propose ensuite ses réflexions sur l’année écoulée et l’année à venir. Les étoiles montantes de cette année se sont terminées par une prédiction, sous la forme d’une question, qui, selon nous, méritait d’être approfondie : “Allons-nous entrer dans l’âge d’or des applications full-stack JavaScript en 2022 ?”
Dans sa conclusion, Rambeau souligne non seulement l’essor des méta-cadres – tels que Next.js, Nuxt, SvelteKit et Remix – mais également le passage à Rust and Go pour accélérer les outils JavaScript, la popularité croissante des runtimes JavaScript backend comme Deno, ainsi que des fonctions sans serveur basées sur JavaScript à la périphérie avec Deno Deploy, Vercel Edge Functions, Cloudflare Workers et Netlify Edge.
“En gros, nous construisons maintenant des applications complètes avec un seul langage : JavaScript ou TypeScript.”
— Michel Rambeau
Dans une interview avec The New Stack, Rambeau a développé ses réflexions, expliquant que JavaScript a parcouru un long chemin depuis ses maigres débuts. Il a maintenant une position à tous les niveaux de la pile, dit-il, ce qui l’a amené à poser cette question sur l’entrée de JavaScript dans un soi-disant « âge d’or ».
Le rôle de TypeScript
“Au début, JavaScript était presque un langage jouet, car le but était d’ajouter de jolis effets – des animations par exemple – [and] avoir une certaine validation dans les formulaires, des choses comme ça. La plupart du travail, le vrai travail, était sur le backend », a déclaré Rambeau. “Mais, il y a eu un changement au cours des 10 dernières années pour responsabiliser les gens en front-end. Fondamentalement, nous construisons maintenant des applications complètes avec un seul langage : JavaScript ou TypeScript. »
Également présent lors de l’interview, le PDG de Vercel, Guillermo Rauch, est intervenu en entendant Rambeau mentionner TypeScript, le langage qui s’appuie sur JavaScript en ajoutant des types vérifiés statiquement. Rauch a noté que TypeScript était l’une des nombreuses étapes pour aider JavaScript à “se développer depuis son début de” langage jouet “jusqu’à sa prise de contrôle mondiale, de l’interface à la pile complète”, et que c’était “l’une des innovations clés nécessaires pour que JavaScript évolue .”
“JavaScript avait cette pièce manquante fondamentale dans un système de type formel – comme Java en a, par exemple”, a déclaré Rauch. “Je dirais que la montée en puissance de TypeScript apporte beaucoup de crédibilité à l’écosystème du langage. Ce n’est pas seulement ce langage que vous devez utiliser car le navigateur l’exécute. C’est un langage que vous voulez utiliser et c’est un langage avec lequel vous pouvez évoluer. Cela apporte également de la crédibilité à cela : je ne vais pas seulement faire le frontend, je vais faire le backend, je vais faire des microservices, je vais faire des fonctions de périphérie, je vais faire travailleurs, et ainsi de suite.
Les méta-cadres amènent JavaScript à la périphérie
Bien que TypeScript puisse offrir à JavaScript une nouvelle crédibilité et la capacité de fonctionner à grande échelle, Rambeau et Rauch soulignent que la montée en puissance des méta-frameworks joue un rôle clé dans la présence croissante de JavaScript dans la pile. Alors que les frameworks frontaux apportaient une couche d’abstraction au développement JavaScript, offrant des composants réutilisables pour les fonctionnalités et les éléments d’interface utilisateur, les méta-frameworks se concentrent davantage sur la technologie d’exécution de calcul, d’exécution et de rendu, a expliqué Rauch.
“JavaScript est aujourd’hui le langage dominant pour l’informatique de pointe.”
– Guillermo Rauch, créateur de Next.js et PDG de Vercel
“Nous étions trop déterminés à mettre JavaScript sur l’appareil. Si nous pouvons maintenant prendre JavaScript et le mettre dans le cloud et le mettre à la périphérie, maintenant, tout d’un coup, beaucoup d’inconvénients généralement associés à JavaScript – comme “Oh, c’est juste cette technologie pour envahir ma vie privée et en affichant des publicités dans le client, en ralentissant mon appareil et en épuisant ma batterie” – vous jouez simplement sur les points forts de JavaScript”, a déclaré Rauch. “JavaScript est aujourd’hui le langage dominant pour l’edge computing. De toute évidence, WebAssembly est en plein essor, mais j’ai l’impression que c’est comme JavaScript, les bons côtés : exécutez-le en périphérie, exécutez-le sur le client. »
La conclusion de Rambeau sur Rising Stars s’est terminée sur une note similaire, remarquant que “les méta-frameworks comme Next.js ou Remix tirent parti de l’informatique de pointe, ce qui facilite l’intégration du code backend dans les applications React”.
Une seule langue pour tout exécuter ?
Lorsqu’ils sont confrontés à l’hypothèse de Rambeau, d’autres posent une question simple : est-il bon de s’appuyer sur une seule langue pour toute une pile ?
Carson Gross, créateur de htmx, le framework qui “vous permet d’accéder aux fonctionnalités modernes du navigateur directement à partir de HTML, plutôt que d’utiliser javascript”, affirme que des langages et des méthodes alternatifs à l’utilisation de JavaScript dans la pile existent pour une raison.
“A la fin de Terminator, quand Sarah Connor est comme” Nous ne savons pas ce que l’avenir nous réserve maintenant “, je pense que nous y sommes”, a déclaré Gross. « Je pense qu’il y a beaucoup de gens qui ne veulent pas de l’avenir de la domination totale de JavaScript. Ils veulent travailler en Python, en Django, en Java, ou quoi que ce soit. Il y a juste beaucoup de choses là-bas.
« Est-ce que Javascript est là pour rester ? Absolument. Restera-t-il au sommet de la chaîne alimentaire ? Heureusement non.”
– Daniel Thompson-Yvetot, cadre Tauri
Daniel Thompson-Yvetot, co-fondateur du framework Tauri qui figure parmi les dix meilleurs projets sur Rising Stars, déclare que l’utilisation d’un seul langage dans la pile peut évidemment améliorer la productivité de l’équipe, les tests inter-systèmes et la réutilisation du code, mais que cela peut aussi entraîner des problèmes.
“Combiné avec des chaînes d’approvisionnement problématiques, des CDN piratés, des ingénieurs open source blasés, des typosquattages, des attaques post-installation et une pléthore d’autres dangers écosystémiques, il est clair que le croissant fertile de Javascript full-stack est également entièrement empilé avec des dragons et des sables mouvants », a déclaré Thompson-Yvetot. « À mon avis, il n’y a aucune raison d’être un maximaliste de Javascript. Bien que Javascript soit idéal pour créer des interfaces utilisateur hautement réactives, il s’agit d’un champ de mines d’insécurité et de performances de la mémoire, de problèmes mathématiques et de prototypes obstruables. Cela dit, les applications full-stack Javascript WITHIN connaissent définitivement une renaissance avec des projets comme Tauri, neutralino.js, Webview. Javascript est-il là pour rester ? Absolument. Restera-t-il au sommet de la chaîne alimentaire ? Heureusement non.”
Qu’est-ce qui se dresse sur le chemin ?
Rambeau est clair sur le fait qu’il a posé « l’âge d’or » de l’utilité complète de JavaScript comme une question et non comme une affirmation. Il dit qu’il reste des difficultés, telles que tout configurer “de la bonne manière, de manière standardisée” qui inclut des éléments comme un environnement de développement avec des commentaires instantanés, des tests, du linting, du formatage, de la vérification de type et de la construction pour la production. Bien que toutes ces choses puissent exister en tant qu’outils distincts, il dit qu ‘«il n’est pas facile d’obtenir la gamme parfaite pour tout intégrer immédiatement».
Au-delà de cela, Rambeau souligne également la couche de stockage et l’authentification et l’autorisation des utilisateurs comme points faibles restants, remarquant que, “en quelques mots : les fonctionnalités backend vont au-delà des fonctions sans serveur”. Néanmoins, Rambeau semble garder espoir pour l’âge d’or de la pile complète de JavaScript.
“Mon rêve, en tant que développeur, est un outil qui me permette de créer des applications Web complètes avec le même langage (JavaScript ou TypeScript), sans avoir à me soucier de quoi que ce soit lié au déploiement ou à l’évolutivité. Un outil qui me permettrait de me concentrer sur les fonctionnalités que je souhaite proposer aux utilisateurs. Idéalement, je souhaite pouvoir exécuter facilement mon application en local, la déployer dans plusieurs environnements de « préversion » et la publier en production. Assez proche de la vision de Vercel : ‘Développer, Prévisualiser, Expédier’ », a déclaré Rambeau.
“J’aimerais entrer dans l’âge d’or du développement Web”, a-t-il ajouté, “une époque où il est facile de créer des applications, tout en se concentrant sur la fourniture de fonctionnalités qui apportent de la valeur aux utilisateurs, plutôt que d’avoir à faire des choix décourageants sur les technologies à utilisation.”
The New Stack est une filiale en propriété exclusive d’Insight Partners, un investisseur dans les sociétés suivantes mentionnées dans cet article : Deno.
Photo de Kat Smith de Pexels.