1. 32
  1.  

  2. 14

    Isn’t the problem that Babel is somewhat unsexy project being at a dead end?

    A few years ago, if you wanted to write “plain” Javascript and get somewhat ergonomic features (ES6, async/await etc), you had to transpile for backwards compat in the browsers. However browser have caught up. If you are that way inclined, it’s today possible to hand code plain javascript and both get somewhat ergonomic features and run in most browsers.

    But then, does anyone hand code javascript anymore? The sane choice is Typescript (or Rust! or some other typed language), and why would I not use Typescript directly instead of Babel? Ok, granted, Babel has a gazillion plugins and allow for building all sort of things, but it goes into the realms of “bundling”.

    Bundling used to be synonymous with webpack, not sure it is anymore. We use esbuild because it’s blazingly fast https://github.com/evanw/esbuild - and we managed to cram all bundling needs into it (CSS, Typescript, SVG etc).

    Babel is a beast of a project, with an enormous dependency tree. It might just be me, but I actively try to make sure none of our tools (testing, building, bundling) pull in Babel.

    If I were to donate to an open source project in this area. I’d try to find something that takes us out of this transpiling madness, or at least does it extremely fast (like esbuild).

    1. 7

      Despite the hype, I don’t think TypeScript has overtaken JavaScript usage (or is even probably that close, to be honest). I prefer vanilla JS to TS or babelized JS. None of the projects I work on require supporting ancient browsers, so modern browsers do fine with features.

      Babel is a beast of a project, with an enormous dependency tree. It might just be me, but I actively try to make sure none of our tools (testing, building, bundling) pull in Babel.

      I’m not sure why this matters if you’re using babel as a dev-dependency. It’s not like it’s shipped to browsers with your production code.

      1. 5

        I’m not sure why this matters if you’re using babel as a dev-dependency. It’s not like it’s shipped to browsers with your production code.

        Oh, wow. Trust me, even dev-dependencies can cause unwanted hair loss. The fewer things there are, the fewer things there are to break. Not to say it makes sense to get rid of all the things, necessarily… but I sympathize with the desire.

        1. 3

          The concern feels kinda vague to me. I agree it can “feel” weird to pull in large dependencies via npm, but Babel is a compiler. You could say similar things about typescript. I have used both in production and never been aware of shipping a bug that was the result of either tool. If you’re going to use a compiler then you’re trusting and hoping it works, and I feel like the largeness of that tool’s codebase should mostly be a black box to the developer who wields it. Otherwise we could really just say the same thing about any compiler, like ever.

        2. 5

          I prefer vanilla JS to TS

          What’s your reason for this? Whenever I have to switch over to vanilla JS from TS I can feel my productivity slow down by about 10x, and I’m about 10x less confident that the code will behave as intended especially after a refactor or when I have to deal with the this funny-business that vanilla JS developers like to use.

          The intellisense alone is worth the switch, not to mention the number of bugs caught by the type system that would otherwise cause mysterious runtime errors. Personally I would love to take a TypeScript job but for my own sanity would never in a million years accept a job writing vanilla JS.

          1. 2

            My reason for wanting less boilerplate and another layer between what I’m writing and what is actually deployed? :P

            I’m not sure what you even mean with the this funny-business that vanilla JS developers like to use - I don’t use this really ever, but I write functional JS. If I’m writing classes for a project (i.e. if a project uses classes and I want my code to look the same), I use fat arrows to encapsulate this just like you would in TS. TS to me is a way for people who came from things like Java to feel “safe” in a language they don’t quite understand. TS to me is the Java-ization of JavaScript and in my experience at 4 different companies, the people who love TS largely come from that background.

            I’ve been writing JS (vanilla) since the late 90s. It’s a language I know and understand very well. TS introduces complexity (both dependencies and its own type quirks) with little to no benefit for me. I’ve never had issues with types in any of the apps I’ve developed.

            1. 2

              You should be an assembly programmer then! :)

              I’ve witnessed a number of people use this as a “magic” rebindable-at-will state variable to enable/disable certain features of a callback function depending on the context. It might be momentarily convenient for the author, but it’s a huge pain for others to read / maintain.

              The big advantage to TS is the type inference and intellisense, which are forms of baked-in, on-demand, automatically-in-sync documentation. It’s also not just Java programmers who like TS – Haskell programmers feel much more comfortable writing TS rather than JS. I’m sure you’ve heard of fp-ts!

        3. 5

          Isn’t the problem that Babel is somewhat unsexy project being at a dead end?

          All the more reason to pay people to care about the project: if your project uses it, that’s cheap compared to paying developers for keeping up with the JavaScript build system hype train and integrate all the things you need to be sexy and modern.

          1. 7

            “Unsexy” is a very good reason to pay people to work on it.

            “At a dead end” is a very good reason to stop spending money on it. I don’t use Babel at work, even though I write JavaScript, because all of our supported browsers have async/await, and the rest of the ES proposals are nice but not that nice.

            1. 1

              “Unsexy” is a very good reason to pay people to work on it.

              “At a dead end” is a very good reason to stop spending money on it.

              You encapsulated that much better then I could have. Allowing “Unsexiness” to control tech is one of my pet peeves.

          2. 2

            But then, does anyone hand code javascript anymore?

            That’s how Javascript is taught in schools.

            1. 2

              But then, does anyone hand code javascript anymore?

              Sure thing. And you’re exactly right: writing for reasonably modern browsers is reasonably easy. For projects I’ve worked on lately (where the JS component hasn’t been the bulk of the code) it seems to have been a good tradeoff against fussing with a deep development stack.

              1. 2

                There’s a big reason why even in TS projects a lot of people still use Babel: Babel is compatible with TS nowadays, and for development setups it’s much faster than even webpack + TS with the threaded approach.

                I’ve worked on more than one project where for development we had a Babel doing TS (where not all aspects of type checking are as strict on every rebuild) and for production we go with the actual Typescript compiler and do stricter type checking in case the Babel TS checker missed something.

                I believe even the out of the box setups of popular projects starters like Create React App and Next.js do exactly that.

              2. 25

                Babel is used by millions, so why are we running out of money?

                https://github.com/babel/babel/blob/main/LICENSE

                Permission is hereby granted, free of charge, […] subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

                Looks like they got exactly what they requested.

                1. 5

                  shocked_pikachu.png

                  The counter-culture free-love give-everything-away works great until your community becomes infiltrated with parasites and strip-mined for value.

                  Edit:

                  More of a discussion point…if we required that people sell software but required that software to always be open-source to licensees that might ameliorate this problem somewhat. Then again, I kinda assume the search space of “how do we make money with open sores software” was rigorously explored (at least the theory of it) back in the 90s.

                  What’s another approach that solves the free-rider problem?

                2. 10

                  OpenSSL is used by billions, so why can’t they even afford a single developer to work on it?

                  1. 3

                    Wait, really? Even before Heartbleed they had two full-time devs and were pulling in non-trivial amounts of money from support contracts IIRC; has this changed?

                    1. 9

                      This is part of why the Core Infrastructure Initiative was created, because they were relatively underfunded:

                      Prior to the CII funding, only one person, Stephen Henson, worked full-time on OpenSSL; Henson approved well over half of the updates to more than 450,000 lines of the OpenSSL’s source code.[10] Besides Henson, there are three core volunteer programmers. The OpenSSL Project existed on a budget of $2,000 per year in donations, which was enough to cover the electrical bill, and Steve Henson was earning around $20,000 per year.[7] To gather more revenue for the project, Steve Marquess, a consultant for the Defense Department, created the OpenSSL Software Foundation. This allowed programmers to make some money by consulting for organizations that used the code. However, the foundation brought in less than $1 million per year,[5] and the contract work tended to focus on adding new features rather than maintaining the old ones.[7]

                      They did make non-trivial amounts of money from support, but $20k is hardly much to go on for a project as important as OpenSSL is

                      1. 1

                        I wasn’t aware of that. I remember reading plenty of articles bemoaning the lack of funding for OpenSSL. Maybe the situation isn’t as dire as they made it out to be.

                    2. 16

                      Is there an equivalent to Betteridge’s law of Headlines where people ask a worrying question and the answer is just “capitalism”?

                      1. 4

                        I love capitalism.

                        It seems to be easier and easier to target newer browsers, so why depend on babel? The benefit in such a project seems to be shrinking, and with it the money coming in.

                        Money is a great way to decide how to allocate scarce resources.

                        1. 7

                          Markets are brilliant at pricing/allocating goods with mostly marginal costs. They are completely useless to price goods where capital costs dominate over marginal costs.

                          1. 3

                            Those capital costs need to come from somewhere. The capitalist prices the goods to maximize profit, and if that won’t cover the capital investment, they walk away from the idea. Capitalism wins again. Go markets!

                            1. 3

                              A beautiful theory with - to be fair - some (limited) evidence to support it.

                              However, there’s also ample evidence that once the capital costs rise high enough, you get:

                              • Cartel behavior (USA: ISPs and the hospital/insurance arrangement)
                              • Governments stepping in and funding it instead (public roads vs private toll roads)
                              • Single-supplier (or close to) goods (eg there isn’t a competing Suez canal, and you can’t just go to a different 3nm fab if you dislike TMSCs terms)

                              None of these are compatible with society benefiting from markets setting a price.

                              1. 2

                                Cartel behavior happens when governments can be leveraged to block new players (ISPs, MRI councils…)

                                If you in fact have a single supplier, that’s a natural monopoly, and great care must be taken.

                                Markets set prices, including for those roads. When the New Jersey turnpike started, the government enacted a toll to pay back the road. As maintenance costs increase, so do the tolls, and those tolls may encourage people to drive elsewhere.

                                Market pricing works in the vast majority of cases.

                                1. 2

                                  Markets set prices, including for those roads. When the New Jersey turnpike started, the government enacted a toll to pay back the road. As maintenance costs increase, so do the tolls, and those tolls may encourage people to drive elsewhere.

                                  Small nitpick, but I don’t think this particular example works well. If a government setting the price for a good counts as a market, what doesn’t count?

                                  Markets derive their usefulness from being able to create a good price signal, but a price signal is not, by itself, a market.

                                  Cartel behavior happens when governments can be leveraged to block new players (ISPs, MRI councils…)

                                  Yes! And they can be leveraged whenever there are high capital costs to entry, because that’s when you can e.g. afford to pay off politicians and collaborate with the small number of others wealthy enough to play.

                                  Historically, that’s not a large part of the economy, but it’s grown far faster than the marginal-costs-dominate part of the economy for many years and looks set to keep doing so for many more. That implies that - over time - the underlying facts which made markets-by-default the right policy may not remain steady.

                                  If you in fact have a single supplier, that’s a natural monopoly, and great care must be taken.

                                  There’s two really interesting aspects: What constitutes “great care”, and what constitutes a “natural monopoly”.

                                  From many consumers perspective, “devices that can run the IOS software you already own” is a natural monopoly, as is “social media vendors where your friends+family are keen to keep accounts”.

                                  My core argument is that A) The set of privately held natural monopolies is growing, and B) “great care” has not been taken with the new monopolies.

                          2. 2

                            Markets ≠ capitalism

                            Money ≠ capitalism

                            Capitalism is an economic system where productive property is privately owned

                            1. 3

                              Which sounds good but has a bunch of grey areas. When is property productive? When does it become not productive, or does not productive property become productive? Is your computer productive because it can run a web server? If you turn on a Facebook clone, has your computer suddenly become productive? How about a house, where you put family members in exchange for them helping you pay the mortgage and taxes and utilities? Or strangers? What if that space is just your living room you are renting out?

                              The grey areas invite a cohesive view of property, either as not individually owned (the Lord and Serf system) or individually owned (the capitalist ideal). The question becomes how can someone morally own anything, and the way you answer that informs your ideals.

                          3. 3

                            Hagelberg’s law of capitalist headlines?

                          4. 11

                            we settled on $11,000 per month as a baseline salary

                            Am I missing something about working in the USA, or is that very high? Especially for a project running on donations trying to reach sustainability.

                            1. 22

                              That’s $132000/year, which would be a junior developer level of salary at many US tech companies.

                              Also, in the US anyone who is a contractor or “self-employed” pays an automatic additional 15% tax on their wages/salary above the normal income tax (which still applies), and has to fund all their own benefits (health insurance, pension, etc.) from their salary as well (regular employees of companies often get that at least partially funded by the employer).

                              1. 29

                                From my experience, salaries like that at a Junior level are only found in the Bay area and at FAANG like companies. For a lot of the devs who work at small/medium sized companies in reasonably priced areas, junior dev salaries are closer to $60,000-$90,000.

                                1. 8

                                  $132k/year for a jr dev is about 100k more than I’ve seen in areas of the US. Even in NYC, you can expect maybe $75-90k/year as a jr dev at most companies. That seems extraordinarily high.

                                  1. 5

                                    … I got paid a lot more than 32k/yr as a junior developer straight out of school, with bad grades, in the south atlantic, in the aughts.

                                    If you’re getting paid 32k/yr as a programmer, please quit and work at chipotle - you’ll get paid more, probably have better benefits and at least you’ll get free lunch, saving another ~$7/workday.

                                    1. 1

                                      Edit: disregard, I can’t read.

                                  2. 3

                                    That’s $132000/year, which would be a junior developer level of salary at many US tech companies.

                                    Is levels.fyi considered good source to check the average salaries? or any other sites?

                                    1. 5

                                      levels.fyi is good if you’re looking at joining a Big Tech (tm) company or similar companies near Silicon Valley, but it’s definitely not representative of salaries across the country.

                                  3. 8

                                    someone on the orange site mentioned the twitter post by one of the babel founders which claims that the funding went to the wrong hands for some time, though they seem to be biased.

                                    The discussion over there also has some links that seem to proof these claims.

                                    1. 2

                                      Yeah, he seems to have deleted that because he was mostly considering commits and such and ignoring all the work around the project that isn’t just code, and he rightfully got a lot of crap for it.

                                      The scope of the project and the associated busy work around it is very different from when he started it.

                                      1. 1

                                        Like what? What other work was done by Henry that doesn’t result in commits, comments and other visible artefacts?

                                        1. 1

                                          Some of the stuff they mention in the post possibly. Public speaking, other activities involved in fund raising and supporting the project that probably don’t all take place directly in the repository and more likely in other points of contact.

                                          This isn’t so different from work done in engineering organizations. As your responsibility or level of seniority increases, the size of your output might lower, but the impact might be higher.

                                          At the same, time, the quantification that was originally pointed out was a number of pull requests, issues, etc, which is highly disingenuous.

                                          In Open Source projects in particular, an issue investigation can stretch out for weeks or months. PRs can have different sizes, and some of them can perhaps have a lot of work gone into them (research, etc) that isn’t directly visible in code committed. There’s also the time spent in reviewing and understanding contributors work. And all of this becomes even more complex and time consuming as a project grows in size and complexity.

                                    2. 7

                                      One thing to consider is that this number is likely fully-loaded (I imagine that in practice everyone is being paid like a contractor), so there’s a big chunk of that that disappears into taxes, and the takehome is probably more similar to if someone was pulling in $7k/month at a “normal company”. Seems pretty reasonable as take home in places like the US (with high rent + health insurance).

                                      I don’t think that it’s unreasonable for full-time maintainers to expect a salary at that level.

                                      1. 4

                                        I don’t think that it’s unreasonable for full-time maintainers to expect a salary at that level.

                                        I agree. The thing everyone is forgetting about is that for someone of the skill level required to maintain a popular OSS project is likely able to command a salary easily in this range. There are hundreds of companies that would hire them remotely at a salary well above $132k p/year. It’s not just FAANG companies in this range anymore.

                                        I mean, sure there are lots of companies paying 60 to 90k. Maybe those devs are happy with the amount. Maybe they are unhappy, but not motivated to run through interviews. Maybe they haven’t put themselves out there enough with OSS or giving presentations. We don’t know their situations, but if a developer can command a higher salary its not really in our best interests as a community to criticize them. (The fact that some say its unwarranted in this particular situation is a different matter)

                                      2. 1

                                        Even if that’s a huge salary for most tech jobs outside of SF and NY, if we consider the amount of value Babel has created for all the companies around the world and if the project was compensated accordingly they should be drowning in money.

                                      3. 4

                                        IE 11. I’m grateful to the Babel team for helping us support IE 11 when we were contractually obliged to, but I’m equally relieved not to need Babel anymore.

                                        1. 4

                                          This link was posted but removed as business analysis, but I found it interesting as a possible solution to this issue

                                          https://writing.kemitchell.com/2021/05/11/Sell-Babel-8.html

                                          1. 3

                                            FOSS devs should really start thinking in terms of complements. There are too many freeloaders in the world and cheaper product wins by losing profits in the short term.

                                            1. 2

                                              Could you elaborate on how this could be used by Babel?

                                              1. 3

                                                The obvious complements are books and training. Perhaps do something like codepen / cdnjs to get revenue from enterprise customers. Create a marketplace for plugins and charge a cut. Develop plugins for money.

                                            2. 3

                                              I’ve been researching javascript dependency graphs for a while, and to be honest I think that this Babel situation is really indicative of the mess that atomization of libraries provides.

                                              I think Babel is great, but I think it should be folded into something like Webpack. Maybe 10 years ago it would be folded into something like Grunt. The idea that every single OSS project now needs to deal with like…. everything, and that there are 1000 projects all doing this kind of fundraising feels like a major drain on actually moving stuff forward.

                                              This sort of atomization means that we’re reliant on a handful of people to not just give up (beyond the fundraising drains, you could just have burnout from being the one maintainer on Babel-the-one-tc-proposal-everyone-uses-but-nobody-recognizes), instead of having some sort of support from other maintainers who might not touch your part of a project, but who at least would have proximity.

                                              Grouping all this stuff together wouldn’t magically solve things, but hey, Webpack has $400k, Babel has $400k… maybe an org with $800k could do a lot of interesting stuff, without relying on the kindness of randos to not take market salaries elsewhere for real work.

                                              1. 1

                                                Oh, I thought we are talking about Babel and I was surprised that they have full time maintainers. http://babel.pocoo.org/en/latest/