Skip to content

Commit

Permalink
feat: add bun.sh article (#10)
Browse files Browse the repository at this point in the history
  • Loading branch information
ghoullier authored Aug 4, 2023
1 parent 3515455 commit cd79a68
Show file tree
Hide file tree
Showing 4 changed files with 71 additions and 0 deletions.
Binary file added posts/2023-08-04/bun-install.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
71 changes: 71 additions & 0 deletions posts/2023-08-04/bun-journey.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
---
title: Bun.sh
publish_date: 2023-08-04
---

![Bun.sh](./bun-logo.png)

**Incredibly fast JavaScript runtime, bundler, test runner, and package manager
– all in one**

[**Bun**](https://bun.sh/) est un nouvel arrivant dans l'écosystem
**JavaScript**, il s'agit d'une chaine d'outil "tout-en-un" (runtime, bundler,
package manager, ...)

Contrairement à [**Deno**](https://deno.land/) **Bun** assume complètement
l'historique de **Node.js**, il supporte les **node_modules**, ainsi que de
[**CommonJS**](https://bun.sh/blog/commonjs-is-not-going-away).

Son créateur [Jarred Sumner](https://twitter.com/jarredsumner) est
particulièrement
[attentif aux performances](https://twitter.com/search?q=%40jarredsumner%20faster&src=typed_query).

## Différences sous le capot

- **Bun** est basé sur **JSCore** au lieu de **v8**
- **Bun** est écris en **Zig** au lieu de **Rust** et **C++**

## Différences visible

- **Bun** est compatible avec le système de résolution des **node_modules**
- **Bun** supporte la syntaxe TypeScript nativement, par contre il ne typecheck
pas votre code, cela reste de la responsabilité de **tsc**

## 🐣 Premières impressions

> J'ai joué avec **Bun** dans le cadre de
> [fp-nutshell](https:/ghoullier/fp-nutshell) un projet qui
> implémente certains pattern de programmation fonctionnelle.
### 🏎 Rapidité

**Bun** est vraiment rapide, l'installation des dépendances ne prend que
quelques secondes, de même pour l'éxécution des tests.

### 🔋 Efficacité

La philosophie de **Bun** est d'offrir un outil **tout-en-un**, pas besoin
d'installer Jest/Vitest, ESBuild/SWC.

### bun install

![Bun Install](./bun-install.png)

### bun test

![Bun Test](./bun-test.png)

## Limitations

`bun --bun` n'est pas encore compatible avec toute les modules npm mais le
développement de **Bun** avance vite et la v1.0 devrait arriver d'ici quelques
semaines, reste a espérer que cela sera résolu lors du passage en version
stable.

## Conclusion

**Bun** a le potentiel de changer la donne dans l'écosystème JavaScript.

Contrairement à Deno
[qui a été créé pour résoudre les problèmes de conception de NodeJS](https://medium.com/@imior/10-things-i-regret-about-node-js-ryan-dahl-2ba71ff6b4dc),
**Bun** a une approche moins clivante qui embrasse l'historique de NodeJS.
Binary file added posts/2023-08-04/bun-logo.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added posts/2023-08-04/bun-test.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit cd79a68

Please sign in to comment.