2 ms·
I don't know what language you use, but I figured out the success of Docker. I use Go, so my entire program is just one statically-linked binary. I can //go:e
by jrockway 4y ago
I don't know what language you use, but I figured out the success of Docker. I use Go, so my entire program is just one statically-linked binary. I can //go:embed any non-code files that I need at runtime. So I am naturally annoyed at the overhead Docker introduces with builds (throwing away my beloved and reliable ~/.cache for no reason), but I realize I'm not the target market, because most people don't program in a language with a build system. The target market is Python and Javascript programmers. Those languages can't even compute what modules you depend on without running arbitrary code from the Internet, much less produce a single file that will run on any reasonable Linux box. ("Hi! I got drunk and ran someone over with my motorcycle, but I'm out of jail and I need a job. Click here to give me one!" is an actual message that NPM will print in any large project, though it omits some details about the whole killing someone thing.)
Docker is a system for shipping your laptop to production, and because of the inadequacies in the tooling of those popular languages, it's in high demand.
- SkyPuncher 4y ago> Docker is a system for shipping your laptop to production, and because of the inadequacies in the tooling of those popular languages, it's in high demand. I know this is in jest, but I don't agree with this. Docker is a way to run code in an environment you fully control without knowing exactly what it will be running on. Many of the popular tools can generate a single file, but they'll be built for a specific architecture or require a certain run time.
- jrockway 4y agoYeah, that's a very fair interpretation. Honestly, a lot of programming languages need a lot of files to be in exactly the right place or your code will blow up. I like minimizing the number of files you need around, but making sure that you can have all of those files you need in production is a good strategy as well.