以下の内容はhttps://let.blog.jp/tag/Rustより取得しました。


最近は JavaScript 関係のツールがネイティブ言語で作られてることが多い
最近は JavaScript 関係のツールが JavaScript じゃなくてネイティブ言語で作られてるのをよく見ます
新規のものもあれば 既存のプロジェクトを別言語に置き換えているのもあります
特に多いのが Rust
Node.js の代替となる Deno が Rust なのでそれに関係するプロジェクトが多いというのもあるのかもです

◯ Rust

Deno
https://deno.land/

SWC (Speedy Web Compiler)
https://swc.rs/

dprint
https://dprint.dev/

fnm (Fast Node Manager)
https://github.com/Schniz/fnm
(以前は reason)

Volta
https://volta.sh/

Rome
https://rome.tools/
(以前は JavaScript)

◯ Go

esbuild
https://esbuild.github.io/

◯ Zig

bun
https://bun.sh/



esbuild は一時期話題になってたけど Rust の SWC と被るし Rust ツールがメインになるのかと思ってましたが SWC を作った人が tsc を Go に移植するという話を最近見かけました
https://kdy1.dev/posts/2022/1/tsc-go
TypeScript の型で shared mutability や GC に頼る部分が多くて Rust との相性が悪いのだとか

ネイティブな言語に移行して速度が上がるのは良いことですが JavaScript で書かれていることのメリットもあったので 喜ぶべきなのかそうじゃないのか難しい気持ちです
ツールが JavaScript で書かれていると 使うユーザにとっても詳しい言語なので 内部で何をしてるか気になったときに 実際に動いてるコードを見て把握したり 修正したりが容易でした
それ以外の言語になると 簡単に読めないというのがあります
ソースコードそのものを実行しているわけじゃないので まずソースコードを探さないといけないというのもそうですし 言語として詳しくないというのもあります
スクリプト言語と比べるとネイティブの言語って読みづらいんですよね
さらにソースコードの JavaScript ファイルを修正しながら何度か再実行してみたりといったことが簡単には行かないです
ビルドするツールを入れたり環境の準備が必要ですし 実行のたびにビルドが必要です
気軽に修正を加えられません

機能がなかったり環境依存の問題が起きても自分で修正すればいいやくらいの気軽さで使うのは難しいので ちゃんと使うのは内部を知ったり変更する必要がないくらいに安定して十分なオプションも用意されてからですかね
Rust のドキュメントまとめ
ググって Rust のドキュメントのページを開いたときに 同じような見た目なのに別ドキュメントになってることが多くて まとめてほしかったので公式サイト内のリンクにあったのをまとめた
後半はほとんど見ることなさそう

The Rust Programming Language - The Rust Programming Language
https://doc.rust-lang.org/book/title-page.html

Introduction - Rust By Example
https://doc.rust-lang.org/stable/rust-by-example/index.html

Introduction - The Rust Reference
https://doc.rust-lang.org/reference/index.html

Introduction - The Edition Guide
https://doc.rust-lang.org/edition-guide/index.html

Getting started - Command Line Applications in Rust
https://rust-cli.github.io/book/index.html

Introduction - Rust and WebAssembly
https://rustwasm.github.io/book/introduction.html

Overview - Rust Forge
https://forge.rust-lang.org/index.html

Introduction - The Cargo Book
https://doc.rust-lang.org/cargo/index.html

What is rustdoc? - The rustdoc book
https://doc.rust-lang.org/rustdoc/index.html

What is rustc? - The rustc book
https://doc.rust-lang.org/rustc/index.html

Introduction - The Embedded Rust Book
https://doc.rust-lang.org/embedded-book/index.html

Introduction - The Rustonomicon
https://doc.rust-lang.org/nomicon/index.html

The Unstable Book - The Rust Unstable Book
https://doc.rust-lang.org/nightly/unstable-book/index.html
Go → Rust てよくみるよね
Discord も Go → Rust に切り替えたらしいです

https://blog.discordapp.com/why-discord-is-switching-from-go-to-rust-a190bbca2b1f

けっこうこの移行よくみかけますね
最近だとネイティブにビルドできるメジャーなものといえばだいたいこの 2 つだからかな

C/C++ は複雑で避けられがちですし D はまだ生きてたのって感じですし
.NET 系は Core は Linux などで動くとはいってもネイティブとはちょっと違いますし
同じく Java 系も

個人的には Go は興味なくて Rust は興味あるので Rust に移行するプロダクトが多いのは嬉しいことです

そういえば deno も当初は Go で実装していて どうして Rust にしないの? みたいなこと言われて Rust にしたんでしたっけ
そんな deno も予定では 2 月末に 1.0 でるらしいです
完全 Web 互換らしいのでリリースしたら使ってみようかと期待してます
pax という Rust 製 JavaScript バンドラーを見つけた
JavaScript のバンドラーというと

◯ webpack
◯ parcel
◯ rollup

くらいだろうと思ってたらこんなのをみつけた

https://github.com/nathan/pax

JavaScript じゃなくて Rust で作られてるみたい
バンドラーって基本 Babel みたいなトランスパイルや UglifyJS みたいなミニファイツールを使うし それらは基本 JavaScript で作られてるからバンドラーも JavaScript だと思ってけど Rust らしい
そういうの全部含んでる大規模なプロジェクトには見えないし どういうものなのか軽くみただけだとよくわからない

少し気になったところがあって 前の名前が 「parcel redux」 で略して 「pax」 らしい
https://github.com/nathan/pax/commit/ae70ce4a5370bbfcd5395b287f4595e10b9b98f5

内部で parcel 使ってて Rust はただのラッパーと考えたけど それだと直接 parcel 使うのより遅そうだしあんまりメリットがない
速度は早いらしいし たまたま名前かぶっただけであの parcel とは関係ないのかな?
もうひとつの redux の方はフロントエンドの状態管理ライブラリなわけでバンドルには関係なさそうだし



以上の内容はhttps://let.blog.jp/tag/Rustより取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14