Babel, the community driven compiler for writing next generation JavaScript

Technologies
javascript, nodejs, babel
Topics
compilers, ast, minifier, tc39
Babel, the community driven compiler for writing next generation JavaScript

Babel helps you write the latest version of JavaScript, and is helping shape the future of the language itself. It's used at Facebook, Google, Netflix, and hundreds of other companies. It's downloaded more than 8 million times a month on npm.

When your target browsers (Chrome, Firefox, Safari, IE) don't support certain features natively, it helps you compile it down to a supported version.

In short, developers want to take advantage of the latest syntax in JavaScript before it's implemented in browsers, now. Because the version of JavaScript depends on the client's browser, we can't rely on the fact they are using an up to date browser.

Transition to Natively Support JavaScript

Babel abstracts the browser away so that you can worry about writing your application rather than trying to figure out what features are supported in each one.

For example: if you support an older browser such as Internet Explorer 9, it won't have any of the features in ECMAScript 2015 (ES6), so Babel will transform your code into ES5 which is supported.

[1, 2, 3].map(n => n + 2); // arrow functions!
[1, 2, 3].map(function (a) { // compiled to a regular function expression
  return a+2;
});

Efforts like https://github.com/babel/babel-preset-env means you can take advantage of the native browser support when possible.

Please read the tips below on how to get started and how to create a successful proposal!

2017 Program

Successful Projects

Contributor
peey
Mentor
Daniel Tschinder, boopathi, Logan Smyth, Diogo Franco
Organization
Babel
Create Babel parser/transform plugins for proposals in TC39
As a part of my project, I'll take ownership of object rest spread, transform decorators, optional chaining, private fields, and async-await...
Contributor
Karl Cheng
Mentor
Sven Sauleau, Brian Ng, Henry Zhu, Andrew Levine
Organization
Babel
Combined Class Fields implementation and spec updates
Developers of JavaScript want to be able to test out new features to provide feedback to specification drafts, as well as making their code more...