I see a lot of comments on here about how people hate one OS versus another. Everyone has a gripe with <pick your OS>. Do devs need an OS made for them? Is Linux that OS or are we still waiting for the One True Dev OS?

I got to thinking something that is based around the Docker concept. Where every app runs in its own world. Would this be terrible?

I have no experience with docker so I don't know the technical issues. I know Docker exists on top of OSes, but could it be useful at a lower level?

  • 1
    Really crudely seen to explain it to someone without technical knowledge and my explanation is completely wrong but it's easy for layman people. Do not correct me on this because I know I am wrong.

    Docker is just a Virtual system to run an OS in. So it needs a system to run it in and it needs a system to run in it. Twice the choice to make...
  • 0
    @Codex404 I was thinking that encapsulating the apps would make sense. Like it might reduce dependency hell.
  • 3
    If we had a dev OS it would just be another one for people to complain about...
  • 1
    Docker only runs natively on Linux, it runs in a vm on windows or mac with vbox or hyperv

    I enjoy the separation of apps in containers since it makes it easy to throw components away or install something without having to go through the hassle of setting it up. Also, if you build your apps properly, you can practically configure your entire application with environment variables and rum the same thing in dev/test/prod.

    Back to the question, I find Ubuntu ideal since I often use it as a base OS for my servers, besides this, it also allows you to catch docker permission issues in your dev environment quickly, if an app runs as root you'll soon find root-owned files in youd host mounts, showing you what might happen on a server if you were to use the container there.

    I also enjoy learning Linux stuff in my dev environment, allowing me to teach myself some server management locally since it's the same OS anyways (often)

    Still, I'd like to hear what others have to say in this topic :D
  • 4
    Relevant XKCD
  • 1
    Nope, while ever there is choice, someone will complain about it.

    Everyone, and every machine must run on a single OS and no other OS permitted. Like the dictator OS.

    Until that day, welcome to <insert os> is shit.
  • 1
    All hail fuchsia
  • 1
    @Demolishun Removing dependency hell through encapsulation creates redundancy hell by storing lots of the same code within different encapsulations. (Yes, symlinks and other deduplication techniques can mitigate the storage growth, but also introduce other interesting overhead.) Everything is a trade-off somewhere.
  • 1
    The way I see it, there can never be such a thing as the One True Dev OS (tm) because requirements, users, and environments all differ. Such differences will not be mitigated by unifying computing environments (OS, hardware architectures, etc.) because each do different things better than the others (and corporate inertia is also a thing). Developing across platforms is (usually) fraught with perils, and platform-agnostic technologies tend to be too limited for a lot of necessary tasks.

    In other words, we can dream, but even our dreams will end up being different.
  • 0
    @StefanH I hate those people
  • 2
    @Codex404 Containers has a role to play that doesn't fit in the old patterns which makes it hard to grasp without knowing what it tries to solve.

    A traditional server is a pet. You name it. When it gets hungry you feed it RAM and CPU. You protect it. You clean up after it.You hope you never have an issue. When it dies you cry. When it is production ready you find it a cushy home.

    Docker containers are livestock. You give them only the resources they need to survive. They share a feeding trough and sewer pipes with other containers. If one as much as stumbles you put it down because it is replaceable. If one has a defect you breed the defect out. When it is production ready you send the whole thing to market.

    Docker containers are based on Linux because you can strip away all the parts you don't need. So Docker in Windows is Windows running lightweight Linux machines hacked together with popsicle sticks and tape. Docker in Linux is clever configuration.
  • 1
    Redox OS is the one true dev OS
  • 1
    Personally I hate windows.

    Non the less, I've always defended the idea "develop on the platform your application is going to run on"

    This is a bit off now with docker or vagrant, but still there is some captchas
Add Comment