Skip to content

Instantly share code, notes, and snippets.

@UltCombo
Last active December 15, 2015 15:01
Show Gist options
  • Save UltCombo/88a60c785256c85689b7 to your computer and use it in GitHub Desktop.
Save UltCombo/88a60c785256c85689b7 to your computer and use it in GitHub Desktop.
Some thoughts

Babel 6

Babel is (or at least was supposed to become) the definitive tool for parsing, transforming and generating JavaScript code. That is, it should serve as the base for all modern JavaScript tooling, including linting, syntax highlighting and transpiling. It would also serve as a testing ground for ECMAScript proposals, allowing the community to try out and provide feedback on new proposals before they are even implemented on engines, thus rocketing the JavaScript language's evolution.

The latest major release of Babel (v6) brought huge changes, making Babel much more modular—all transpiling logic has been split into plugins that you can disable or replace, and the plugin API had quite a few changes and improvements as well.

Now, let's get to the point. Babel 6 was published about a month and a half ago, and well, it has been broken since the publication. Okay, not really. Broken releases happen to everyone, shit happens. What I mean is, more and more high priority issues are accumulating in their issue tracker, and the Babel repository is seeing very low activity, which is quite odd after such drastic changes and serious bugs. Although Babel has a very talented set of contributors, it may be worth adding that the author responsible for more than 99% of the Babel codebase is now working (full-time, I believe) for Facebook and travelling the world to give talks quite often. I can't tell whether this is causation or correlation with the unexpected low repository activity, though.

Next, although Babel 6 has been published well over a month ago, the site documentation is still very incomplete and poor in comparison to the old v5's. You can still find your way through if you have the time to go through the site documentation, the blog, some tweets and repositories' READMEs. Perhaps some Stack Overflow and GitHub issues too.

Just for the sake of comparison, babel-runtime used to have a dedicated page accessible via the main navigation menu, explaining exactly how it works and what it is useful for. If you aren't aware, Babel 5's babel-runtime externalizes the Babel helpers (thus removing some code duplication) and polyfills your code without polluting the global environment, thus being ideal for library authors. In Babel 6, babel-runtime is no longer in the main navigation menu and its page has absolutely no information on what it is or what it is used for. After battling my way just to be able to use it, I found out that Babel 6's babel-runtime is terribly broken ([1], [2]), so perhaps that is why its documentation is hidden for the moment. I still have the wishful thinking that babel-runtime will remain mainstream, as that is the only proper way to develop and publish libraries compiled with Babel.

One more point. You may have noticed I've been linking to this Phabricator thing. That is because Babel has moved its issue tracker from GitHub to Phabricator. Honestly, I've taken it easy on the other topics so far, but I really can't help on this one. As far as I can see, this only adds an extra barrier for no real gain. For comparison, the usual flow that most open source users are used to is to just visit a repository and click the shiny "New issue" button. With Phabricator, you have to visit another site, register and learn how to use a new system (which has simply terrible interface and usability) in order to try to report an issue. It even looks like the Babel team does not want people to report issues. Again, this is a non-sensical extra barrier for little (if any) to no gain, in my opinion.

Don't get me wrong. I've preached and evangelized Babel up and down, wrote blog posts, gave talks, wrote tools and workflows on top of it and everything. I still believe that Babel has the potential to be the definitive tool for everything related to JavaScript. But, considering these recent events, I can't help but fear for the future of Babel—and, consequently, the future of the JavaScript language itself.

In any case, I hope Sebastian is enjoying Dubai, while I sit here with a broken build.

npm

npm. Oh npm. So many people hate you, yet I always proudly stood by your side, as one of the relatively few that understands (a good part of) your quirks. But you are not going to escape this pseudo-rant note.

I've said it time and time again. npm is the most misunderstood JavaScript tool. But it gets worse. The npm team's smartasses decided to remove the FAQ. For countless times I've witnessed lost souls being enlightened by the miraculous FAQ, be it on their inquiries for why the god forbidden node_modules directory is called that way and cannot and shall not ever be changed, or why the proper spelling of npm is always lowercase. Oh well, now all that information meets the inevitable limbo of broken internet links.

I can only guess the npm team fancies a mysterious air around them.


Post scriptum

I sincerely hate writing off negativity, but this was just too much to hold to myself. Putting my thoughts on the paper (or rather, the screen) really helps relieving stress and anxiety, as well as putting my thoughts in order. I know this is mostly nerdo stuff that virtually no sane person would care about, but this is the life I chose—to be a programmer, an ECMAScript enthusiast, and this does have a meaning for me.

Depending on the circumstances, I may write more of these. Thanks for reading.

@marciofao
Copy link

You rock, dude!

@marciofao
Copy link

As you may know I am also a Open source Enthusiast and I wish the world run on it. However, many of the brilliant solutions brought by them lacks in resources and maintenance due to the lack of community working on it and the inequality of experience that contributors have. For me it is such a sad thing to say, but part of the truth. At the same time, I totally understand how hard would it be to have to change to one another unknown and, maybe proprietary tool when the ones we are used to deal with start to break. Anyways, Open-source tools still a big thing and conquered so much space. I just hope that it get better someday!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment