Nushellよさらば

2026-02-16

NixOSを使い始めてはや半年、今まで連れ添ったNushellと別れることを決めました。

理由は大きく分けて3つあります。

1. NixpkgsとNushellの仕様が噛み合わない

Nushellには「プラグインと本体のバージョンを厳密に合わせなければいけない」という仕様が存在します。

一方で、NushellのアップデートがNixpkgsに取り込まれるには(Unstableでも)数週間かかることがあります。 ただプラグインは大抵メンテナが一人だけ……という状態なので、アップデートするにはメンテナの個別対応が必要です。

そしてそのメンテナが何かしらの理由で音信不通になると……

プラグインの読み込みに失敗したNushellは、フォールバックしてデフォルトの状態に戻りやがります。

そしてこれが二ヶ月とか続く!!

もちろん、自分で override を書けばよいじゃんという話なのですが、私は怠惰なのです。

2. シェルスクリプトが動かない

BashやZshをお使いの方々なら、「シェルスクリプトが動かないシェルなんてあるか!!」とおツッコミなされるところかもしれませんが、Nushellでは動きません。 POSIX互換ではないからです。

なので direnv でいい感じのエイリアスを書いてウキウキで起動したとしても、

「direnvに入った瞬間、定義したエイリアスが全部消滅して使えない」

という虚無が発生します。NushellはBashの構文(aliasなど)を解釈できないので当然なのですが、これが地味に効きます。

3. そもそもあまり活用できていない

Nushellには高度な機能がいっぱいあります。record とか list とか……。

でもシェルでそんな複雑なワンライナー書きますか?

私はあまあまGUIで育ったコマンドよわよわ世代なので、awkワンライナーなんて書いてきてないのです。 それに加えてNushellには標準で独自の純粋関数型言語も付いてくる!!

「嬉しいな」って思いながらコマンドを叩くと、すぐ type-error って言われるので「ガッ……」てなります。

結論

まあこれらはすべて、 「Rust製で構造化データで関数型のやべーシェルがあるらしいぞ!!」 みたいな甘言に踊らされたせいなんですが……。

以上の理由により、私はNushellとさようならして Zsh に行きましたとさ。 めでたしめでたし。

https://yawarakatai.com/blog/feed.xml