this post was submitted on 26 Dec 2025
362 points (98.1% liked)

Programming

24072 readers
188 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 !webdev@programming.dev



founded 2 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
[–] squaresinger@lemmy.world 9 points 1 day ago (2 children)

On the one hand, tree shaking is often not used, even in large corporate projects.

On the other hand, tree shaking is much less effective than what a good compiler does. Tree shaking only works on a per-module basis, while compilers can optimize down to a code-line basis. Unused functions are not included, and not even variables that can be optimized out are included.

But the biggest issue (and one that tree shaking can also not really help against) is that due to the weak standard library of JS a ton of very simple things are implemented in lots of different ways. It's not uncommon for a decently sized project (including all of the dependencies) to contain a dozen or so implementations of a padding function or some other small helper functions.

And since all of them are used somewhere in the dependency tree, none of them can be optimized out.

That's not really a problem of the runtime or the language itself, but since the language and its environment are quite tightly coupled, it is a big problem when developing on JS.

[–] olafurp@lemmy.world 4 points 1 day ago

"Mature ecosystem" it's called in JS land.

I wish nodejs or ecmascript would have just done the Go thing and included a legit standard library.

[–] arty@feddit.org 2 points 1 day ago

Tree-shaking works on per function basis