Remix.run Logo
order-matters 3 hours ago

>We also live in a world where a package written by someone learning to code ended up critically underpinning the entire ecosystem and is downloaded 500 million times a month

whoa what? which one is that?

eterm 2 hours ago | parent | next [-]

As another commenter said, it's "is-even":

https://github.com/i-voted-for-trump/is-even

From that page:

> I created this in 2014, when I was learning how to program.

I've nothing against Jon Schlinkert, it's not his fault the way we build software is more than messed up, where our build systems are so brittle that, "Throw out the universe and rebuild it from scratch" became not just acceptable, but the main way to get build systems to work reliably.

hnuncommon 2 hours ago | parent | prev [-]

Check is-even and is-odd npm packages. https://www.npmjs.com/package/is-even

vel0city 2 hours ago | parent [-]

That's still quite a ways away from 500M+ downloads a month, more like ~4M downloads a month.

Still a huge number of downloads, don't get me wrong!

eterm 2 hours ago | parent [-]

You're right, I was reading the stats for "is-number" and mixing them up for "is-even":

https://www.npmjs.com/package/is-number

170M downloads / week.

Same author, similar vintage. Arguably a necessary package, but that just further indicates how messed up javascript was.

vel0city an hour ago | parent [-]

So nuts.

> Arguably a necessary package

Arguably a somewhat important part of a standard library!

eterm an hour ago | parent [-]

A large part of the problems of Javascript are corollaries of lacking of a good standard library, and the relatively long time it took and is still taking to fix that.

It wasn't really until ES2015 that a better standard library really started to take shape, and, thanks to IE11, it was a very long time before that didn't need poly-filling.

In a sane world, you'd just parse whatever you're after and then check for NaN or null.

You can't do that. Pop open your favourite javascript runtime and type:

    Number.parseInt("123Garbage")