| ▲ | forrestthewoods 4 hours ago | |
The first half of my career was spent shipping video games. There is no such thing as shipping a game in Docker. Not even on Linux. You depend on minimum version of glibc and then ship your damn dependencies. The more recent half of my career has been more focused on ML and now robotics. Python ML is absolute clusterfuck. It is close to getting resolved with UV and Pixi. The trick there is to include your damn dependencies… via symlink to a shared cache. Any program or pipeline that relies on whatever arbitrary ass version of Python is installed on the system can die in a fire. That’s mostly about deploying. We can also talk about build systems. The one true build system path is a monorepo that contains your damn dependencies. Anything else is wrong and evil. I’m also spicy and think that if your build system can’t crosscompile then it sucks. It’s trivial to crosscompile for Windows from Linux because Windows doesn’t suck (in this regard). It almost impossible to crosscompile to Linux from Windows because Linux userspace is a bad, broken, failed design. However Andrew Kelley is a patron saint and Zig makes it feasible. Use a monorepo, pretend the system environment doesn’t exist, link statically/ship adjacent so/dll. Docker clearly addresses a real problem (that Linux userspace has failed). But Docker is a bad hack. The concept of trying to share libraries at the system level has objectively failed. The correct thing to do is to not do that, and don’t fake a system to do it. Windows may suck for a lot of reasons. But boy howdy is it a whole lot more reliable than Linux at running computer programs. | ||