I think the problem in the premise is right on: while each package is created once, there are multiple packages which are all different implementations of the same problem (see Photoshop, Gimp, and all other photo manipulation tools; or really any genre of software, there are lots of similar pieces of software).
My bigger qualm is that I'm not sure it's a bad thing that there are multiple implementations of the same problem. Windows solves the problem of "I need to work with my computer" in a vastly different way from the *nixs; nginx and apache solve almost the exact same problem too, and each has different people using them for different things.
I agree with you that the problem with one solution per problem is that those solutions will become huge behemoths that nobody wants to work with. It's much easier to have small, shared libraries than shared programs, especially when you start tailoring those bigger programs for more and more specific use cases.
Comments
I think the problem in the premise is right on: while each package is created once, there are multiple packages which are all different implementations of the same problem (see Photoshop, Gimp, and all other photo manipulation tools; or really any genre of software, there are lots of similar pieces of software).
My bigger qualm is that I'm not sure it's a bad thing that there are multiple implementations of the same problem. Windows solves the problem of "I need to work with my computer" in a vastly different way from the *nixs; nginx and apache solve almost the exact same problem too, and each has different people using them for different things.
I agree with you that the problem with one solution per problem is that those solutions will become huge behemoths that nobody wants to work with. It's much easier to have small, shared libraries than shared programs, especially when you start tailoring those bigger programs for more and more specific use cases.