> Babel's primary purpose is transpiling to run on older browsers, which isn't 
> that much of an issue with Python. It's also complicated a bit by the large 
> number of implementations that *must* be developed in sync, again due to 
> running in user's browsers. 
It’s true that one of Babel’s purposes is to transpile to older browsers. 
However, if you look at the React Native project template (a fairly typical 
JavaScript project template), the Babel transpiler preset looks like this:
- Remove Flow and transpile JSX: these are language extensions for type hinting 
and inline XML, not intended to be merged with mainline JavaScript. 
- Transpile Standardized JavaScript to older JavaScript 
- Stage-3 Proposal: adds dedicated syntax for setting static and instance 
variables outside of the constructor but within the class.
- Stage-1 Proposal: syntax to support trailing comma in functions
function foo(
a,
b,
c,
) { }
Inspired from Python’s syntax:
def foo(a,
              b, 
              c,
             ):
    ...

As you can see, two non-standard features under consideration for inclusion in 
the standard are included in the preset. This inclusion of non-standard 
features is typical for JS starter projects. One of the requirements for 
advancing stages is seeing practical use in the industry.

Since almost everyone uses Babel anyways, this four stage process acts as a way 
to gain consensus on the base set of JS features. 

Almost all of the newest standard JS took this route of unofficial use before 
official inclusion. 
_______________________________________________
Python-ideas mailing list
Python-ideas@python.org
https://mail.python.org/mailman/listinfo/python-ideas
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to