DEV Community

Discussion on: I'm the maintainer of Babel, ask me anything!

Collapse
 
hzoo profile image
Henry

So I don't think Babel "won't" be needed soon, and it's not because I happen to work on it 😂.

I think that is a result of thinking it is still "6to5". I'll admit that yes ES6/ES2015 was a huge change that lead to this kind of thinking/tool, but I think maybe we all need to think a bit longer-term?

github.com/babel/babel-preset-env shows the change in thinking that I had. Babel doesn't do a static thing of just turning your ES6 code to ES5, but it actually will move forward as the language progresses and browsers update. As long as we need to support old browers, and the language continues to update with new syntax, AND all of us continue to want to use that new syntax (that's key), then something like Babel seems to be necessary?

If you think ES6 is good enough and you only support evergreen browsers, then yeah Babel isn't necessary and lucky for you! Or if you are in Node and are able to update to the later versions than the same thing there.

2.

This goes well with the points above: Babel isn't just a backwards compatible tool, but actually helps inform the future of the language itself. By using the plugins that are TC39 proposals, you can help give feedback to the committee that makes JavaScript to make it better. Maybe the proposal is unintuitive, slow, etc and they can get that real feedback from developers during the Stage process (0-3) without having to implement and waste time/money in browserland to find that the idea was bad and developers don't want to use it at all.

It's a fine balance though, people don't really understand what Stage 0 means, and that's actually understandable too. There's an education problem there. As much as I try to push for better docs, codemods to remove killed proposals or to upgrade in between proposals (decorators, etc), it's just a lot of work, and a lot to manage for a few people, let alone the whole community.

We need more people/companies involved, and people thinking about these issues that will impact the future of how we write JavaScript and websites in the future - whether it's via JavaScript or interop with another language that compiles to JavaScript (via js libraries).