• pivot_root@lemmy.world
      link
      fedilink
      arrow-up
      1
      ·
      edit-2
      1 day ago

      They’re not awesome when your workflow revolves around the command line and you’re stuck choosing between wasting days trying to layer your configuration on top of the project devcontainer or giving up and using the unconfigured bash shell included.

    • Deconceptualist@leminal.space
      link
      fedilink
      arrow-up
      1
      ·
      1 day ago

      What’s awesome about them? I learned a bit of programming before containers were a thing but didn’t keep up the skills, but I remember most of the concepts.

      • Mikina@programming.dev
        link
        fedilink
        arrow-up
        1
        ·
        1 day ago

        I mostly work in gamedev where they aren’t that much feasible so I don’t have much real experience working with them and I might be wrong but from when I looked into it a while back, it’s basically just a docker container that you specify in a .devcontainer file (at least for VSCode, but other IDEs probably have something similar) and when you need to develop, compile or run your code, it runs it in the container. It also doesn’t have to run locally on your machine, if you can run docker somewhere else (i.e on a more powerful shared server).

        I can see several advantages (but I never really tested it in practice, so I’m mostly guessing) - containers are usually quick to start, you have the same and stable and replicable dev/build environment for all devs (since you just commit .devcontainers), so there aren’t some hidden dependencies and “works on my machine” shouldn’t happen too often. It also helps you keep your OS clean, so you don’t end up with 5 versions of python, 3 JDKs and 20gb of random NPM packages installed in your OS after 5 years of development - which is the most important advantage for me.