this post was submitted on 07 Jun 2023
134 points (93.5% liked)

Asklemmy

43940 readers
680 users here now

A loosely moderated place to ask open-ended questions

Search asklemmy 🔍

If your post meets the following criteria, it's welcome here!

  1. Open-ended question
  2. Not offensive: at this point, we do not have the bandwidth to moderate overtly political discussions. Assume best intent and be excellent to each other.
  3. Not regarding using or support for Lemmy: context, see the list of support communities and tools for finding communities below
  4. Not ad nauseam inducing: please make sure it is a question that would be new to most members
  5. An actual topic of discussion

Looking for support?

Looking for a community?

~Icon~ ~by~ ~@Double_A@discuss.tchncs.de~

founded 5 years ago
MODERATORS
 

What opinion just makes you look like you aged 30 years

you are viewing a single comment's thread
view the rest of the comments
[–] Hagarashi8@sh.itjust.works 1 points 1 year ago (1 children)

I mean, you could have GUI for some CLI tool.

Yes, I've seen that pattern before, but:

  1. I wouldn't expect them to have many libraries in common, other than platform libraries like libc, since they have completely different purposes.
  2. I was under the impression that Docker is for server applications. Is it even possible to run a GUI app inside a Docker container?

Also, if you are going to make something that have more than one binary

If they're meant to run on the same machine and are bundled together in the same container image, I would call that a questionable design choice.

In the time i was thinking about some kind of toolkit installed though distrobox. Distrobox, basically, allows you to use anything from containers as if it was not. It uses podman, so i guess it could be impossible to use docker for GUI, although i cant really tell.

inlining is, as matklad once put it, the mother of all other optimizations. Dynamic linking leaves potentially a lot of performance on the table.

Yes, but static linking means you'll get security and performance patches with some delay, while dynamic means you'll get patches ASAP.

[–] argv_minus_one@beehaw.org 1 points 1 year ago (1 children)

dynamic means you’ll get patches ASAP.

Some claim this doesn't work in practice because of the ABI issues I mentioned earlier. You brought up Semver as a solution, but that too doesn't seem to work in practice; see for example OpenSSL, which follows Semver and still has ABI issues that can result in undefined behavior. Ironically this can create security vulnerabilities.

[–] Hagarashi8@sh.itjust.works 1 points 1 year ago* (last edited 1 year ago) (1 children)

Yeah, but there's by lot more security improvement by having ability to apply fix for severe vulnerability ASAP than weakening from possible incompativilities. Also, i wonder why i never brought it up, shared libs are shared, so you can use them across many programming languages. So, no, static is not the way to replace containers with dynamic linking, but yes, they share some use cases.

[–] argv_minus_one@beehaw.org 0 points 1 year ago (1 children)

Yeah, but there’s by lot more security improvement by having ability to apply fix for severe vulnerability ASAP than weakening from possible incompativilities.

Um, we're talking about undefined behavior here. That creates potential RCE vulnerabilities—the most severe kind of vulnerability. So no, a botched dynamically-linked library update can easily create a vulnerability worse than the one it's meant to fix.

Also, i wonder why i never brought it up, shared libs are shared, so you can use them across many programming languages.

Shared libraries are shared among processes, not programming languages.

[–] Hagarashi8@sh.itjust.works 1 points 1 year ago

Shared libraries are shared among processes, not programming languages.

You still can use them in any programming language