Babel Turns Three
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 significantly 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 participate more in TC39 meetings.
We're really happy to see that the project itself has grown so much since last year!
According to BigQuery there's 110,000 websites using @babeljs. (At least using the classes plugin). pic.twitter.com/kOxlLsFKPX
— Sebastian McKenzie (@sebmck) September 22, 2017
- 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 communitybabel-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.
- Participated in Summer of Code, both Google and Rails Girls, with 4 awesome interns: Peeyush, Karl, Kara, and Emma!
- Support from my team at Behance to work on Babel for half my time at work!
- Justin on the AMP team at Google is able to get 20% time at work to work on Babel as well as attend TC39 meetings (Google is a committee member)!
- We started an Open Collective with the hopes of funding maintainers in the future!
- An amazing team of maintainers: some of us just did an AMA. (the team section needs to be updated)
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 article: How to deploy ES2015+ code in production today (without transpiling to ES5) and why you should! https://t.co/jBMA8aKpyN pic.twitter.com/nmV4kXEKiI
— Phil Walton (@philwalton) September 13, 2017
New babeljs.io/repl in React thanks to @brian_d_vaughn and pull request urls thanks to @Daniel15.
Give the new, experimental Babel REPL a try!https://t.co/OAbvglsdoG pic.twitter.com/rVnNIOazvs
— Brian Vaughn (@brian_d_vaughn) August 17, 2017
Soon, pull requests to @babeljs will link to the REPL to make it easy to test! Here's a sneak peek: https://t.co/6rzvjlnb1w cc @left_pad pic.twitter.com/NH7PiFYKaG
— Daniel Lo Nigro (@Daniel15) August 12, 2017
test262 tests against Babylon (and soon Babel) by @JugglinMike
So looks like that's ~97.76% passing (55k tests!!) pic.twitter.com/KlGeFM2a1r
— Henry Zhu (@left_pad) August 7, 2017
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
✍️ Updates from the Sept TC39 meeting this week for what we need to update in @babeljs (links go to separate issues) https://t.co/4nvusNIeJX pic.twitter.com/RP444BvZnO
— Henry Zhu (@left_pad) September 30, 2017
Babel 7 is soon!
Just published a post for the first @babeljs 7.0 beta release https://t.co/DnEfR4e8qb
— Henry Zhu (@left_pad) September 12, 2017
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 CoffeeScript 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!