, 13 tweets, 3 min read Read on Twitter
What I wanted Babel to be: A thread
At the beginning of 2015 when Babel was still called 6to5, I created the issue "Project Scope and Future" to solicit ideas and feedback from the community about my desire to generalize 6to5. github.com/babel/babel/is…
In it, I say this:

> A JS transpiler based on future standards and specifications, whether ECMAScript or not, I think is an extremely noble goal. [...] Having an interopable platform to base code transformations on I think is a very powerful idea.
After this, we changed the name of 6to5 to Babel, to remove the ES6 to 5 connotation, and made ourselves future proof. The general platform concept manifested in the release of Babel 6, which moved out all of the core transforms and made it a general-purpose JS compiler.
This was only supposed to be the beginning of my vision though. I released Babel 6 live on stage at "EmberCamp London 2015", where in the closing slides, I spoke of my excitement for new tools to be built on top of Babel, including a linter, autoformatter, minifier and more.
After Babel 6, I eventually left the project due to mental health reasons and never really got involved again. Since then I've been experimenting with a lot of these ideas and have arrived at some conclusions.
The idea of these tools being built on top of Babel isn't very sound. An ad-hoc collection of tools is a fragile ecosystem. Atomic releases of all the tools to support new syntax, behaviour, configuration, and more is extremely difficult.
Today's JavaScript programs uses several different parsers spread across the engines the code is executing in, all the way to the linters, compilers, bundlers and more that are a part of the development process.
Consolidation of parsers isn't very interesting though. Sure we can all share the same AST, and syntax support, but that doesn't give us any new capabilities. What I'm excited about are things like:
- a testing framework that uses the same bundler for your test files as the one in production
- a linter built on top of compiler so you can do complex AST autofixes
- a single config file
- a bundler that understands how dependencies are used, and optimizes your bundle
- a minifier that does constant folding and inlining
- a compiler transforms that don't rely on order
- a compiler that uses an immutable AST to perform transforms, with accurate scope tracking
- a linter that gives me suggestions on how to fix my code
- ...
What possibilities are you excited about?
This is a more technical take on from last year
Missing some Tweet in this thread?
You can try to force a refresh.

Like this thread? Get email updates or save it to PDF!

Subscribe to Sebastian McKenzie
Profile picture

Get real-time email alerts when new unrolls are available from this author!

This content may be removed anytime!

Twitter may remove this content at anytime, convert it as a PDF, save and print for later use!

Try unrolling a thread yourself!

how to unroll video

1) Follow Thread Reader App on Twitter so you can easily mention us!

2) Go to a Twitter thread (series of Tweets by the same owner) and mention us with a keyword "unroll" @threadreaderapp unroll

You can practice here first or read more on our help page!

Follow Us on Twitter!

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just three indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3.00/month or $30.00/year) and get exclusive features!

Become Premium

Too expensive? Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal Become our Patreon

Thank you for your support!