There was an anecdote from someone working at Microsoft in the early 2000s. The story says, Microsoft Office code due to legacy reasons stemming from the 90s was incredibly fragile and building it was a no easy feat. Office team had a bunch of carefully maintained build servers with carefully controlled version of Windows, MSVC compiler, and other software. Whenever a new build server was needed, they simply made a copy from an existing one (literally, copying the HDD contents) rather than install a system from scratch.
I heard this story from someone in my uni and I used to laugh at it, because surely having something like this today would be totally ludicrous. Now I see people use Docker and I don't laugh any more.
@Zerglingman i glanced through the post and the guy seems pretty retarded.
For one:
> Cabal, who can install a package but doesn't know how to uninstall it afterwards.
Cabal developers have repeatedly stated that Cabal isn't a package manager. It isn't supposed to create packages. Anyone who uses Cabal as a package manager has probably failed an IQ test. All Cabal does is populates a sandbox with dependencies for your build.
The same is probably true for other language-specific tools he described, like Cargo.
@Zerglingman they aren't package managers. You can repeat that a few times to get the idea. All these tools are supposed to do is to help you build your project. You must never use them to install software that you will actually use in your system.
@Zerglingman people who ship software like this are dumbasses and need to be kicked in the balls. This fact doesn't make these tools bad, because these tools are designed to do a very specific job and they actually do it just fine, for the most part.