In .NET we have a GAC or global assembly cache – which you may think describes it well and that is why we call it the GAC, but that isn’t true. One of the many things I’ve learnt since joining Microsoft last year is the real story of the GAC’s name and the fact that the acronym was chosen after the name to please legal. Think about it, the GAC is neither a cache (it is really a repository – a cache implies a temp nature to it’s contents) nor is it global (it is local to the machine) – that acronym just doesn’t make any sense.
The origin of the name is that Anders Hejlsberg when naming it wanted something to represent the only location on the device for assemblies. In addition Anders is a massive Dr Seuss fan and chose the name from the so in Cat in the Hat book. (emphasis below is mine).
At our house we play out back. We play a game called Ring the Gack. Would you like to play this game? Come down! we have the only Gack in town.
The name was used in the team until legal got hold of it and worried that Microsoft maybe sued, so it was shortened and an acronym made up to explain it. The original name does appear in the original beta documentation for .NET 1.0 which you can find here.