4 ms·
Dear James, I understand that hearing rants about your brainchild that took so much hard work is hard and depressing. I was in your shoes, too. And being a hea
by atemerev 10y ago
Dear James,
I understand that hearing rants about your brainchild that took so much hard work is hard and depressing. I was in your shoes, too. And being a head of popular open source project is very emotionally unrewarding, to say the least. And thank you for your hard work — like nearly every front end developer out there, I used Babel, and it did it job, eventually.
However, I am one of those people who think that Babel6 is terrible, that it "broke the web", and it marked the beginning of the entire JavaScript fatigue era. Babel6 transition took three days of my life, filled it with misery and rage, lost me a customer, and led to my desire to never touch JavaScript again if I can help it. (I moved to ScalaJS eventually).
I ranted about it, too. Like nearly everyone else, I forgot that there are live people behind every project, with their dreams, hopes and justifications for every decision. I didn't want to attack you personally — I just vented my (very real) rage against Babel6 itself, without thinking anything about its author. So, well, nice to meet you.
And I still stand by what I said. Despite your good intentions, it is still terrible, and unintuitive, and definitely not a "something for everyone", unless frustration is something. And I can't think of any way of fixing it, except of moving to another stack (which I did). If there were many people ranting about Babel6 like I did, (and I can imagine), I am truly sorry for the mental suffering you had to endure.
You are cool. You are significantly more competent developer than I am. I use your software, not the other way around. And it is free. But Babel6 is still terrible, and no input from your side can change my opinion. Or perhaps it could, if you provided some technical justification for what you did. But this article is the request to stop ranting about your work, as it hurts you.
For that, I am sorry.
- qwertyuiop924 10y agoUmmm... You do know that you don't have to use Babel to use JS, right? ES5 is here, it was here then, and it works very well. It might have some pointy ends, but they are very well documented at this point.
- atemerev 10y agoYes, of course, unless you had invested a lot into React/JSX, and Babel is the only "official" way (documented and blessed by Facebook) to run React and JSX in production.
- qwertyuiop924 10y agoOoh. Forgot about that. Sorry.
- magicalist 10y ago> However, I am one of those people who think that Babel6 is terrible, that it "broke the web", and it marked the beginning of the entire JavaScript fatigue era. Babel6 transition took three days of my life, filled it with misery and rage, lost me a customer, and led to my desire to never touch JavaScript again if I can help it. (I moved to ScalaJS eventually). Bad news: you are not a special snowflake deserving of attention, the web is still here and doing just fine, and it was your incompetence that lost a customer (Babel 5 is still around for use even today). Many mistakes can be made by open source teams, and something should not be immune to criticism just because it is open source. But this is a great example of noise that harms engagement in a community because you want to feel good on the off chance that lashing out will make someone somewhere feel bad. Maybe try to learn from a piece instead of trying to be cute next time?
- atemerev 10y agoI do sincerely apologize if something I had said sounded offensive to you or anybody else. However, I can't help but ask the question: am I the one who resorts to personal attacks here?
- rfrey 10y agoYour comment reads (to me) as more attacks sandwiched between slices of insincere apologies. You likely did not mean it to read that way, but it does.
- atemerev 10y agoI just tried to note that I am not surprised by the amount of rage that Babel6 transition had caused, as well as that it has nothing to do with its author's person at all. Inalienable right of the author: at any moment in time, they can say "this is my vision and my art — take it as is or leave it". Inalienable right of the user/reader/consumer: judging author's work in whatever way or form they want, misunderstanding it, and generally abusing it in the ways never intended by author. Corollary 1: a user has no right to demand anything from the author. If anything crosses their mind, they might ask the author. Politely. Very. And author has the right to refuse anytime, without explanation. Corollary 2: an author has no right to demand that user has to be happy about their work, or use it the one correct way, or that ranting should stop. The author can only make suggestions and give advice. Politely.
- rhinoceraptor 10y agoDid babel force you to upgrade right when version 6 came out? They bumped the major version, that should be a pretty clear indicator that existing workflows will break. Whenever you use a tool, you're accepting risk for the reward you're getting from it. If I run Gentoo on my servers, it's not really fair to complain when an update breaks something.
- atemerev 10y agoJavaScript world is known by moving fast and breaking things (which is fine for me, I learned to respect this culture). So, when a new version of some popular framework or tool comes out, there's a very real risk that the previous version will be abandoned really soon and left without support from developers and community (I was burned by it quite a few times). So no, had to move forward like everyone else.
- pitaj 10y agoThat's total BS. Even if it was abandoned, it was already in a stable state with no significant bugs. It wouldn't just cease to be supported. Your workflow wouldn't have to change. And losing a customer over it? That sounds like complete incompetence on your behalf, which your customer probably figured out. Even assuming that Babel 5 would be abandoned, why move to Babel 6 so quickly instead of waiting a month or so while the nice guides, gulp plugins, etc are made? Your whole situation and outlook really seems to be blaming anything but yourself for mistakes that you made.
- Klathmon 10y agoNow I apologise if you've explained this elsewhere, but nowhere in your comment did you point out specific problems that you had with Babel 6. You called it "unintuitive", "terrible", "frustrating", and said that it "broke the web", but you never explain how or why. And I think that's part of the problem. It's one thing to suggest improvements, explain why something hurt, or how it caused an issue. It's another entirely to say again and again how much you personally dislike the project without offering anything of substance. Personally, I think that you can suggest improvements, changes, fixes, or say how you would have prefered a change happen without the extra parts about how much you disliked or even hated the project. Again, you could have explained this elsewhere, but without a link, a reference, or just reiterating the bullet points, it's going to come across as just more "bitching" which helps nobody. As for another point of view, for me Babel 6 was a breath of fresh air. I waited a good couple months before updating, and found that it was easier to configure, easier to remove the parts I didn't need, quicker to setup, and overall just nicer to work with. To me it was a welcome change that I saw as Babel giving you an "out", paving the way for a day when you can incrementally remove babel from your pipeline and not have to deal with it again (opposed to the Babel 5 setup which was "all or nothing" unless you dove deep into the configuration hell). It had some fuckups (documentation was difficult at the beginning which is why I held off, and I still believe it has some holes with regards to exactly what some of the plugins do and what each one requires in terms of "polyfills" or other plugins), but nothing is free of problems, and despite all of the complaining about how it "broke the web" everything seems to have moved on fine. Even you yourself admitted it took you 3 days. While everyone involved thinks that's too long, and you are just one of many who had a similar story, in the long run is not that big of a deal. I think there were things that everyone could have done better, and talking about those things specifically is going to be infinitely more helpful than any venting or rage will ever be.
- atemerev 10y agoBut why anybody even need a modular build tool? It's not like it is packed into final build, we don't need to shave off bytes. One size fits all works perfectly here. What is the killer use case for modularity?
- 10y ago
- Gudahtt 10y ago>However, I am one of those people who think that Babel6 is terrible, that it "broke the web", and it marked the beginning of the entire JavaScript fatigue era. Granted, I wouldn't consider this a personal attack. But it definitely qualifies as negative and nonconstructive. I literally can't imagine how one could argue that they "broke the web"; that's completely ridiculous. If the migration path wasn't explained very well, why not say that? Or if you find configuring the tool confusing, and would prefer it to have "sane defaults" in the absence of configuration, why not say that? Instead of calling it terrible and blaming it for the "javascript fatigue era". They realized that what had once been "sane defaults" were no longer sane, so they removed them. That's it. I can accept that there were legitimate complaints to be made, but the hyperbole and general negativity was over the top on this one.
- atemerev 10y agoThe migration path wasn't explained at all. This is fine, if there would be a nice documentation for new version. There wasn't, except for some scattered blog posts. This is fine, if new version offered some exciting new features or simplified thing a lot. But no, everything became significantly more complicated. This is fine, if Babel was a production library packed into final build, and modularity is necessary to save precious bytes from web-transmitted JS. But no, it is a development tool. Nobody cares about its size or one-size-fits-all. I just don't understand. What is the use case that required such a big sacrifice?
- Gudahtt 10y agoNo arguments about the poor documentation on how to migrate; that's fair. But we're straying from the point I was trying to make; your feedback was overly negative and hyperbolic. We're all guilty of doing this at times, but it's not a constructive activity to engage in. I don't fault you personally for making one overly negative comment, but en masse it's harmful for the community.
- Gudahtt 10y agoTo address the other points you raised; I personally found Babel 6 easier to use and understand than Babel 5. I suspect this is because I needed to configure Babel 5 anyway to meet my needs, so I was required to understand the configuration either way. Babel 6 made it much easier to understand what I was asking Babel to do; no magic, everything explicit. With version 5, the default settings were a moving target (which I found confusing), and explicitly configuring it was more complex. Apparently the Babel team had great difficultly deciding what should be included by default as well. Basically anybody that used Babel for something other than "6to5" had to jump through hoops to overwrite the defaults. Seeing as how the Babel team were trying to position it as a general purpose Javascript compiler, that was a problem for them. So, maybe it's worse off for most people because of the change (because it doesn't work with zero configuration anymore), but plenty of people were better off because of it. The library became easier to maintain, and easier to use for a non-negligible number of users.
- leepowers 10y ago> Babel6 transition took three days of my life, filled it with misery and rage, lost me a customer, No it didn't. Technical issues arise all the time, in all manner of projects, and are fixed all the time without losing business. _You_ lost the customer because either a) you didn't properly communicate the technical problems being resolved, and/or b) did a major version deploy without verifying and testing beforehand. Stop projecting your failures as a developer on someone else. Open source software is powerful and comes with no guarantee - we are all provided with enough rope to hang ourselves. This freedom is what enables us to build really cool stuff. But it also means we're all responsible for using it correctly in our particular project contexts.