this post was submitted on 22 Sep 2023
25 points (93.1% liked)

Programming

16975 readers
1288 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
 

I mean, sure, that's probably heavily influenced by the need for bundling for the frontend.

But it isn't done blindly. Bundlers reduce the overall size of the code, either due to minification or tree-shaking (removing unused modules). It also removes the filesystem overhead of resolving and opening other modules.

Would bundling be useful in other interpreted languages?

I suppose you may count JVM's compilation to bytecode as being very similar.

you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 7 points 1 year ago* (last edited 1 year ago) (1 children)

The size of the code is mostly irrelevant if you're not shipping it to clients over the network on every request. Short of truly gargantuan statically-linked binaries in compiled languages, anyway, and bundling isn't really an applicable concept there. And similarly, the overhead of loading modules from the filesystem is a one-time cost that's mostly irrelevant for server-side code that runs for days or weeks or years at a time.

On the other hand, the complexity overhead of adding the additional bundling step is a major drag on development productivity, debuggability, etc.

[–] [email protected] 2 points 1 year ago (2 children)

The size of the code still impacts your deployment. Moreover, if you're using something like AWS lambda, small changes can have significant influence on cold start time.

I agree that an extra step is not desirable, but this would only be done for production deployments (and consequently pre-prod if you do that).

[–] [email protected] 3 points 1 year ago* (last edited 1 year ago)

Lambda is certainly an interesting case for this, I'll give you that. Outside of that, though, the impact on deployment speed is also not relevant; the bottlenecks for deployment are things like CI, canarying, even rolling blackout windows across AZs, etc. The actual time spent transmitting your build artifact over the network is completely negligible even at huge sizes