Imagine being a naturalist and observing this behavior in the wild:<p>&quot;Wow, these developers have a really fertile experimental ecosystem. Why are they doing this? It looks like they&#x27;re reinventing things over and over again. It looks like they are doing some things worse (than I would) on purpose! What puzzling behavior! Perhaps there are some interesting incentives causing them to do this... Perhaps there are good things that result from this behavior... Hmm let me think about it. They must be very strong reasons if so many developers are engaging in this curious behavior.&quot;<p>Now imagine the author in the field:<p>&quot;Just grow hands and pick that thing up you dumb birds!&quot; (JavaScript has an anemic standard library)<p>&quot;Why are you all trying to break an acorn open in different ways? Standardize on something you idiots!&quot; (If there were one true way that instantly convinced everyone, the variety in library design would go down.)<p>JavaScript development has a lot more to do with path dependence than perhaps other more modern languages do. The language itself doesn&#x27;t constrain your strategies in the way, say, Java does. You can create object&#x2F;class hierarchies, or you can use closures to encapsulate private state.<p>You can use jQuery to manipulate the exact piece of the DOM you&#x27;re interested in, but maybe different oarts of your code clobber each other&#x27;s changes. Or you can use virtual DOM techniques to create the DOM you want in one go, but spend more cpu generating a diff.<p>You can use grunt which is purpose built for assembling js projects, but requires learning a big configuration language. Or you can use gulp which is &quot;just JavaScript&quot; but is more complicated to configure.<p>My point is that the JavaScript ecosystem doesn&#x27;t have all the answers yet, and they&#x27;re looking for them. Closures, prototypical-inheritance, async io... this language is pretty unique and there isn&#x27;t a template to go off of. (What other language has a DOM? What the hell is that?) Every time someone just attempts to emulate another language&#x27;s solution, inevitably they leave better solutions on the table by ignoring what JavaScript is capable of.