header banner
Default

après avoir découvert Bun, le successeur de NodeJS?


— Article en partenariat avec talent.io —

Tout le monde en parle mais peu l’ont encore testé. Je vous propose qu’aujourd’hui, nous partions à la découverte de Bun.sh.

En effet, quand on travaille en tant que développeur, c’est important de se tenir informé de l’évolution des technologies comme Bun ou NodeJS. De la même manière, quand on cherche à évoluer dans son travail, il est bon de connaître la grille des salaires en France. Ça tombe bien puisque talent.io a mis en ligne une étude des salaires de la tech en 2022 pour que vous puissiez déterminer si votre salaire est correct ou sous évalué.

Mais revenons à nos moutons. Présenté comme le nouveau NodeJS, Bun est une plateforme javascript qui contrairement à NodeJS n’utilise pas le célèbre moteur Chromium V8 mais JavascriptCore. Il s’agit d’un framework dérivé de KJS (le moteur JS de KDE) utilisé pour les implémentations Webkit au sein de macOS.

La philosophie derrière Bun.sh c’est de fournir un runtime javascript qui démarre rapidement et qui dispose d’excellents niveau de performances. Beaucoup plus que NodeJS ou encore Deno. Cela n’est pas étonnant car en plus de l’utilisation de JavascriptCore, Bun est codé en Zig, un langage de programmation bas niveau qui offre de bonnes performances.

De plus, c’est un outil qui se veut complet puisqu’il est à la fois un gestionnaire de paquets (un client npm plus rapide que l’original ou que yarn), un bundler et un transpiler qui comprend à la fois le JSX et le Typescript. Il implémente des centaines d’API NodeJS et API Web ainsi que 90% des fonctions natives de NodeJS comme Node-API, fs, path, buffer…etc.

Même si Bun apporte un énorme gain en matière de performances pure mais également un gain de temps grâce à son aspect tout en un, il est encore très jeune puisque sa beta est sortie en juillet 2022.

Je vous propose quand même un petit tutoriel pour installer et tester Bun.sh.

Comment installer Bun.sh

VIDEO: Bun, Deno, Node.js? Recreating a JavaScript runtime from Scratch - Erick Wendel - NDC Oslo 2023
NDC Conferences

Pour déployer Bun.sh sur votre machine, ouvrez un terminal sous macOS, Linux ou Windows WSL et entrez la commande suivante :

curl https://bun.sh/install | bash

En toute logique, le script d’install a ajouté la ligne suivante à votre $PATH dans le fichier ~/.zshrc :

~/.bun/bin

Dans votre terminal zsh (exec /bin/zsh), lancez alors la commande suivante pour vérifier que bun se lance correctement :

bun --version

En lançant la commande :

bun --help

Vous verrez également les commandes disponible au sein de Bun comme « run » pour lancer du JS, « dev » pour démarrer un serveur de développement, « create » pour créer un projet Bun à partir d’un template…etc

Capture d'écran de la page d'accueil de Bun

Votre premier script Bun

VIDEO: Bun v1.0 en production ? - Actus JS de la semaine (11 septembre 2023)
DevTheory

En guise de test, nous allons d’abord créer un serveur http qui diffusera notre hello world comme ceci dans un fichier .js :

export default {
    port: 3000,
    fetch(request) {
        return new Response("Hello World from Bun!");
    },
};

Puis on lance ce fichier .js avec la commande « bun run ». C’est la même commande qui permet d’exécuter des fichiers JavaScript et TypeScript ainsi que les scripts de package.json. En remplaçant « npm run » par « bun run », vos lancements seront 30 fois plus rapides.

Pour info, j’ai nommé mon script : buntest.js.

bun run buntest.js

Rendez-vous ensuite sur l’adresse localhost:3000 avec un navigateur et vous verrez le Hello World s’afficher :

Schéma de fonctionnement de Bun

Bun comme gestionnaire de paquets

VIDEO: 10 Things I Regret About Node.js - Ryan Dahl - JSConf EU
JSConf

On va maintenant s’intéresser à l’aspect gestionnaire de paquets de Bun, qui remplace yarn ou npm install et permet d’installer des paquets 20 fois plus rapidement. Par exemple, si je veux installer une lib et ses dépendances, je n’ai qu’à lancer la commande :

bun install nom_de_la_lib

Exactement comment on le ferait avec la commande npm.

Deployer une app avec Bun

VIDEO: Can I Move Completely to Bun From Node.js?
pozy

Si dans votre terminal, vous tapez la commande suivante :

bun c

Vous verrez une liste de templates de projets que vous pouvez créer avec Bun. Par exemple, pour créer un projet react, il vous suffira d’entrer la commande :

bun create react ./react-app

Une fois le template déployé, faites un :

cd react-app

Puis lancez le serveur de dev :

bun dev

Puis en vous rendant sur l’url : http://localhost:3000, vous verrez la page d’accueil de votre nouveau projet React.

Photo de l'équipe de développement de Bun

Conclusion

VIDEO: Bun Tutorial – JavaScript Runtime (Node.js Alternative) [Full Course]
freeCodeCamp.org

Voilà pour la mise en place et l’utilisation de Bun. Sur le fonctionnement, c’est très similaire à NodeJS mais c’est surtout très rapide. Toutefois, j’ai bien senti que c’était encore en beta car j’ai croisé quand même quelques bugs (également documentés sur leur github) et même un segfault. Donc Bun est encore loin de balayer NodeJS mais une fois que ces problèmes de jeunesse auront été résolus, ce sera un excellent runtime javascript.

Bun n’est donc pas à utiliser en production pour le moment car il y a encore quelques gros problèmes, sans parler de l’absence de minification du code dans le bundler. Ce n’est donc pas encore optimal. Mais c’est un projet à surveiller car il avance vite et se veut très prometteur.

Maintenant si vous pensez que techniquement, vous stagnez dans votre emploi actuel, vous avez peut-être envie de changer de job pour continuer à évoluer dans les technologies, ou obtenir un meilleur salaire. C’est une démarche qui peut s’avérer assez compliquée, stressante parfois, tant on a envie de trouver un travail qui nous corresponde. On peut souhaiter avoir un travail plus proche de chez soi voire en télétravail complet, un meilleur salaire, une meilleure ambiance au travail, ou même tout ça à la fois (mais ce n’est pas forcément facile à trouver).

Heureusement, talent.io est là pour vous aider. Il vous suffit de créer un compte sur la plateforme talent.io en quelques clics pour ensuite recevoir des offres de la part d’entreprises qui correspondent à vos critères précis et qui affichent un salaire d’entrée de jeu. talent.io est vraiment le moyen le plus simple de trouver son prochain job tech, d’ailleurs les inscrits trouvent leur emploi en 20 jours en moyenne.

Sources


Article information

Author: Kathy Clarke

Last Updated: 1704093722

Views: 2366

Rating: 4 / 5 (109 voted)

Reviews: 84% of readers found this page helpful

Author information

Name: Kathy Clarke

Birthday: 2002-01-03

Address: 0578 Estrada Circles, Lake Kent, PA 90395

Phone: +4288876642911262

Job: Article Writer

Hobby: Cycling, Traveling, Chocolate Making, Surfing, Cycling, Photography, Billiards

Introduction: My name is Kathy Clarke, I am a unwavering, unswerving, spirited, daring, forthright, receptive, resolved person who loves writing and wants to share my knowledge and understanding with you.