Babel (6to5)

Open source project that provides a transpiler and toolkit that transforms/translates different programming languages or programming languages versions between each other.

It was named »6to5« initially and started out as a transpiler of ES6/ES2015 to ES5, allowing developers use latest/future language features of ECMAScript (which may not be fully supported by current browsers yet) already now in their applications by preserving, converting, and translating as much as possible for older browsers and older JavaScript engines through the process of downward-compatible translation.

Essentially, Babel utilizes transpiling and polyfilling to make this possible. Using presets and plugins, Babel can be used to transpile anything to anything. For example, it also allows to transpile PHP to JavaScript, i.e. transpiling between different programming languages.

It’s considered to be one of the most important tools of the ECMAScript/JavaScript ecosystem and is supposed to power several tools such as minifiers, linters, formatters, syntax highlighters, code completion tools, type checkers, codemod tools, and every other tool to be using the same foundation to do their job better than ever before.