感想なのですが、ダルい笑
ネットで以下みたいな人の意見を見つけたけど、同意だなあ
NixOS made me go back to Windows
僕の考えとしては、
- 「LinuxのCLI系パッケージマネージャとしてかなり優秀」なので、Linuxには入れておくのアリ(自分の中ではWindowsのscoopと似た立ち位置になりそうだなと思った)
- Dockerfileで書くのがダルいが欲しい、あるいはDockerを使わないモノで、「開発環境のツール」を揃える用としてNixを導入しといて、プロジェクトルートに置くのはアリ
- システム設定やホームドットファイルまで「なんでも専用の宣言ファイルで書いちゃう」のは論外
- ちょっとした小手先の実験などには優秀
って感じですね。とりあえず学習コストがとんでもなく高いし、これここまで頑張るところか?みたいな感じがしたのね。というか普通に体験が微妙だった。
例えば「Rustのツールチェーン揃えるには、デキる人が作ったGitHubオーバーロードも実行するよう追記してください」とか、そういうのを見かけて、一気に萎えた。ダルすぎやろ!!笑
それするんだったら、もうローカルでRustの公式のURLから直インストールするアレでえーし、なんなら多少ラグコスト考えてもDockerでやるわ笑 みたいな。
普通にムズいと思うんですが、そんなに生産性上がるものかな。なんかね、Vimのプラグイン頑張ってるアレと同じニオイがしたんですよねぇ。。ハマる人はみんなハマってるけど、私はすぐ飽きるだろうなあ、みたいな。
設定関連なんですが、自分はchezmoi
を試していて、これはかなり良いなって思ってます。基本的にUnixのパターンにWindowsも合わせて、条件分岐で読み出せるような感じで最近は作ってる(のでdotfilesリポジトリ放棄してて、裏リポジトリがあるんですが…笑)
Nix OSも20年歴史があるので廃れはしないんでしょうが、UnixのFS構造の方がずっと今後も廃れないし、それをパッパと展開しちゃって合わないとこは個別に消した方が良いだろうし、どんどん謎に今後も生えるであろう数々のパッケージやホームマネージャーの(ドキュメントが分散しすぎてて読みにくすぎる)keyに合わせて(シェルとgitとパッケージが混ざってるんでしょ?そのキーどんどん増えるんじゃない?選定理由はコミュニティの総意だろうけど、だからみんなに合わせなきゃいけないじゃん)、その仕様変更もあるだろうし、いちいち全部に宣言ファイル作ってどうって億劫すぎん、と思っちゃったのね。
それに「すごい頑張ってるNix使ったdotfilesリポジトリ」があれそれとパブリックアーカイブ化してるの見ちゃって「ああ…」って思っちゃった。
なんというか、「Nixの世界での再現性の高さ」は納得したんですけど、多分僕は「再現性の温度感」が違うんだろうなあと思ったのですね。あるとこはシュッと出来たら良いけど、別にそーでもないとこは良くて。シュッとできたら、はDockerなんすよねーやっぱり。例えば、プログラミング言語とかSDKのバージョンはキッチリ合わせないといけないんだけど、nixpkgs
見たら明らかにやりにくいんですよ。大雑把な固定とか、そういうの多いし、バージョンもUbuntu stableのaptよりかなりマシだけど遅れてはいて。多分Nixは「そーでもないとこ」に割と相性が良いツールな気がしていて、例えば「ImageMagickやffmpeg」は個人で使う分にはそれぞれ個別に遅れてても全然害ないですよね。だから、自分としては「Linux向けホームマネージャー」程度の立ち位置なら良いツールかな、って思ったかな。
とうことで
WSLには導入しました。今のところbrew
からのリプレースで、CLIツールとかを動かしてます。
基本的にはホームマネージャということで、徐々に減らしていってやっていこうと思います。ちなみにPCへの直インストールの場合は、恐らくDeterminateSystems製が良いと思います。設定とか、アンインストーラー付きってのがGood。