The Controversial State of JavaScript Tooling
Something that&#x27;s been concerning me about the current approach to web development in particular is the accumulation of unacknowledged -- and increasingly unmeasurable -- technical debt.<p>I&#x27;m not sure that&#x27;s <i>precisely</i> the right phrase, but here&#x27;s what I mean: we all (should) know about technical debt in our own projects, but we also know that every project accumulates technical debt. When we build our projects on top of other projects, our work now has the potential to be affected by the technical debt -- bugs, poor optimizations, whatever -- in the underlying projects.<p>Obviously, this has always been true to varying degrees. But we&#x27;ve reached a point where modern web applications are pulling in <i>dozens</i> of dependencies in both production and development toolchains, and increasingly those dependencies are themselves built on top of <i>other</i> dependencies.<p>I don&#x27;t want to suggest we should be writing everything from scratch and constantly re-inventing wheels, but when even modest applications end up with hundreds of subdirectories in their local &quot;node_modules&quot; directory, it&#x27;s hard not to wonder whether we&#x27;re making things a little...fragile, even taking into account that many of those modules are related and form part of the same pseudo-modular project. Is this a completely ridiculous concern? (The answer may well be &quot;yes,&quot; but I&#x27;d like to see a good argument why.)