> Honorable mention for docker convincing windows and macos developers to write software inside slow virtual machines for no reason.
There's plenty of reasons; it's a compromise like everything else. You trade away some performance for portability; the ability to run the same code and know your environment is identical each run is a significant pro.
Docker wouldn't have gotten to where it is for no reason.
I don’t buy the portability argument. If you want to write native io_uring code from windows, sure. But as far as I can tell, most people using docker are using it to deploy cloud services. And guess what? Nodejs, Python, Java, golang, Ruby - they all work fine natively on every platform.
I suspect the popularity of docker as a local developer tool comes from convenience. It feels easier to install docker than fix your homebrew permissions, install anaconda or install a recent version of nodejs on ubuntu. And if you’re already using docker in production, you need a workflow to make docker images anyway.
That and it’s trendy.
Never mind that using docker makes macos sometimes not sleep properly. That it makes your program much more difficult to debug. Or that you’re throwing away 2/3rds of the performance and 1/2 of the RAM of your expensive computer in the process.
Everyone else is using it. We can’t all be wrong, can we?
> But as far as I can tell, most people using docker are using it to deploy cloud services
People use docker and containers for multiple reasons. Reproducible dev environments, Unix development on Windows, etc. The biggest benefit is that your image is fully reproducible; you won't have random issues pop up because of edge cases being hit on dependency updates, you don't have to make sure your new devs install version X of tool Y for development, and you know your code will work identically each time you run `docker start`.
Like all other things, it has pros and cons. You may not value reproducibility, but your assessment is just that: yours. It's ok to have, but you need to realize others value things differently.
As a reminder, your argument is:
> Honorable mention for docker convincing windows and macos developers to write software inside slow virtual machines for no reason.
To say there's no benefit to Docker whatsoever is blatantly false.
> Everyone else is using it. We can’t all be wrong, can we?
If one person around you is wrong, then they might just be wrong. If everyone around you is wrong, then maybe it's you that's wrong.
Docker got popular because of lazy incompetent devs. Since they are the vast majority it got popular. Yes, a lot of times everybody is wrong. That shouldn't surprise you. Larry Ellison put it best: software industry is more fashion driven than the fashion industry.
There's plenty of reasons; it's a compromise like everything else. You trade away some performance for portability; the ability to run the same code and know your environment is identical each run is a significant pro.
Docker wouldn't have gotten to where it is for no reason.