• just_another_person@lemmy.world
    link
    fedilink
    arrow-up
    32
    arrow-down
    7
    ·
    edit-2
    6 days ago

    It really is not. It has a very specific purpose, and desktop usage is not it’s strong point. It’s meant for repeatable builds at scale. Not great for an uncontrolled user experience.

    • Decq@lemmy.world
      link
      fedilink
      arrow-up
      16
      arrow-down
      1
      ·
      edit-2
      5 days ago

      I disagree. I love it for a desktop system . The fact that you can just try a package/app out with nix shell -p pkg and it doesn’t mess with your global environment and don’t have to bother to uninstall/clean up is very nice. Also combined with direnv/shell.nix it’s really nice for setting up different dev environments, no need to globally install your dev tools (of course you can also do this without nixos too). Or the fact I can run a test variant of my setup without being afraid of corruption with nixos-rebuild test and it will never be able to fuck my existing setup…

      Of course, configuring everything in a single structure is a bit of work at the beginning. But it’s really not that bad (though the documentation could really use some work) . You can just reuse your existing dot files by just including them without converting them to the nix language. And the fact I can now update and configure all my systems from one place and one structure is amazing, without having to ssh in every machine and remember how it’s configured.

      Now does that mean it’s the final distro? Probably not. But would I go back to a non-declaritive setup? Most definitely never. Maybe I’ll try out guix sometime, but I personally never liked lisp variants as a language. But who knows what else comes along. But imho declarative is the way to go for any setup, desktop or server.

    • ruffsl@programming.devOP
      link
      fedilink
      English
      arrow-up
      5
      arrow-down
      2
      ·
      6 days ago

      Not great for an uncontrolled user experience.

      • Interesting. What linux distros are optimal for that use case?
        • Specifically what properties of those distros make them ideal?
      • just_another_person@lemmy.world
        link
        fedilink
        arrow-up
        12
        arrow-down
        9
        ·
        6 days ago

        It doesn’t matter, because Nix isn’t built for it. That’s not it’s purpose or what it’s best at.

        Kickstart some Fedora if you need a similar experience, or use whatever ORM templating any other distro might offer. They all offer a better desktop experience because they are tuned with their packages and experience.

        Nix is meant for automated build systems to be binary reproducible. That’s it.

        People fanning over the declaration language are foolish for not realizing that literally all the big distros have the same experience, BUT are not claiming the same end result.

        • ruffsl@programming.devOP
          link
          fedilink
          English
          arrow-up
          8
          arrow-down
          1
          ·
          6 days ago

          It doesn’t matter, because Nix isn’t built for it. That’s not it’s purpose or what it’s best at.

          I was asking more about linux distros other than NixOS.

          They all offer a better desktop experience because they are tuned with their packages and experience.

          • Would you say it’s a front end aspect? If user driven system changes were as simple as using a Software Center UI?
          • A similar [desktop] experience sounds relative, what the comparison? Windows, MacOS, <Not Fedora> linux?
          • just_another_person@lemmy.world
            link
            fedilink
            arrow-up
            2
            arrow-down
            12
            ·
            6 days ago

            Yeah, so LITERALLY ANY OTHER DISTRO, that says it’s a Desktop Edition is a better choice.

            What are we doing here? This isn’t even an argument. It’s a settled fact based on the documentation alone. You’re trying to push a square before into a circle hole.

            • ruffsl@programming.devOP
              link
              fedilink
              English
              arrow-up
              6
              arrow-down
              1
              ·
              6 days ago

              What are we doing here? This isn’t even an argument.

              Correct, this isn’t an argument, or at least I’m not trying to argue.
              All I wanted to learn what exact properties you though makes for a better desktop OS.

              I’m in agreement that NixOS isn’t the best for mainstream desktop user base, but like any decent inquiry or survey, if I just preemptively bias someone’s responses with my own observations on NixOS defecenties, then there wouldn’t be as much of a case to before ask what they think other Linux Distro do better in the first place.

              Not everyone who strikes up a convo online for a debate, and not all (but quite a few) who ask questions are trolls.

                • ruffsl@programming.devOP
                  link
                  fedilink
                  English
                  arrow-up
                  5
                  arrow-down
                  1
                  ·
                  6 days ago

                  Well let me at least leave why I think Nix is not it at the moment:

                  • Software Center - browsing search.nixos.org isn’t quite the same in terms low friction and discoverability
                    • You already have to know what you’re looking for, and it can’t make system config on your behalf
                    • Debian or conventional package managers usually offer a native GUI for package selection and deployment
                  • System Defaults - the minimality of a basic default install can cause a lot of papercuts
                    • the default boot partition is rather small given the OS’s prepecity to add new kernels with new generations
                    • and without any garbage collection service enabled by default, user first encounter switch failures due to this
                  • External Binaries Compatibility - Linux also suffers from this in general as compared to MacOS or Windows
                    • in addition to being much more niche, reuse of existing binaries from more prevalent distros becomes complicated
                    • the desktop ISO could suggest a nix-ld config with default libs most binary distributes expect, easing in new users
                  • The Nix language - much more complex than conventional cong markup langs, being more of a turing complete DSL
                    • partial working LSP impare introspection while writing, and the runtime error messages are poorly formatted
                    • most desktop users (in debian or fedora) have little need to learn their OS’s packaging schemas, but NixOS users do
        • hornedfiend@piefed.social
          link
          fedilink
          English
          arrow-up
          1
          ·
          4 days ago

          100% agree. I’ve tried NixOs with Home Manager for a couple of weeks and it’s very nice, however it not very useful to me and went back to Arch eventually. I just don’t see any benefit to using it over vanilla arch with Flatpak, Bubblewrap or Landlock, besides reproducibility.

    • ruffsl@programming.devOP
      link
      fedilink
      English
      arrow-up
      10
      arrow-down
      1
      ·
      5 days ago

      As soon as you veer off the beaten path, things can get really tricky.

      For med tech and robotics development, I’m still using Debian via docker because the surrounding ecosystems for those software communities are so tightly integrated with the Debian.

  • krimson@lemmy.world
    link
    fedilink
    arrow-up
    10
    arrow-down
    1
    ·
    5 days ago

    I disagree. I stopped distrohopping 20 years ago (my first distro was Slackware installed from a set of dvd’s). Settled on Arch. Everytime I upgrade my PC I reinstall Arch, transfer my /home partition over, install packages and that is it really. I do not see the appeal of sticking everything in a bunch of config files at all.

    • thingsiplay@beehaw.org
      link
      fedilink
      arrow-up
      3
      ·
      6 days ago

      I’m also against quick and frequent distro-hopping.

      People say that’s the way how to learn; i say that’s the way not to learn deep knowledge. It’s like waking up 7 times in the night, instead getting the much needed deep sleep. Yeah, I could not come up with a better analogy, it’s still early in the day (but I got my sleep BTW). Whatever…

    • snikta@programming.dev
      link
      fedilink
      arrow-up
      1
      ·
      4 days ago

      I believe Guix System (or all Nix/Guix derivates) is the closest one. Otherwise I would say Yocto (not really a distro), Gentoo and all the container based distos (like openSUSE Micro).

    • Cris@lemmy.world
      link
      fedilink
      English
      arrow-up
      1
      ·
      6 days ago

      My fedora install is being kinda jank, if I end up reinstalling that might be what I’m trying next.

  • snikta@programming.dev
    link
    fedilink
    arrow-up
    5
    arrow-down
    2
    ·
    edit-2
    5 days ago

    Nah. GNU Guix System. Or Debian + Guix.

    Nix has more packages but Guix is much more well documented and coherent (anecdotal and subjective). Also nice with scheme instead of yet another DSL.

    • ruffsl@programming.devOP
      link
      fedilink
      English
      arrow-up
      4
      arrow-down
      1
      ·
      5 days ago

      I haven’t dug into Guix yet, so is the config more of a markup and less of Turing complete language? That sounds like it’d be easier to grock or optimize an LSP for.

      I have heard that Guix takes a stronger stance with respect to unfree software. I don’t think any of the official nix Hydra infrastructures build for unfree packages, but they are packaged and indexed into nixpkgs. Has Guix been difficult at all in that regard, i.e. using proprietary drivers or closed libraries for work or personal hardware?

      • Ephera@lemmy.ml
        link
        fedilink
        English
        arrow-up
        6
        ·
        5 days ago

        You probably missed it there, Guix’s syntax is the programming language Scheme. It’s most definitely Turing-complete.

        It’s possible that there’s a more mature LSP server for Scheme, since it is a programming language used for other things, too…

        • ruffsl@programming.devOP
          link
          fedilink
          English
          arrow-up
          3
          ·
          5 days ago

          Whoops, I misread scheme as schema. That’s really powerful. One thing I wish I could reliably do with a Nix LSP is navigate to a definition of a symbol.

          • simendsjo@fosstodon.org
            link
            fedilink
            arrow-up
            3
            ·
            5 days ago

            @khleedril @Ephera @ruffsl I use several nonfree packages, and binary packages (both free and nonfree). None of this can be added to the main Guix repo, but as GNU is about freedom, nothing stops me from packaging these as I see fit and distribute them freely to others to use.

            So if you only use the main channel, you won’t find nonfree software, but look at https://toys.whereis.social/

      • snikta@programming.dev
        link
        fedilink
        arrow-up
        2
        ·
        4 days ago

        Yeah, I meant Scheme as you’ve already figured out.

        I would say that nonguix makes nonfree stuff trivial: https://gitlab.com/nonguix/nonguix

        However, I do advocate that Guix introduce an official “curated” nonfree repository (like Debian). I believe that would make more good for user freedom and reproducibility. Almost no mainstream hardware works well with the libre kernel.