&gt;ES6 to ES5 is a one shell command with Babel.<p>You still need to include core.js to polyfil basically everything from standard library. And then you need to make sure Babel works with your framework (like Polymer or what not), and that&#x27;s just the start of the interop hell that is using different JS libraries together. Rule of thumb - anything you add to your JS build system = increase in the likelihood of hair pulling when things break - and babel and core.js are two such things.<p>The value I get from ES6 compared to the CLJS change how much I&#x27;m willing to tolerate the PITA factor of the build system.<p>In dart I don&#x27;t have to do any of that, just add few lines to pubspec.yaml with dependencies and transform directives and off I go. And every other library uses the same build system and the same package manager and the same standard library !