A large number of dependencies is only a problem in environments that aren&#x27;t amenable to per-function static linking or tree-shaking. These include dynamically typed languages like Python, Ruby, and JavaScript (except when using the Google Closure Compiler in advanced mode), but also platforms like the JVM and .NET when reflection is allowed. Where static linking or tree-shaking is feasible, the run-time impact of bringing in a large library but only using a small part of it is no more than the impact of rewriting the small part you actually use.<p>Edit: Dart is an interesting case. It has dynamic typing, but it&#x27;s static enough that tree-shaking is feasible. Seth Ladd&#x27;s blog post about why tree-shaking is necessary [1] makes the same point that I&#x27;m making here.<p>[1]: <a href="http:&#x2F;&#x2F;blog.sethladd.com&#x2F;2013&#x2F;01&#x2F;minification-is-not-enough-you-need.html" rel="nofollow">http:&#x2F;&#x2F;blog.sethladd.com&#x2F;2013&#x2F;01&#x2F;minification-is-not-enough-...</a>