There are two schools of thought. The first is that you should optimise for the platform you're targeting, so a fragmented JS world is a good thing because you optimise for different things depending on where your code is going to run. The second school of thought is that you should optimise for development, and you should have the same language everywhere even if that means slightly less efficient code.
For example, if you write long running services in node then optimising for memory allocation in order to avoid leaks is a good idea. It's less useful for clientside things that generally don't run for nearly as long. Conversely, if you write isomorphic JS that can run in the browser but also needs to run on the server for that first-load advantage, then you'd prefer if things work the same everywhere.
Neither school is 'right' per se. How a language ought to evolve is incredibly subjective.
Yep, and, not that having to learn and become acquainted with shortcomings of new sets of languages/tools every other year isn't a fact of life for many devs that one ought to just accept. But having something run just (or as close as possible to) the same across many platforms make it more likely that that knowledge you acquired will remain among your best options when approaching a wide range of problems for a longer time.
Java 4 FOREVER!!!! f*ck maven... we like complex Ant configs... Generics can go to hell.
I mean this is a bit of hyperbole, but the point is that languages and platforms evolve, and given that JS has a bigger target surface than anything else in the history of computing, with more resources than anything else ever being poured into it, multiplied by approaches and opinions, how can it not be diverse. The world doesn't have the same houses everywhere either... Oh noes, they're building different styles of roofs over there.. the sky is falling.
For example, if you write long running services in node then optimising for memory allocation in order to avoid leaks is a good idea. It's less useful for clientside things that generally don't run for nearly as long. Conversely, if you write isomorphic JS that can run in the browser but also needs to run on the server for that first-load advantage, then you'd prefer if things work the same everywhere.
Neither school is 'right' per se. How a language ought to evolve is incredibly subjective.