My guess is that many people are wary of dependencies due to experiences with "ruby gem hell". Bundler largely fixed that,
but for the most part Elixir apps are "pre-bundled". It's really straightforward to pin your dependencies to certain versions.
While Elixir isn't quite there yet, the problem of conflicting versions of dependencies does come up with larger Erlang applications.
The rebar episode of the Mostly Erlang podcast gives a good overview of the issues and one scheme to solve it.
Getting everyone on board with Semantic Versioning would help, but even that is not complete fix. The more you can limit
your dependencies, the better. As a last resort, the BEAM makes it easier to split your application into processes running on
separate nodes, but that is the nuclear option when it comes to library incompatibilities.
Given that this problem only arises when you have a large vibrant community with many freely available external libraries,
it's a good problem to have.
- Booker C. Bense