▲ | chipsrafferty 2 days ago | |
Have you ever wondered why padStart is part of the standard library? You are unaware of a core part of JavaScript history, which is why you don't understand why "I'm not importing a library to do left pad" is not only a proper example, but THE BEST example. String.padStart was added in 2017. This happened in 2016 https://en.m.wikipedia.org/wiki/Npm_left-pad_incident | ||
▲ | wizzwizz4 a day ago | parent [-] | |
The left-pad incident was a problem with the build toolchain, not a problem with using a dependency. String padding is one of those fiddly things that you have to spend a couple of minutes on, and write 4–5 tests for, lest you get an off-by-one error. It makes perfect sense to bring in a dependency for it, if it's not available in the standard library, just as I might bring in a dependency for backprop (15 lines: https://github.com/albertwujj/genprop/blob/master/backprop.p...). My personal style is to reimplement this, but that doesn't mean it's foolish or unjustified to bring in a dependency. It is, however, almost never justified to bring in a dependency for something that's in the standard library. The correct solution for that, in JavaScript-for-the-web, is a shim. left-pad is not a suitable example. A better example would be https://www.npmjs.com/package/ansi-red:
But while this makes a point, does it really make the original point? This ansi-red library has at least two footguns, right off the bat. |