this post was submitted on 23 Aug 2023
527 points (96.0% liked)

Programmer Humor

19623 readers
80 users here now

Welcome to Programmer Humor!

This is a place where you can post jokes, memes, humor, etc. related to programming!

For sharing awful code theres also Programming Horror.

Rules

founded 1 year ago
MODERATORS
 

Why do we need appimage when we can have single binary statically compiled executable?

Additionally, I can't really understand why are dynamically linked libraries so popular and how on earth anyone who ever had a ".dll / .so not found" error thinks this is a good idea.

The main idea as far as I understand was to be able to share code which I think everyone knows work only in theory, besides would it not be easier to just recompile the executable from source with updated dependency statically linked?

Other idea behind dlls were that you could replace a dll with different dll as long as the api was compatible which is very unlikely scenario for average people.

Yet another possible advantage would be that the library code is shared so it takes less space on disk which might be true for some libraries which are very common but on the other hand static compilation only includes the part of library code that is used by the program so it takes less space anyway and is more optimized.

So the reasons to use the dlls can be easily dismissed.

About the disadvantages - if the dll is not present the program will not work. It's quite simple and in my view if you create a program which does not work by itself then that's a failure on your side.

The dlls are just nightmare most of the time, static compilation for the win. (pic for attention)

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

Honestly, I love statically compiled binaries for their simplicity. I was writing a small utility in Rust today and I wanted to share it with a colleague on windows.

One command to cross compile my Linux version to windows version and it worked on first attempt on his computer. To me it's worth giving up a lot of the advantages of shared libraries for that kind of simplicity.

There is no install. There is only run.

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

We should replace software repositories with the friendly person who stops by with a USB. Running "apt upgrade" pulls up an Uber-like interface that says when your software will arrive. Latency is terrible but bandwidth is phenomenal.

[–] dot20 5 points 1 year ago (1 children)

IIRC apt actually does support external media (because back in the day, not everyone had fast internet).

[–] [email protected] 2 points 1 year ago

Yes it does, still used when installing from media like DVD