Q1:Bunってなんやねん
A1:なんかめっちゃ速い肉まん。
これだとエンジニアとして失格やと思うから頑張って調べてみた。
以下調査結果。たぶん初学者向け。
Bunは、JavaScriptとTypeScriptのための新しいランタイム環境。
Node.jsの代替品と言われることが多い。
ランタイムだけではなく、バンドル、トランスパイラ、パッケージマネージャーなどを含むオールインワン・ツールキット。
エンジンはJavaScriptCore。(Node.jsはV8)
言語はZig.(Node.jsはC、C++、JavaScript)
警告:専門用語が大量発生しています。
まぁ慌てなさんな。
Q2:ランタイムってなんやねん
A2:プログラムを実行するときに必要な物、あるいはその実行時のこと。
イメージするなら、OSみたいな感じ。iPhoneで天気アプリをタップしたら、iOSが天気アプリを起動するためのプログラムを実行してくれる。だから天気アプリが起動する。
Node.jsは、サーバーサイドでJavaScriptを実行するためのランタイム環境。
Bunも同じ。
Q3:バンドルってなんやねん
A3:複数のファイルやモジュール(部品)を1つのファイルに出力すること
Webページを読み込む時、JavaScriptのファイルがたくさんあったら何回もサーバーに取りに行かなあかんから、1つにまとめておく方がいい。それをしてくれるのがバンドラー。Webpack、Rollup、Parcel、esbuild、Viteとか色々ある。Bunもバンドラー。
Q4:トランスパイラってなんやねん
A4:通訳者みたいなもん
例えばReactでJSXを書いた場合、そのままじゃブラウザで動かんからJavaScriptに変換する必要がある。BabelというトランスパイラーがJSXをJavaScriptに変換してくれている。
Bunにもそういうトランスパイラの機能が入ってる。
Q5:パッケージマネージャーってなんやねん
A5:世界中の開発者が作った便利グッズを集めて管理する敏腕マネージャー
WEBの世界って基本的に世界中のいろんな人が作ったものをうまいことつなげながら作られてるんやけど、作った人は他のものといつでもうまくつながるように作ってるわけではない。だから、別々の人が作ったものをまとめて、いい感じにつなげる仲介人が必要になる。パッケージマネージャーはそんなイメージ。npm、yarn、pnpmに続いてBunもパッケージマネージャー。
Q6:結局Bunって何がすごいん?
A6:処理がめっちゃ速い。あと肉まんがかわいい。
終わりに
Bunは良いぞ。
参考記事