Hacker News new | ask | show | jobs
by waboremo 1216 days ago
> shop-tuned version in say 300 lines

But if that was the case, you would do that, resorting to other tools for something that tiny is silly and only really done by beginners. Something that tiny would also unlikely have bug or documentation issues.

There are some great tools that are poorly documented/buggy, yes, but they are quite rare and it's much easier to use them and fork the repo (if inactive) than to build from scratch.

This idea that you avoid creating a dependency mess by writing more of your own work, isn't the entire truth. The dependency is just internal, and far more likely to have poor documentation than open source plugin #4159. So you really haven't solved or avoided the problem at all.

2 comments

You would think that, but this seven line NPM package has 68M downloads a week - https://www.npmjs.com/package/isarray
NPM statistics are easily gamed https://dev.to/andyrichardsonn/how-i-exploited-npm-downloads...

I don't doubt there are a lot of insignificant packages being used, again especially by beginners, I just don't buy it's to that scale

It's pretty easy to find that the example I gave isn't gamed... A cursory search on GitHub can find a couple examples like dotenv [1] and npm's cli [2] both use it via an older version of nodejs/readable-stream [3].

There's also the classic left-pad debacle - https://github.com/left-pad/left-pad/issues/4

[1] - https://github.com/motdotla/dotenv/blob/master/package-lock....

[2] - https://github.com/npm/cli/blob/latest/package-lock.json

[3] - https://github.com/nodejs/readable-stream/

> This idea that you avoid creating a dependency mess by writing more of your own work, isn't the entire truth. The dependency is just internal

The point is that it's better to depend on something simple and quickly fixable than something convoluted. Vendors/sponsors can and do go away.

If you have a skilled API builder, they know how to do KISS. If a specific need requires something that's not KISS-able, such builders will be honest about it and recommend a pluggin. But every shop and domain is different such there are indeed cases where throwing libraries at the problem is the right tool for that particular job.