Remix.run Logo
cbsmith 12 hours ago

> The image meant you basically got whatever state the developer ended up with, frozen in time, with no indication really of how they got there.

That wasn't a function of the image system. That was a product of your version control/CI/CD systems and your familiarity with them.

Consider that Docker and other container based systems also deploy images. No reason Smalltalk has to be any different.

I did software development work in Smalltalk in the 90's. We used version control (at one point, we used PVCS, which was horrible, but Envy was pretty sweet), had a build process and build servers that would build deploy images from vanilla images. Even without all that, the Smalltalk system kept a full change log of ever single operation it performed in order. In theory, someone could wipe their changelog, but that's the moral equivalent of deleting the source code for your binary. Image-based systems are no reason to abandon good engineering practices.

lmm 8 hours ago | parent [-]

> Consider that Docker and other container based systems also deploy images.

Consider also that Docker was the only one to really get popular, perhaps because it promoted the idea of using a text-based "Dockerfile" as your source of truth and treating the images as transitory built artifacts (however false this was in practice).

orthoxerox an hour ago | parent | next [-]

It's still mostly true in practice. You don't add one more layer to your image to build the next version, you rebuild it from the Dockerfile, which is the opposite of Smalltalk approach.

cess11 2 hours ago | parent | prev [-]

Arguably it goes back to chroot-stuff, and LXC predates Docker by some five years or so. I don't remember the details well but Solaris had similar containers, maybe even before LXC arrived.

I'd say the clown popularised it outside of Linux and Unix sysadmin circles, rather than the Dockerfile format itself.

lmm 2 hours ago | parent [-]

> Arguably it goes back to chroot-stuff, and LXC predates Docker by some five years or so. I don't remember the details well but Solaris had similar containers, maybe even before LXC arrived.

Solaris and FreeBSD had significantly better implementations of the containerisation/isolation piece from a technical standpoint. But they never caught on. I really think the Dockerfile made the difference.