The diversity of Linux distributions is one of its strengths, but it can also be challenging for app and game development. Where do we need more standards? For example, package management, graphics APIs, or other aspects of the ecosystem? Would such increased standards encourage broader adoption of the Linux ecosystem by developers?

  • dosse91@lemmy.trippy.pizza
    link
    fedilink
    arrow-up
    1
    ·
    edit-2
    25 days ago

    Generally speaking, Linux needs better binary compatibility.

    Currently, if you compile something, it’s usually dynamically linked against dozens of libraries that are present on your system, but if you give the executable to someone else with a different distro, they may not have those libraries or their version may be too old or incompatible.

    Statically linking programs is often impossible and generally discouraged, making software distribution a nightmare. Flatpak and similar systems made things easier, but it’s such a crap solution and basically involves having an entire separate OS installed in parallel, with its own problems like having a version of Mesa that’s too old for a new GPU and stuff like that. Applications must be able to be packaged with everything they need with them, there is no reason for dynamic linking to be so important in Linux these days.

    I’m not in favor of proprietary software, but better binary compatibility is a necessity for Linux to succeed, and I’m saying this as someone who’s been using Linux for over a decade and who refuses to install any proprietary software. Sometimes I find myself using apps and games in Wine even when a native version is available just to avoid the hassle of having to find and probably compile libobsoletecrap-5.so

    • MyNameIsRichard@lemmy.ml
      link
      fedilink
      arrow-up
      1
      ·
      24 days ago

      You’ll never get perfect binary compatibility because different distros use different versions of libraries. Consider Debian and Arch which are at the opposite ends of the scale.

    • pr06lefs@lemmy.ml
      link
      fedilink
      arrow-up
      1
      ·
      24 days ago

      nix can deal with this kind of problem. Does take disk space if you’re going to have radically different deps for different apps. But you can 100% install firefox from 4 years ago and new firefox on the same system and they each have the deps they need.

  • SwingingTheLamp@midwest.social
    link
    fedilink
    arrow-up
    1
    ·
    25 days ago

    One that Linux should’ve had 30 years ago is a standard, fully-featured dynamic library system. Its shared libraries are more akin to static libraries, just linked at runtime by ld.so instead of ld. That means that executables are tied to particular versions of shared libraries, and all of them must be present for the executable to load, leading to the dependecy hell that package managers were developed, in part, to address. The dynamically-loaded libraries that exist are generally non-standard plug-in systems.

    A proper dynamic library system (like in Darwin) would allow libraries to declare what API level they’re backwards-compatible with, so new versions don’t necessarily break old executables. (It would ensure ABI compatibility, of course.) It would also allow processes to start running even if libraries declared by the program as optional weren’t present, allowing programs to drop certain features gracefully, so we wouldn’t need different executable versions of the same programs with different library support compiled in. If it were standard, compilers could more easily provide integrated language support for the system, too.

    Dependency hell was one of the main obstacles to packaging Linux applications for years, until Flatpak, Snap, etc. came along to brute-force away the issue by just piling everything the application needs into a giant blob.

  • MicKet@swiss.social
    link
    fedilink
    arrow-up
    0
    ·
    13 days ago

    @original_reader
    Register app for Internet access

    In my Opinion there should be a way that Applications could register their Internet access.

    - Every Application has to register their Domains or IPs it wish to use
    - Apps like Nextcloud-Client could triger a Sytem Dialog to enter new Addresses on first connect
    - Apps like a Browser get their own “Browser” Profile
    - Apps that do not register their Connection get an auto-attached Browserprofile on the first connect to Internet.

    • Einar@lemm.eeOP
      link
      fedilink
      arrow-up
      1
      ·
      13 days ago

      What would you like to achieve? Would OpenSnitch be of assistance?