<story><title>The Controversial State of JavaScript Tooling</title><url>https://ponyfoo.com/articles/controversial-state-of-javascript-tooling</url></story><parent_chain></parent_chain><comment><author>chipotle_coyote</author><text>Something that&amp;#x27;s been concerning me about the current approach to web development in particular is the accumulation of unacknowledged -- and increasingly unmeasurable -- technical debt.&lt;p&gt;I&amp;#x27;m not sure that&amp;#x27;s &lt;i&gt;precisely&lt;/i&gt; the right phrase, but here&amp;#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.&lt;p&gt;Obviously, this has always been true to varying degrees. But we&amp;#x27;ve reached a point where modern web applications are pulling in &lt;i&gt;dozens&lt;/i&gt; of dependencies in both production and development toolchains, and increasingly those dependencies are themselves built on top of &lt;i&gt;other&lt;/i&gt; dependencies.&lt;p&gt;I don&amp;#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 &amp;quot;node_modules&amp;quot; directory, it&amp;#x27;s hard not to wonder whether we&amp;#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 &amp;quot;yes,&amp;quot; but I&amp;#x27;d like to see a good argument why.)</text></comment>
<story><title>The Controversial State of JavaScript Tooling</title><url>https://ponyfoo.com/articles/controversial-state-of-javascript-tooling</url></story><parent_chain></parent_chain><comment><author>lhnz</author><text>The problem with hypermodularization is that it takes time to make a decision on what module to use for every task. If you have to to do this with 100s of modules, you&amp;#x27;re wasting a lot of valuable time.&lt;p&gt;Does anybody know a quick way of making the right decision?&lt;p&gt;NPM is like a crowded graveyard nowadays (or like .com domain names - where all of the good module names have been taken along time ago and now all the best practice modules have completely irrelevant names). There are thousands of buggy modules in which development has stalled, and it&amp;#x27;s easy to waste a lot of time trying to separate the wheat from the chaff. I personally sometimes have to open up 5+ Github repositories to check their last commit, number of contributors, interfaces, code quality, unanswered issues, etc. Only after doing so am I able to make a decision.&lt;p&gt;In terms of knowing what&amp;#x27;s cutting-edge practice it seems you have to watch Twitter a lot and be careful not to follow every single bad idea.&lt;p&gt;I can&amp;#x27;t imagine what it&amp;#x27;ll be like to search for a module to handle something as common as config in a couple of years. Even when you constrain yourself to something like &amp;#x27;12 factor config&amp;#x27; there are many different implementations.&lt;p&gt;Don&amp;#x27;t even get me started on the insane assembly required to get webpack-, babel-, cssmodules-, and postcss- to all work together.&lt;p&gt;The problem is only going to get worse.</text></comment>