3 ms·
Many of these issues stem from the fact that Javascript doesn't have anything like stdlib or equivalents. I'm willing to bet money that most people can't write
by Etheryte 10mo ago
Many of these issues stem from the fact that Javascript doesn't have anything like stdlib or equivalents. I'm willing to bet money that most people can't write a bug free left-pad in Javascript on the first try without looking stuff up. Reaching for a dependency can make a lot of sense in that context.
- deleted 10mo ago[deleted]
- voidUpdate 10mo agoI'm not a JS developer, so maybe they'd do it differently, but I'd probably do a bounds check, returning early if the target length is less than the input length, then create a string of spaces that is (targetlength - inputlength) long, and return them concatenated. Quick google shows theres a string.repeat method so probably use that (does that not count as part of an stdlib?). Also, I'd bet money that most people couldn't write most things bug free on the first try without looking stuff up unless it's trivial
- Etheryte 10mo agoThat's how I imagine most people would start, but unfortunately that will break on anything beyond basic ascii strings. Arabic, Hindi, Vietnamese, etc use diacritics, combining characters and so on, and this isn't even getting into the mess of emojis and their modifiers.
- voidUpdate 10mo agoWould the same not happen with the original? https://en.wikipedia.org/wiki/Npm_left-pad_incident#/media/File:Left-pad_0.0.3_contents.png https://en.wikipedia.org/wiki/Npm_left-pad_incident#/media/F...
- Etheryte 10mo agoIt would, I was not familiar with the specific package, more so commenting on the problem at large. Even coding problems that sounds fairly straightforward can be a source of many dragons if you don't have good tools to solve them.
- 2muchcoffeeman 10mo agoHow often would it matter? I can certainly write code that would cover all use case I was expecting and case bash all the scenarios. I’m sure I’d fall victim to edge cases. If this was such a common use case that it warranted being in some sort of stdlib, then make a standard lib and make sure it can’t be deleted.