-
Notifications
You must be signed in to change notification settings - Fork 33.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Backward and forward compatibility in Javascript specification #1814
Comments
Please see my several comments in this thread: #1803 |
The description provided in the Babel official documentation and the statement in the book are not necessarily contradictory but may appear so due to different perspectives and contexts. Babel is primarily known for converting ECMAScript 2015+ (ES6+) code into a backwards-compatible version of JavaScript. This means it takes modern JavaScript code, which might use the latest language features that are not supported by older browsers or JavaScript engines, and transforms it into equivalent code that is compatible with those older environments. In this sense, Babel helps developers write code using the latest syntax and features without worrying about whether it will work on older platforms. However, the statement in the book refers to the broader concept of forward compatibility. In the book's context, "forward-compatible" means writing code using the latest syntax forms while trusting that the tools, such as Babel, will handle converting it into a version that will work on older engines. This perspective encourages developers to embrace modern JavaScript and not limit their code to older syntax just for compatibility reasons. Instead, they can use modern features, knowing that tools like Babel can produce a version that will work even in older environments. In essence, Babel's primary goal is to provide backwards compatibility, but it can be seen as enabling forward compatibility as well. By writing code using modern syntax, you're being forward-compatible in the sense that your code is ready for future JavaScript engines and environments while still being transformed to work on older ones. So, to sum up, Babel's main purpose is to produce a backward-compatible version of JavaScript, but it facilitates forward compatibility by allowing developers to write modern code that can be transformed for older environments. |
Yes, I promise I've read the Contributions Guidelines (please feel free to remove this line).
Please type "I already searched for this issue": "I already searched for this issue"
Edition: 2nd
Book Title: Get Started
Chapter: 1
Section Title: Backwards & Forwards
Question:
Question I have is whether Babel transpiler is used to produce forward or backward compatible version of Javascript code.
From official documentation from Babel:
But in the book, you mentioned:
I was conflicted whether to say Babel produces forward or backward compatible version of Javascript code, given how Babel doc and many people on internet refer to Babel as backward compatible.
I'm just curious about your opinion on this.
The text was updated successfully, but these errors were encountered: