When to use programming-language package managers