In the few years I have worked with web technologies, I have come across a number of package managers and I fail to understand the need of many of them. For languages to have their own package manager is very logical. They are written in the native language and function specific to the language. Like- pip for python, gem for ruby, npm for nodejs. When I talk of package managers, I talk of a very simple abstract concept where using a language you can install some library specific to that language. Now, to the part which I do not understand. Why do we have bower? When we already have bundle, composer and component, why did Twitter wanted to make their own. Is it needed? Or did they just create it as they needed their own?