IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Bun, le nouveau moteur d'exécution JavaScript, prendra-t-il la couronne de Node ?
Bun est présenté comme un tueur de Node en raison de sa simplicité et de sa rapidité

Le , par Bill Fassinou

223PARTAGES

7  0 
Bun.js a été publié en version bêta il y a environ un mois, mais le nouveau-né de la famille JavaScript suscite déjà l'intérêt d'une grande partie de la communauté du langage. Son objectif principal est de fournir un environnement pour exécuter JavaScript en dehors du navigateur, tout comme Node.js et Deno.js, mais le développeur de Bun affirme que le moteur progresse pour offrir de nouveaux niveaux de vitesse et une complexité accrue. Bun est présenté comme le "couteau suisse" du monde JS puisque vous avez un empaqueteur, un transpileur et un gestionnaire de paquets en un seul outil. Mais parviendra-t-il à surpasser Node et Deno à l'avenir ?

L'arrivée de nouveaux frameworks et de nouvelles bibliothèques en permanence est une caractéristique de JavaScript. En juillet 2022, l'écosystème JavaScript a accueilli un nouveau membre : Bun.js. Il est défini comme "un moteur d'exécution JavaScript rapide tout-en-un". Bun est le troisième outil du troisième de ce type après Node.js et Deno.js, et a été créé par Jarred Sumner à l'aide du langage de programmation Zig. Le langage est encore à ses débuts dans sa version 0.9.1, mais Sumner justifie le choix Zig par les avantages que présente son contrôle manuel de la mémoire de bas niveau et l'absence d'un "flux de contrôle caché".

Bun met l'accent sur la simplicité et la rapidité

Les développeurs auraient ainsi plus de facilité à écrire des logiciels rapides. Bun est un projet open source et est publié sous licence MIT. Il est basé sur le moteur JavaScriptCore de WebKit, qui est plus rapide que les alternatives courantes telles que V8, et comme Deno, Bun prend nativement en charge TypeScript. Mais contrairement à Deno, Bun est destiné à remplacer Node, Webpack, Babel, Yarn et PostCSS, le tout dans un seul et même paquet. Il est important de rappeler que Deno n'a pas été conçu comme un remplacement de Node. Son créateur, Ryan Dahl, l'a conçu pour améliorer la productivité. Alors, comment Bun se compare-t-il à Deno et Node ?



Bun veut surtout convaincre les développeurs avec un paquet complet qui comprend entre autres, un transpileur JSX/TypeScript, un client npm, un empaqueteur ainsi que des clients pour SQLite, HTTP et Websocket. Bien que Bun soit inspiré par les concurrents Node et Deno, Sumner a déclaré lors de sa présentation qu'il tente aussi clairement d'améliorer l'expérience de développement et la productivité en fournissant un ensemble d'outils. Bun supporte la résolution de modules Node.js, aussi bien avec des modules CommonJS qu'avec des modules EcmaScript (ESM). Cela devrait permettre d'utiliser une grande partie des paquets npm.

Sumner a expliqué que Bun est né de sa frustration face à la vitesse, ou au manque de vitesse, d'un langage : « j'ai été tellement frustré par la lenteur de tout ce qui est en JavaScript. Je sais que JavaScript peut être beaucoup plus rapide ». En tant qu'ancien développeur front-end chez Stripe, il a déclaré qu'il sait combien un cycle d'itération rapide est essentiel à la productivité. Ainsi, la vitesse de Bun ne se limiterait pas simplement à servir les requêtes plus rapidement que les autres moteurs d'exécution. Cela signifierait également qu'il est plus rapide pour installer des paquets, exécuter des tests, regrouper et transpiler.

La page d'accueil de Bun indique des performances 3 et 4 fois supérieures à celles de Deno et Node. Ce sont des des chiffres impressionnants, mais Tomas Fernandez, développeur et ingénieur en informatique dématérialisée, a réalisé quelques tests pour voir comment Bun se comporte réellement, mais aussi pour déterminer à quel point il est rapide. Il a récemment partagé les résultats de ces tests, dont en voici quelques points forts :

Gestion des paquets avec npm et Bun

Dans ce premier test, Fernandez a comparé les performances de Bun à celles de npm pour la création de nouveaux projets. Les résultats ont révélé que npm prend 49 secondes pour créer une application React vide. Par contre, il faut moins d'une seconde à Bun pour terminer la configuration. « C'est une sacrée amélioration », a écrit Fernandez. Mais est-ce une comparaison valable ? Après une inspection plus poussée, il a constaté que :

  • npm a installé 1 392 paquets et la taille de node_modules est de 250 Mo ;
  • Bun n'a installé que 8 paquets, pour une taille totale de 72 Mo.


D'après Fernandez, l'on compare ici des pommes et des oranges ici, car le modèle React de départ de Bun est plus petit. Toutefois, il a ajouté que le modèle tout à fait utilisable pour le développement. « Je peux lancer bun dev pour commencer à bidouiller immédiatement »,...
La fin de cet article est réservée aux abonnés. Soutenez le Club Developpez.com en prenant un abonnement pour que nous puissions continuer à vous proposer des publications.

Une erreur dans cette actualité ? Signalez-nous-la !

Avatar de Waikiki
Membre averti https://www.developpez.com
Le 19/08/2022 à 20:42
Ça va déprendre de sa stabilité pour être utilisé en développement/production dans le monde pro et de l'adoption par les entreprises.

Autant aux USA l'adoption peut être mais en France c'est pas gagné, suffit de voir la quantité d'entreprise utilisant encore d'anciennes version de php/symfony, ou d'angular (je vois encore beaucoup d'entreprise utilisant angular 8). Ou le peu d'adoption de RoR, Python/Django ou même Go. J'ai l'impression qu'on aime pas trop sortir des sentiers battus en France
0  0 
Avatar de rt15
Membre éclairé https://www.developpez.com
Le 20/08/2022 à 20:22
Pourquoi est-ce appelé un moteur d'exécution JavaScript ? Le moteur semble être JavaScriptCore. Bun ne fait qu'ajouter des APIs et des "services" autour de ce moteur dont certains ne servent qu'au développement et pas à l'exécution (Gestionnaire de paquet, transpiler...). Peut être appeler ça un environnement d'exécution accompagné d'outils de développement.
Niveau perf, ce sont plus les gains des tâches de dev qui sont présentées, pas les perfs des applications qui vont s'exécuter dans l'environnement Bun (qui dépendent surtout du moteur et de la qualité d'implémentation des APIs).
0  0