• trevor (he/they)@lemmy.blahaj.zone
          link
          fedilink
          English
          arrow-up
          10
          arrow-down
          1
          ·
          2 days ago

          The biggest downside to containers vs. Nix for me is that Nix can produce binaries for Linux and macOS, whereas docker only helps with Linux unless you can perform literal magic to cross-compile your project on Linux for macOS.

          Containers also don’t give you reproducible environments, and Nix does.

          That said, Nix documentation is ass, so I usually end up going with containers because they require far less suffering to get working because writing a containerfile is much easier than guessing how to hobble together a Nix flake with a mostly undocumented language.

          • utopiah@lemmy.ml
            link
            fedilink
            arrow-up
            1
            ·
            1 day ago

            Feels very arbitrary. Why would I care about say MacOS versus FreeBSD or say NeXTSTEP (just to be provocative)?

            Anyway I’m being pulled away from the actual argument, the “bare metal” argument is about performances, isn’t it?

            • iopq@lemmy.world
              link
              fedilink
              arrow-up
              2
              ·
              edit-2
              13 hours ago

              Yes, the systems people actually use vs every system that exists. Very arbitrary

              • utopiah@lemmy.ml
                link
                fedilink
                arrow-up
                1
                ·
                11 hours ago

                What I mean is that MacOS is proprietary and runs on specific hardware, it’s by design not meant to be interoperable so it’s not “just” popularity.

          • atzanteol@sh.itjust.works
            link
            fedilink
            English
            arrow-up
            3
            arrow-down
            1
            ·
            1 day ago

            Containers also don’t give you reproducible environments, and Nix does.

            Of course it does. 🙄

              • atzanteol@sh.itjust.works
                link
                fedilink
                English
                arrow-up
                1
                arrow-down
                1
                ·
                edit-2
                1 day ago
                docker build . -t docker.company.com/build-env:1.0 && docker push docker.company.com/build-env:1.0
                

                But for like 99% of development teams “repeatable” is Good Enough™.

                • trevor (he/they)@lemmy.blahaj.zone
                  link
                  fedilink
                  English
                  arrow-up
                  5
                  arrow-down
                  1
                  ·
                  edit-2
                  1 day ago

                  So, containers do not get you reproducibility.

                  For dev environments, repeatable is okay. If you want actually reproducible binaries that you can ship, Nix is better fit for that purpose.

                  • gedhrel@lemmy.world
                    link
                    fedilink
                    arrow-up
                    1
                    ·
                    13 hours ago

                    I’m not quite sure why you fetishise a bit-for-bit over semantic equivalence. Doesn’t it turn “it works on my machine” into "it works on my machine as long as it has this sha: … "?

                  • atzanteol@sh.itjust.works
                    link
                    fedilink
                    English
                    arrow-up
                    1
                    arrow-down
                    4
                    ·
                    1 day ago

                    So, containers do not get you reproducibility.

                    You absolutely do. If you build a container and publish it you will pull down that exact thing every time. How is that not “reproducibility”?

                    You no what though? Scratch that - who gives a fuck? Bit-for-bit reproducibility takes far more effort than it’s worth anyway. Even NixOS isn’t completely reproducible. It’s a false goal.

                    For dev environments, repeatable is okay.

                    It’s well more than good enough you mean.

                    If you want actually reproducible binaries that you can ship, Nix is better fit for that purpose.

                    Nobody really needs that.

        • Mihies@programming.dev
          link
          fedilink
          arrow-up
          1
          ·
          2 days ago

          It could if there are issues accessing hardware directly. Overhead is, as you said, not that important.