<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Babel</title>
    <description>The transpiler for writing next generation JavaScript</description>
    <link>https://babeljs.io/</link>
    <atom:link href="https://babeljs.io/feed.xml" rel="self" type="application/rss+xml"/>
    <pubDate>Sun, 15 Feb 2015 18:15:20 +0000</pubDate>
    <lastBuildDate>Sun, 15 Feb 2015 18:15:20 +0000</lastBuildDate>
    <generator>Jekyll v2.4.0</generator>
    
      <item>
        <title>Not Born to Die</title>
        <description>&lt;p&gt;I like to start off our blog posts with the latest big thing 6to5 has achieved. We haven’t reached it quite yet, but in a few days 6to5 and 6to5-core will have been downloaded &lt;strong&gt;half a million times&lt;/strong&gt;, and in a month or so it will be over a &lt;strong&gt;million&lt;/strong&gt; times.&lt;/p&gt;

&lt;p&gt;There has been a bit of confusion in the past as to 6to5’s role in the JavaScript community, which can largely be attributed to its name.&lt;/p&gt;

&lt;p&gt;6to5 was not born to die.&lt;/p&gt;

&lt;p&gt;Even when the next edition of JavaScript is supported across all environments, the work that has gone into 6to5 will continue to serve an important role in the community.&lt;/p&gt;

&lt;p&gt;From minifiers to beautifiers, from linters to code coverage instrumentors, compile-to-javascript languages and syntax extensions, code highlighters and on and on. There are two things that almost any tooling of any programming language depends on really heavily: parsers and transpilers.&lt;/p&gt;

&lt;p&gt;The history of these tools in JavaScript has been long and sad. Everyone is constantly reimplementing the same things and it’s created an absolute mess. It’s also the number one reason new language features take a long time to roll out (i.e. “I love using Arrow Functions, but it breaks our code coverage”).&lt;/p&gt;

&lt;p&gt;Luckily a lot of work is happening to improve this.&lt;/p&gt;

&lt;p&gt;Recently a number of people from Mozilla, Esprima, The jQuery Foundation, Acorn, 6to5, ESLint, and others have come together to create &lt;a href=&quot;https://github.com/estree/estree&quot;&gt;ESTree&lt;/a&gt;, a standard upon which all parser and transpiler tooling will be based on.&lt;/p&gt;

&lt;p&gt;We want for 6to5 to solve the transpiler story. If the community could rally around a tool that provides a solid foundation for dealing with a lot of shared issues then we’ll all be much better off.&lt;/p&gt;

&lt;p&gt;That might sound a bit absurd and like a fairly lofty goal. Many will think it’s &lt;em&gt;out of scope&lt;/em&gt; for something named “6to5”.&lt;/p&gt;

&lt;p&gt;I guess it’d be a good idea to rename the project then!&lt;/p&gt;

&lt;p&gt;6to5 is now Babel.&lt;/p&gt;

&lt;p&gt;Babel will continue to serve as a JavaScript transpiler for using the very latest standards, but will also begin to open up it’s API for other tools. Anyone who has worked on the project internally knows that Babel is incredibly easy to work with.&lt;/p&gt;

&lt;p&gt;We’re incredibly excited for the future and we hope that we can make an even bigger impact on the JavaScript community.&lt;/p&gt;

&lt;p&gt;Always bet on JavaScript.&lt;/p&gt;

&lt;p class=&quot;text-right&quot;&gt;— The recently Babel team&lt;/p&gt;
</description>
        <pubDate>Sun, 15 Feb 2015 09:18:00 +0000</pubDate>
        <link>https://babeljs.io/blog/2015/02/15/not-born-to-die</link>
        <guid isPermaLink="true">https://babeljs.io/blog/2015/02/15/not-born-to-die</guid>
        
        
        <category>announcements</category>
        
      </item>
    
      <item>
        <title>2to3</title>
        <description>&lt;p&gt;These past few weeks we’ve seen lots of activity on 6to5; thousands are downloading it every day from all corners of the world. In the past month, over 200 issues have been closed. Since the 2.0 release, there have been 867 commits and 60 minor and patch releases. It’s now among the top 1% of most downloaded packages on npm, with nearly 100k downloads in the last month alone.&lt;/p&gt;

&lt;p&gt;Today we are releasing 3.0.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; 6to5 doesn&amp;#39;t hold onto bug fixes or new backwards compatible features for major releases. Some of the features listed are from later 2.x releases.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3 id=&quot;loose-mode&quot;&gt;Loose Mode&lt;/h3&gt;

&lt;p&gt;6to5 is very focused on spec-compliancy in everything that it does. Sometimes the spec requires a lot of complexity around edgecases that don&amp;#39;t affect most code.&lt;/p&gt;

&lt;p&gt;We’ve added Loose Mode for ignoring some of these edgecases in order to create cleaner, smaller, and faster executing output.&lt;/p&gt;

&lt;p&gt;For example, calling &lt;code&gt;super()&lt;/code&gt; inside a constructor would normally be compiled to:&lt;/p&gt;
&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-js&quot; data-lang=&quot;js&quot;&gt;&lt;span class=&quot;kd&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;Foo&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;nx&quot;&gt;_get&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;Object&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;getPrototypeOf&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;Foo&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;prototype&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;),&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&amp;quot;constructor&amp;quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;).&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;call&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;However, with Loose Mode it is compiled to:&lt;/p&gt;
&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-js&quot; data-lang=&quot;js&quot;&gt;&lt;span class=&quot;kd&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;Foo&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;nx&quot;&gt;Bar&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;call&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Before you use Loose Mode, you should be aware that it doesn&amp;#39;t line up with the spec completely, it may lead to incompatible code if you aren&amp;#39;t aware of these inconsistencies. Check out the &lt;a href=&quot;/docs/usage/loose&quot;&gt;docs&lt;/a&gt; for more info.&lt;/p&gt;

&lt;h3 id=&quot;performance-improvements&quot;&gt;Performance Improvements&lt;/h3&gt;

&lt;p&gt;In the past few weeks &lt;a href=&quot;https://github.com/gaearon&quot;&gt;@gaearon&lt;/a&gt; has done some amazing work to improve 6to5 compilation time by over 200%. These kinds of improvements are extremely important to us and we’re happy to see such great contributions from community members.&lt;/p&gt;

&lt;h3 id=&quot;playground:-mallet-operator&quot;&gt;Playground: Mallet Operator&lt;/h3&gt;

&lt;p&gt;As seen in Ruby and CoffeeScript, the Mallet operator allows you to conditionally assign values based on their falsy-ness.&lt;/p&gt;
&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-js&quot; data-lang=&quot;js&quot;&gt;&lt;span class=&quot;nx&quot;&gt;a&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;||=&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;b&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;will behave like&lt;/p&gt;
&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-js&quot; data-lang=&quot;js&quot;&gt;&lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;!&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;a&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;a&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;b&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;This one comes to you from &lt;a href=&quot;https://github.com/jridgewell&quot;&gt;@jridgewell&lt;/a&gt;. We encourage proposal authors to come forward in order to get their ideas implemented alongside all of the latest language and API features.&lt;/p&gt;

&lt;h3 id=&quot;selfcontained&quot;&gt;selfContained&lt;/h3&gt;

&lt;p&gt;We’ve also introduced a new optional transformer that negates the need for a polyfill and bypasses all 6to5 &lt;a href=&quot;/docs/usage/caveats&quot;&gt;caveats&lt;/a&gt;. It will automatically alias ES6 static methods and built-ins as well as include &lt;code&gt;regenerator&lt;/code&gt; whenever you use async functions or generators. This is great for libraries that don&amp;#39;t want to pollute the global scope.&lt;/p&gt;

&lt;p&gt;This replaces the &lt;code&gt;coreAliasing&lt;/code&gt; transform and the &lt;code&gt;includeRegenerator&lt;/code&gt; option. Check out the &lt;a href=&quot;/docs/usage/transformers#selfContained&quot;&gt;docs&lt;/a&gt; for more info.&lt;/p&gt;

&lt;h3 id=&quot;namespaced-transformers&quot;&gt;Namespaced Transformers&lt;/h3&gt;

&lt;p&gt;In 3.0, we’ve renamed all of the transformers, not just for consistency but in order to namespace them.&lt;/p&gt;

&lt;p&gt;For example, we’ve renamed all of the es7 transformers to be things like &lt;code&gt;es7.comprehensions&lt;/code&gt; or &lt;code&gt;es7.objectSpread&lt;/code&gt; so if you would like to blacklist all of the es7 transformers you can simply:&lt;/p&gt;
&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-sh&quot; data-lang=&quot;sh&quot;&gt;&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;6to5 --blacklist es7
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;For a full list of the renamed transformers see the &lt;a href=&quot;https://github.com/6to5/6to5/blob/master/CHANGELOG.md#300&quot;&gt;Changelog&lt;/a&gt;.&lt;/p&gt;

&lt;hr&gt;

&lt;p&gt;There are many new features and bug fixes that makes v3 an excellent release. Be sure to review them all in the &lt;a href=&quot;https://github.com/6to5/6to5/blob/master/CHANGELOG.md#300&quot;&gt;Changelog&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;We’d like to thank everyone who has been involved in the 6to5 community and especially those who have contributed to making 3.0 happen.&lt;/p&gt;

&lt;p&gt;The future is looking bright.&lt;/p&gt;

&lt;p class=&quot;text-right&quot;&gt;— The 6to5 team&lt;/p&gt;
</description>
        <pubDate>Tue, 27 Jan 2015 11:40:00 +0000</pubDate>
        <link>https://babeljs.io/blog/2015/01/27/2to3</link>
        <guid isPermaLink="true">https://babeljs.io/blog/2015/01/27/2to3</guid>
        
        
        <category>announcements</category>
        
      </item>
    
      <item>
        <title>6to5 + esnext</title>
        <description>&lt;p&gt;The past few months have been exciting for 6to5. We’ve gone from being an educational project to having 100k downloads on npm, there’s been 1,800 commits and 155 releases, we now support every major JavaScript build system, and recently we became a Sprockets 4.0 default. To top it off, our new website and documentation received tens of thousands of pageviews, and has been featured by several publications including JavaScript Weekly.&lt;/p&gt;

&lt;p&gt;&lt;img class=&quot;img-responsive&quot; alt=&quot;npm downloads of 6to5, traceur, and esnext&quot; src=&quot;/images/blog/2015-01-12-6to5-esnext/chart-1.png&quot;&gt;&lt;/p&gt;

&lt;p class=&quot;text-center small text-muted&quot;&gt;(Source: npm, includes 5-day moving point average)&lt;/p&gt;

&lt;p&gt;And we’re just getting started...&lt;/p&gt;

&lt;p&gt;6to5’s mission is to take future versions of JavaScript and compile them into spec compliant, performant, and readable JavaScript files you can run today. With built-in support for JSX and Flow Types, 6to5 provides a lot more than other transpilers.&lt;/p&gt;

&lt;p&gt;Our top priority is eliminating any barriers to ES6+ adoption, and while 6to5 may be the most feature-ready ES6 transpiler out there right now, there are other great projects attempting to do the same. Traceur Compiler is the most common alternative to our compiler, but it’s also the most different since it relies heavily on a runtime. Other alternatives with similar approach to 6to5 include: es6-transpiler, es6now, jstransform, and esnext.&lt;/p&gt;

&lt;p&gt;esnext is the closest 6to5 in it’s aim. With a focus on creating a smarter transpiler that can create higher quality ES5-compatible output, both projects are easy to get started with, and both care deeply about creating the best tool for developers.&lt;/p&gt;

&lt;p&gt;A few weeks back, Stefan Penner reached out to us hoping that, because we share the same mission, we might be able to unite our efforts. Excited by the idea, we quickly scheduled a meeting to discuss what that might mean.&lt;/p&gt;

&lt;p&gt;The meeting went well:&lt;/p&gt;

&lt;blockquote class=&quot;twitter-tweet center-block&quot; lang=&quot;en&quot;&gt;&lt;p&gt;&lt;a href=&quot;https://twitter.com/hashtag/6to5?src=hash&quot;&gt;#6to5&lt;/a&gt; + &lt;a href=&quot;https://twitter.com/hashtag/esnext?src=hash&quot;&gt;#esnext&lt;/a&gt; I&amp;#39;m looking forward to our future together! Thanks guys &lt;a href=&quot;https://twitter.com/sebmck&quot;&gt;@sebmck&lt;/a&gt; &lt;a href=&quot;https://twitter.com/stefanpenner&quot;&gt;@stefanpenner&lt;/a&gt; &lt;a href=&quot;https://twitter.com/eventualbuddha&quot;&gt;@eventualbuddha&lt;/a&gt; &lt;a href=&quot;https://twitter.com/Rich_Harris&quot;&gt;@Rich_Harris&lt;/a&gt;&lt;/p&gt;&amp;mdash; James Kyle (@thejameskyle) &lt;a href=&quot;https://twitter.com/thejameskyle/status/551474226708766720&quot;&gt;January 3, 2015&lt;/a&gt;&lt;/blockquote&gt;

&lt;script async src=&quot;//platform.twitter.com/widgets.js&quot; charset=&quot;utf-8&quot;&gt;&lt;/script&gt;

&lt;p&gt;We’ve decided that because of our shared goals and philosophy it makes sense to merge the two projects in an effort to build a better transpiler.&lt;/p&gt;

&lt;p&gt;So what will this mean for both projects?&lt;/p&gt;

&lt;p&gt;The esnext team will start work on 6to5 bringing their skillset and experience to make it faster and more spec-compliant. On our end, we will be migrating people from esnext to 6to5—we’ve already ported all of the esnext tests to 6to5 to ensure nothing will break.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Ember CLI users (currently using esnext) can expect 6to5 to become installed by default replacing esnext.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;You can expect continued work on 6to5; we’re always finding ways to grow and refine. We hope others will join our efforts so our energy can be spent improving rather the competing.&lt;/p&gt;

&lt;p class=&quot;text-right&quot;&gt;— The 6to5 team&lt;/p&gt;
</description>
        <pubDate>Mon, 12 Jan 2015 10:40:00 +0000</pubDate>
        <link>https://babeljs.io/blog/2015/01/12/6to5-esnext</link>
        <guid isPermaLink="true">https://babeljs.io/blog/2015/01/12/6to5-esnext</guid>
        
        
        <category>announcements</category>
        
      </item>
    
  </channel>
</rss>
