this post was submitted on 18 Nov 2023
88 points (96.8% liked)

Programming

17492 readers
43 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 1 year ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
[–] whofearsthenight@lemm.ee 4 points 1 year ago (1 children)

I don't think that even the languages are the problem, it's the toolchain. While certainly if you went back to C or whatever, you can design more performant systems, I think the problem overall stems from modern toolchains being kinda ridiculous. It is entirely common in any language to load in massive libraries that suck up 100's of mb of RAM (if not gigs) to get a slightly nicer function to lowercase text or something.

The other confounding factor is "write once, run anywhere" which in practice means that there is a lot of shared code and such that does nothing on your machine. The most obvious example being Electron. Pretty much all of the Electron apps I use on the reg (which are mostly just Discord and slack) are conceptually simple apps that have analogues that used to run on a few hundred mbs of storage and 10's of mb of RAM.

Oh, one other sidetone - how many CPUs are wasting cycles on things that no one wants, like extremely complex ad-tracking/data mining/etc.

I know why this is the case, and ease of development does enable us to have software that we probably otherwise wouldn't, but this is a thing that I think is a real blight on modern computing, and I think it's solvable. I mean, probably the dumbest idea, but improving translation layers to run platform-native code can be vastly improved. Especially in a world where we have generative AI, there has to be a way to say "hey, I've got this javascript function, I need this to work in kotlin, swift, c++, etc."

[–] onlinepersona@programming.dev 2 points 1 year ago (1 children)
[–] porgamrer@programming.dev 1 points 1 year ago (1 children)

LLVM is ironically a very slow compiler back-end, whose popularity has contributed to a general slow-down in compilation speed across the whole industry (it's even slow at doing debug builds for fast iteration).

WASM has some promise though

[–] onlinepersona@programming.dev 1 points 1 year ago

Doesn't really matter if the compiler is slow if the result is optimized and fast 🤷 Rust compiles slower than C, but that's because C has no safeguards (excluding static typing). Very often the wasted CPU cycles are on the end of the user, not the developer.