← Home ← Back to /g/

Thread 106148365

29 posts 16 images /g/
Anonymous No.106148365 >>106148545 >>106149645 >>106149681 >>106149803 >>106152169 >>106152869 >>106152952 >>106156149 >>106156249 >>106160155 >>106160392 >>106161444
hot take: nix is kinda overcomplicated
"i want a turing-complete config language for my system" statements dreamed up by the utterly deranged

just use lbu on alpine data disk mode like a sane person
https://wiki.alpinelinux.org/wiki/Alpine_local_backup
Anonymous No.106148545 >>106149814
>>106148365 (OP)
guix uses lisp if you wanna freetard
Anonymous No.106149645 >>106161008
>>106148365 (OP)
There's no point in making an adhoc DSL given the power required for nix/guix use-cases
In order to make good use of DSL you have to guarantee well defined scope and a strong "closed world" assumption, which isn't clearly the case
You'll end up writing a half hassed crippled language that is accidentally turing-complete anyway

Even when you start with a clearly delimited scope, if you let your project grow enough you end up like I said above (see most of the implementation of SQL, TeX/LaTex, [abused]CSS+HTML and such)
At this point, you might as well design a good general-purpose language (or use an existing one) with some syntactic sugar for the specific domain, rather than end up with people abusing the Turing-completeness of your configuration language
Anonymous No.106149681 >>106149814
>>106148365 (OP)
I like the idea of nixos but the fact that you need to do some things outside of configuration.nix (adding channels, ...) is retarded.
Anonymous No.106149779
Nix is not overcomplicated, but it adds a new layer of complexity in the hope it will consolidate the state of the system and the installation of packages into one language and one configuration file.
Anonymous No.106149803
>>106148365 (OP)
that's really not the problem though. the problem is how people expect FHS to be truth when it's just a convention and then getting bit by shitty software expecting things to just be in /usr/lib/* or whatever.
Anonymous No.106149814 >>106155551 >>106160431
>>106149681
flakes exist anon...
>>106148545
no matter how deranged nix (the language) is, at least it isn't a fucking lisp.
Anonymous No.106152169 >>106152271
>>106148365 (OP)
Nix flakes aren't that bad by themselves but NixOS is such a clusterfuck of overlapping tools and paradigms. i would never use Nix for anything other than dev environments. Guix is a better and more simplified system base and if it had a better package ecosystem i'd switch to it for dev envs too.
Anonymous No.106152271 >>106152869 >>106160155
>>106152169
> NixOS is such a clusterfuck of overlapping tools and paradigms
how do you mean?
unless you mean the difference between nixos-rebuild, nix-* and nix . eventually the nix-* commands will be deprecated.
Anonymous No.106152869
>>106148365 (OP)
>alpine
>sane person
pick one

>>106152271
>just two more weeks
the true NixOS TM experience
still way more comfy then archbtw or debian
Anonymous No.106152952 >>106161018
>>106148365 (OP)
>just use lbu on alpine data disk mode like a sane person
Here's your dedicated alpine support person, he does it for free.
Anonymous No.106155551
>>106149814
>lisp hate
Not in my board!
Anonymous No.106155984 >>106156028
i tried learning nix syntax last week. it's fairly straight forward, but the implementation documentation assumes you're already an expert. it's fucking hopeless.
>okay so the return of this function doesn't even get used....
>fails without it
what?
Anonymous No.106156028
>>106155984
oh let's not forget
>okay so this function recursively returns the value of its own output to the function as its only input
???????????
Anonymous No.106156041 >>106156127
The problem with Nix is that it assumes that the user doesn't change things. If you do you have to change multiple config files and then rebuild your entire system, it's retarded.
Anonymous No.106156127
>>106156041
that's what i've been saying for years. nix is a solution in search of a problem.

>you need a reproducible environment
like a container? try lxc, docker, podman, systemd-nspawn.
>no, like a full computer
so a thin VM? qemu is pretty amazing these days, or xen, or you could just run out of a RO filesystem like squashfs...
>no no, like a declarative build system
so like cmake, bazel, meson, ninja...?
>no no no, like you need fully configurable user environment
so... literally any distro that isn't nix?
Anonymous No.106156149
>>106148365 (OP)
I hate the idea of immutable desktop distros, it does not solve any issue and are horrible to work with day-to-day.
I understand for embedded, i build distros at work with read-only rootfs and dm-verity with A/B partition scheme but I control the entire stack and we do update by dd the entire partition in one go from one known working state to another known working state...
I like my OSes simple, I don't need any of this shit and I can use OCI containers if I need fancy shit
Anonymous No.106156249 >>106161029
>>106148365 (OP)
Yup, back to Arch it is. NixOS just ends up being a huge timesink like this article argues: https://www.rugu.dev/en/blog/leaving-nixos/
Anonymous No.106157834
>nix multiline strings aren't compatible with tab indentation

tab bros... the 2spacers have won... it's owari da.
Anonymous No.106160155 >>106162033
>>106148365 (OP)
In theory: Great! I can declaretively configure my system in a single config that's reproducible! In practice: Oh, this fucking additional DSL layer on top of an already complex mess is throwing errors again. I now have to waste time figuring out this shit by scavenging through deprecated and conflicting documentation online. Oh! Here's what I needed - buried 3 pages into the 4th nixtroon blog I had to sift through.

>>106152271
Nix is fragmented. Creator now works for a for-profit company that splintered the ecosystem by developing stuff like flakes without input from the core team. Now, you get a bunch of tools that conflict with one another, half-implemented standard, reliance on maintainers of every nixpkg in nixpkgs, etc. And the best part: flakes aren't officially part of base Nix, so it's not even allowed to be mentioned in the already shitty half-baked docs!

https://jade.fyi/blog/flakes-arent-real/
Anonymous No.106160392
>>106148365 (OP)
i played fallout new vegas then reaaaly got inti nix os
Anonymous No.106160431
>>106149814
Based take
Anonymous No.106161008
>>106149645
You've been reading too much methodology slop, anon. Do you even code?
Anonymous No.106161018
>>106152952
This is the final form of the Amerimutt.
Anonymous No.106161029
>>106156249
I know this without even having tried it. It's a midwit tar pit.
Anonymous No.106161444
>>106148365 (OP)
Seems like a nice option for autists
Anonymous No.106162033
>>106160155
>Creator now works for a for-profit company that splintered the ecosystem by developing stuff like flakes without input from the core team.
He's worked for companies that used nix for quite a long time. Now he's at determinate systems, before he was at tweag.io which was a consultant agency, which is where he got the flakes idea.
>Now, you get a bunch of tools that conflict with one another, half-implemented standard, reliance on maintainers of every nixpkg in nixpkgs, etc.
Nothing really conflicts with anything. And all packages need maintenance
>And the best part: flakes aren't officially part of base Nix, so it's not even allowed to be mentioned in the already shitty half-baked docs!
https://nix.dev/manual/nix/2.28/command-ref/new-cli/nix
The official manual for nix has had the flakes chapters and new cli and has been added to every release.
>B-but it's not referenced in the nixos manual!
You don't need nixOS to use flakes, and it is referrenced, including a section to install nixos from a flake.
Anonymous No.106163288
Could Nix theoretically be re-implemented in a normie friendly language like Javascript or Python or whatever?
Anonymous No.106164651
how do I cross compile a qt program for windows using nix? for linux it works beautifully but for windows it keeps refusing to evaluate because I guess some package is trying to pull in a linux only dependency (libglvnd) and I'm not sure how to tell nix to omit that package. I'm open to alternatives of course. nix is just what seems easiest to me right now and I can barely care about building for windows