Web Mozarts: On Libraries and Dependencies
On the Web Mozarts blog there's a recent post from Bernhard Schussek looking at some of the recent talk about dependencies in the PHP community sharing some of his thoughts on the subject and the Not Invented Here thought pattern.
The general attitude of people arguing against dependencies is that dependencies are a bad thing. Why could they be a bad thing? [...] Why do libraries have dependencies at all? Is a library with dependencies less decoupled than one without?
He includes some of the common reasons dependencies might be a bad thing (including maintenance issues and space concerns) as well as comparing two similar concepts - "coupling" versus "cohesion".
What does this mean in practice? Can we just increase the amount of dependencies as we like? My personal stance on this topic is that a library should require as little as possible dependencies to run (hard dependencies) - as long as it is highly cohesive - but support as many different libraries as it can (optional dependencies).