Babel Turns Three

Posted Oct 5, 2017 by Henry Zhu

Happy Birthday Babel! 🎂 (Sept 28)

Babel has really come a long way since Sebastian started the project only 3 years ago! A while back it was renamed from 6to5 to Babel; for good reason as it has signficantly contributed to the use of ES2015+ by many companies, libraries, and developers alike.

And now it’s even helping move the language forward by supporting the proposals coming from TC39. We’re looking forward to being able to particpate more in TC39 meetings.

We’re really happy to see that the project itself has grown so much since last year!

  • The number of contributors to our main repository has doubled from 200 to 400
  • We’ve doubled the amount of downloads to babel-core (4.5m/month to 11m/month)
  • Grew from 4500 to 7500 users on our Slack community (sign up here)
  • Up to 2000 community babel-plugin packages on npm and over 1000 community babel-preset packages on npm

Sustainability

By every metric above, it seems like Babel is doing really well, and it is! A lot of that is just the result of network effects and people coming to using Babel as the norm for compiling JavaScript. However the project isn’t just about the code, but everyone involved in it.

I tried to give some talks this year to explain not just how Babel works but what it’s like to maintain an Open Source project. Hopefully I was able to get across the current state of things and start a dialog as many others have done about how we are to improve upon how we view OSS, not just for maintainers themselves but the culture around it.

We’ve accomplished a lot, but we have to continue to work in multiple ways to make it better by funding/sponsoring maintainers, adding new contributors, and working with the community that we are a part of.

Reach out to us if your company would like to contribute on work time: please join us in making Babel a sustainable project for everyone, not just as users but for our community!


What’s been happening?

Deploying native ES2015+ is discussed more with babel-preset-env

New babeljs.io/repl in React thanks to @brian_d_vaughn and pull request urls thanks to @Daniel15.

test262 tests against Babylon (and soon Babel) by @JugglinMike

Increased participation on TC39

So many committee members having been helping a lot with github issues, tracking/implementing/reviewing proposals, discussions in slack, and more: @rwaldron, @ljharb, @littledan, @mathias, @benjamn, @leobalter, @gsathya, @gisenberg, @kentcdodds, @bakkoting

Babel 7 is soon!

Future Ideas

  • Providing a “metadata” plugin for users to grep for patterns in their codebases. This will be useful to figure out how people are using certain proposals (similar to what was done in tc39/proposal-optional-chaining#17 for coffescript regarding ?.)
  • Better codemod support for all proposals: ideally each proposal plugin should come with a plugin to remove/compile the proposal away if a proposal gets dropped or the syntax changes. Similarly, we can provide a codemod to automatically convert syntax over to the new proposal as well (ideally using lebab)
  • Figuring out tooling for publishing ES2015+ and how that interacts with polyfills, transform-runtime, babel-preset-env, npm, .mjs
  • Fixing plugin ordering, traversal edge cases, babel package, babel --init, performance/size stats.

Thanks

Again, thanks to all for using and contributing back to Babel! We’re looking forward to what’s in store for the project!