What opinion just makes you look like you aged 30 years

  • Hagarashi8@sh.itjust.works
    link
    fedilink
    arrow-up
    0
    ·
    2 years ago
    1. Idea is that you can have different apps that require different versions of dependency X, and that could stop you with traditional package managment, but would be OK with containers
    2. Haven’t seen macOS 7,but 100% agree on Windows 95. 2000 is better though.
    3. Still can’t believe someone actually believe they are
    4. 100% agree
    5. Sometimes you just have 1 hour free, and that’s not enough to go home, but too big to just kill it. That’s when laptop is great. Also, sometimes going outside and do stuff feels better than doing it at home.
    • argv_minus_one@beehaw.org
      link
      fedilink
      arrow-up
      1
      ·
      2 years ago

      Idea is that you can have different apps that require different versions of dependency X, and that could stop you with traditional package managment, but would be OK with containers

      That’s what I mean by “static linking with extra steps”. This problem was already solved a very long time ago. You only get these version conflicts if your dependencies are dynamically linked, and you don’t have to dynamically link your dependencies.

      • Hagarashi8@sh.itjust.works
        link
        fedilink
        arrow-up
        1
        ·
        edit-2
        2 years ago

        Yes, you don’t have to dynamically link dependecies, but you don’t want to recompile your app just to change dependency version.

        • argv_minus_one@beehaw.org
          link
          fedilink
          arrow-up
          1
          ·
          2 years ago

          Don’t I? Recompiling avoids ABI stability issues and will reliably fail if there is a breaking API change, whereas not recompiling will cause undefined behavior if either of those things happens.

          • Hagarashi8@sh.itjust.works
            link
            fedilink
            arrow-up
            0
            ·
            2 years ago

            That’s why semver exists. Major-update-number.Minor-update-number.Patch-number Usually, you don’t care about patches, they address efficency of things inside of lib, no Api changes. Something breaking could be in minor update, so you should check changelogs to see if you gonna make something about it. Major version most likely will break things. If you’ll understand this, you’ll find dynamic linking beneficial(no need to recompile on every lib update), and containers will eliminate stability issues cause libs won’t update to next minor/major version without tests.

            • argv_minus_one@beehaw.org
              link
              fedilink
              arrow-up
              1
              ·
              2 years ago

              What’s so horribly inconvenient about recompiling, anyway? Unless you’re compiling Chromium or something, it doesn’t take that long.

              • Hagarashi8@sh.itjust.works
                link
                fedilink
                arrow-up
                0
                ·
                2 years ago

                Still, it’s going to take some time, every time some dependency(of dependency(of dependency)) changes(cause you don’t wanna end up with critical vulnerability). Also, if app going to execute some other binary with same dependency X, dependency X gonna be in memory only once.

                • argv_minus_one@beehaw.org
                  link
                  fedilink
                  arrow-up
                  1
                  ·
                  2 years ago

                  Still, it’s going to take some time

                  Compared to the downsides of using a container image (duplication of system files like libc, dynamic linking overhead, complexity, etc), this is not a compelling advantage.

                  Also, if app going to execute some other binary with same dependency X

                  That seems like a questionable design choice.

                  • Hagarashi8@sh.itjust.works
                    link
                    fedilink
                    arrow-up
                    0
                    ·
                    2 years ago

                    That seems like a questionable design choice.

                    I mean, you could have GUI for some CLI tool. Then you would need to run binary GUI, and either run binary CLI from GUI or have it as daemon. Also, if you are going to make something that have more than one binary, you’ll get more space overhead for static linking than for containers

                    Compared to the downsides of using a container image (duplication of system files like libc, dynamic linking overhead, complexity, etc), this is not a compelling advantage.

                    Man, that’s underestimating compiling time and frequency of updates of various libs, and overestimating overhead from dynamic linking (it’s so small it’s calculated in CPU cycles). Basically, dynamic linking reduces update overhead, like with static linking you’ll need to download full binary every update, even if lib is tiny, while with dynamic you’ll have to download only small lib.