4 ms·
Replacing 4 line solutions with extensive libraries is what caused left-pad.
by drunkendog 3y ago
Replacing 4 line solutions with extensive libraries is what caused left-pad.
- LoganDark 3y agoNo. left-pad was placing a 4-line solution in a library. prettysize is well deserving of library status.
- eviks 3y agoWhat caused left-pad is the the ability to delete published code
- Cthulhu_ 3y agoYeah, copying an incorrect answer from SO thousands of times is much better! (The subject at hand isn't whether libraries are good or not, it's whether copying something off the internet is. In the post, it turns out it isn't. If it was a library, the author could have fixed and updated the library, and the issue would be fixed for everyone that uses it. left-pad isn't an issue with libraries per se, it's an issue with library management)
- Analemma_ 3y agoI understand where you're coming from here, but the whole point of this article is at the 4-line solution is wrong (and the author specifically mentioned that every other answer on the stack overflow post was wrong in the same way as well). "Seemingly-simple problem where every naïve solution contains a subtle bug" is exactly the right use case for a well-designed library method.
- riversflow 3y ago> “It’s wrong” But in a completely benign way. I question why a few edge cases of writing 1000kb instead of 1Mb—so not even a misrepresentation—would ever be worth the code bloat. This is about making stuff slightly more convenient to read.
- mikepurvis 3y agoI agree with you— that was a lot of drumming for what turned out to be kind of a nothingburger as far as the "bug". At the same time, putting this kind of thing in a library (or even a language's stdlib) is worthwhile for exactly this kind of reason— it allows devs to confidently reach for code that other smart people have really agonized over and which definitely covers the corner cases, similar to other common utilities such as sort methods.
- paholg 3y agoOne example: I display available memory in my status bar, which expects strings to be a constant width. If it displayed 1000kb, it would cause alignment issues and annoy the heck out of me
- delta_p_delta_x 3y agoYou should see the implementation of `std::midpoint`[1]. Accounting for correctness even in edge-cases is what large libraries do better than throwaway bits of code. [1]: https://github.com/microsoft/STL/blob/6735beb0c2260e325c3a4c971ec5b75427e9305f/stl/inc/numeric#L669 https://github.com/microsoft/STL/blob/6735beb0c2260e325c3a4c...