Deno : la prochaine alternative à Node.js ?

Posté le 10 juin 2020 par PierreB

Prenez l’anagramme de Node et vous obtiendrez Deno

Avez-vous entendu parler de Deno ? Beaucoup de bruits ont fait surface sur le sujet ces derniers mois. Ce nouveau runtime sécurisé pour JavaScript et TypeScript a été construit avec V8, Rust, et Tokio. À l’origine le 2 juin 2018, Ryan Dahl, le créateur de NodeJS, déclare lors de la JSConf qu’il ne supporte plus NodeJS par le biais d’une réflexion poussée et très critique envers sur son précèdent travail. Au travers des « 10 choses que je regrette à propos de NodeJS », Ryan Dahl annonce l’arrivée de Deno.

L’objectif de Deno est alors de corriger les erreurs de conception de NodeJS et offrir un nouvel environnement de développement moderne. « Essayer de réimaginer NodeJS à la lumière des progrès réalisés en JavaScript depuis 2009, y compris pour le compilateur TypeScript. Comme NodeJS, Deno est essentiellement un shell autour du moteur JavaScript de Google V8. Mais contrairement à NodeJS, il inclut le compilateur TypeScript dans son image exécutable. »

Les limites de NodeJS

Il est difficile de parler de réel problème pour NodeJS tant son utilisation est performante et sa communauté opérationnelle. Il convient alors dans ce cas précis de parler de manques ou de limites plutôt que de problèmes. Vous l’aurez compris, Deno puise son intérêt dans les limites de conception de Node. On retrouve ainsi trois éléments majeurs :

  • un système de modules mal conçu, avec une distribution centralisée
  • un grand nombre d’API héritées qui doivent être prises en charge
  • un manque de sécurité

Selon son fondateur, Deno résout ces trois problèmes.

Qu’est-ce que Deno ?

Deno est un runtime JavaScript / TypeScript avec des valeurs par défaut sécurisées qui offre une excellente expérience de développement. Comme mentionné plus haut, il est construit sur V8, Rust et Tokio là ou NodeJS est écrit en C++ et utilise libuv.

Il regroupe bon nombre des meilleures technologies open source et offre une solution complète dans un petit fichier exécutable. Le fait d’être écrit en TypeScript signifie qu’il bénéficie des nombreux avantages de ce langage, et ce, même si vous choisissez d’écrire votre code en JavaScript simple. L’exécution de code TypeScript avec Deno ne nécessite pas d’étape de compilation, car il le fait automatiquement pour vous. De plus, les modules Deno peuvent être hébergés n’importe où. La sécurité est intégrée.

deno-imgLes autres différences avec NodeJS

Le projet open source Deno peut vous aider si vous désirer un environnement runtime pour JavaScript plus sécurisé que Node.js ou si vous n’aimez pas le gestionnaire de paquets npm de Node. Cependant, si vous utilisez NodeJS en production, il est encore trop tôt étant donné que le projet est encore en phase de développement. Il faut bien comprendre qu’à l’heure actuelle, Deno est un projet laboratoire renforçant essentiellement NodeJS. Les choses pourraient changer par la suite : Deno V1 est d’ailleurs sorti début mai 2020.

Quoi qu’il en soit, Deno et Node ont globalement les mêmes vocations, mais fonctionnent avec des mécanismes différents pour y parvenir. En effet, Deno utilise les modules ES comme système de modules par défaut, là où NodeJS utilise CommonJS. On observe ainsi une différence notable dans la façon dont sont importés les modules. Deno en construit en Rust afin d’être rapide et comprend une API de plugin. Beaucoup ont directement apprécié la prise en charge native de TypeScript étant donné la montée fulgurante du langage sur le marché. Sa facilité de maintenance et de débogage, ainsi que son adoption par les développeurs front Angular et React en sont pour beaucoup également.

evolution-langages-confidentiels-2019La future alternative à NodeJS ?

La plupart des personnes qui parlent du sujet évoquent très souvent la question suivante : Deno peut-il réellement remplacer NodeJS ? Bien évidemment, il est trop tôt pour donner une réponse. Node se porte très bien, et même si le petit nouveau permet de faire la même chose que NodeJS de manière plus efficace, il est difficile d’imaginer Node disparaître. Aussi, la V1 de Deno semble avoir été publiée avec des failles de sécurité publique alors que la sécurité semblait occuper une place prépondérante au sein du projet Deno. Vous pouvez d’ailleurs retrouver le témoignage très intéressant de Vladimir, expert NodeJS sur jesuisundev.com.

Sources : Le Monde Informatique / Programmez.com / JeSuisUnDev <3 / freecodecamp.org

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *