## 経緯
きっかけは以下の記事。
<div class="link-card-v2">
<div class="link-card-v2-site">
<img class="link-card-v2-site-icon" src="https://static.zenn.studio/images/logo-transparent.png" />
<span class="link-card-v2-site-name">Zenn</span>
</div>
<div class="link-card-v2-title">
MoonBit 最高 2025
</div>
<img class="link-card-v2-image" src="https://res.cloudinary.com/zenn/image/upload/s--j-gMSLAc--/c_fit%2Cg_north_west%2Cl_text:notosansjp-medium.otf_72:MoonBit%2520%25E6%259C%2580%25E9%25AB%2598%25202025%2Cw_1010%2Cx_90%2Cy_100/g_south_west%2Cl_text:notosansjp-medium.otf_37:mizchi%2Cx_203%2Cy_121/g_south_west%2Ch_90%2Cl_fetch:aHR0cHM6Ly9saDMuZ29vZ2xldXNlcmNvbnRlbnQuY29tL2EtL0FPaDE0R2liclRHT052Z3d3ay1fNGxlcVk4TGNGSlNuX0FoWnpEWVlKaXJNcWc9czI1MC1j%2Cr_max%2Cw_90%2Cx_87%2Cy_95/v1627283836/default/og-base-w1200-v2.png?_a=BACAGSGT" />
<a href="https://zenn.dev/mizchi/articles/moonbit-is-good-2025"></a>
</div>
[[WebAssembly]]はあまり興味なかったが、[[Rust]]と[[TypeScript]]の良いところどりをしてそう感が気になって試してみた。なお、最近[[Rust]]は全く書いていない。
## インストール
[公式ドキュメント](https://docs.moonbitlang.com/en/latest/tutorial/tour.html#installation) より。
```console
$ curl -fsSL https://cli.moonbitlang.com/install/unix.sh | bash
Downloading moonbit ...
######################################################################## 100.0%
Downloading core ...
######################################################################## 100.0%
Bundling core ...
Finished. moon: ran 66 tasks, now up to date
Finished. moon: ran 66 tasks, now up to date
Finished. moon: ran 66 tasks, now up to date
Finished. moon: ran 66 tasks, now up to date
Finished. moon: no work to do
moonbit was installed successfully to ~/.moon
To verify the downloaded binaries, check https://www.moonbitlang.com/download#verifying-binaries for instructions.
To know how to add shell completions, run 'moon shell-completion --help'
Added "~/.moon/bin" to $PATH in "~/.zshrc"
To get started, run:
source ~/.zshrc
moon help
```
```console
$ moon version
moon 0.1.20251111 (b17e236 2025-11-11)
```
## Hello World
```console
mkdir moonsandbox
cd moonsandbox
moon new .
```
生成されるディレクトリ。
```
.
├── AGENTS.md
├── cmd
│ └── main
│ ├── main.mbt
│ └── moon.pkg.json
├── LICENSE
├── moon.mod.json
├── moon.pkg.json
├── moonsandbox.mbt
├── moonsandbox_test.mbt
├── README.mbt.md
└── README.md -> README.mbt.md
```
`AGENTS.md` が作成されるあたりが時代を感じる。
## [[Neovim]]の設定
公式では[[VSCode]]の方法をサポートしているようだが、`~/.moon/bin` を確認すると `moonbit-lsp` というのがあって、これが[[LSP]]なら[[Neovim]]でも環境構築はできそう。
... と思ったけど、[[nvim-treesitter]]も対応していなくて[[VSCode]]じゃないと厳しそう。[[VSCode]]を使ってまで試してみたいモチベはないので今は保留。
> [!unresolved]
> [[Neovim]]のエコシステム ([[nvim-lspconfig]] / [[nvim-treesitter]]) が整備された頃にもう1回試すか検討する。