this post was submitted on 22 Jun 2023
319 points (99.1% liked)
Programming
17308 readers
217 users here now
Welcome to the main community in programming.dev! Feel free to post anything relating to programming here!
Cross posting is strongly encouraged in the instance. If you feel your post or another person's post makes sense in another community cross post into it.
Hope you enjoy the instance!
Rules
Rules
- Follow the programming.dev instance rules
- Keep content related to programming in some way
- If you're posting long videos try to add in some form of tldr for those who don't want to watch videos
Wormhole
Follow the wormhole through a path of communities [email protected]
founded 1 year ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
Node frameworks are famous for this purely because of a lack of standard library. I feel like most languages have a standard library that balance being generic but still providing utilities of common used stuff. So a company that doesn’t want to rely on a random guy’s library can build their own with only the features they want. But with Node, any complicated feature is using a tree of hundreds of random packages that you have no idea who created them.
I believe the nodejs fiasco is what prompted this comic?https://www.google.com/amp/s/www.theregister.com/AMP/2016/03/23/npm_left_pad_chaos/
AMP-free url: https://www.theregister.com/2016/03/23/npm_left_pad_chaos/
Another example is a large number of libraries using an external dependency to check if a number is odd.
I believe it was the OpenSSL-security scandal, iirc.
It's possible leftpad was an example Randall was thinking of, but the date of the comic is Aug 17, 2020, more than 4 years after leftpad.
https://www.explainxkcd.com/wiki/index.php/2347:_Dependency
Someone ought to write a Node.js fork that includes native implementations of popular modules that are unlikely to need maintenance like isodd. Then come with a custom version of NPM that refuse to install the packages.
Deno basically did this by including a standard library that removes the need for the most popular modules. It's the best js/ts experience I've ever had.
I just checked it and seems nice! Also seems to have been well received by the community.