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?

  • TrivialBetaState@sopuli.xyz
    link
    fedilink
    arrow-up
    4
    ·
    1 天前

    While all areas could benefit in terms of stability and ease of development from standadization, the whole system and each area would suffer in terms of creativity. There needs to be a balance. However, if I had to choose one thing, I’d say the package management. At the moment we have deb, rpm, pacman, flatpak, snap (the latter probably should not be considered as the server side is proprietary) and more from some niche distros. This makes is very difficult for small developers to offer their work to all/most users. Otherwise, I think it is a blessing having so many DEs, APIs, etc.

  • enumerator4829@sh.itjust.works
    link
    fedilink
    English
    arrow-up
    17
    ·
    3 天前

    Stability and standardisation within the kernel for kernel modules. There are plenty of commercial products that use proprietary kernel modules that basically only work on a very specific kernel version, preventing upgrades.

    Or they could just open source and inline their garbage kernel modules…

    • fxdave@lemmy.ml
      link
      fedilink
      arrow-up
      1
      ·
      2 天前

      I don’t use any of these, but I’m curious. Could you please write some examples?

      • enumerator4829@sh.itjust.works
        link
        fedilink
        English
        arrow-up
        1
        ·
        2 天前

        It mostly affects people working with ”fun” enterprise hardware or special purpose things.

        But to take one example, proprietary drivers for high performance network cards, most likely from Nvidia.

    • ethancedwards8@programming.dev
      link
      fedilink
      English
      arrow-up
      5
      ·
      3 天前

      I’m struggling with this now. There’s an out of tree module I want upstreamed, but the author (understandably) doesn’t want to put in the work to upstream, so I did. The upstream folks are reluctant to take it because I didn’t actually write it.

      I really don’t know what to do.

    • Ferk@lemmy.ml
      link
      fedilink
      arrow-up
      14
      ·
      edit-2
      2 天前

      interoperability == API standardization == API homogeneity

      standardization != monopolization

  • smiletolerantly@awful.systems
    link
    fedilink
    arrow-up
    19
    arrow-down
    1
    ·
    3 天前

    At this point, package management is the main differentiating factor between distro (families). Personally, I’m vehemently opposed to erasing those differences.

    The “just use flatpak!” crowd is kind of correct when we’re talking solely about Linux newcomers, but if you are at all comfortable with light troubleshooting if/when something breaks, each package manager has something unique und useful to offer. Pacman and the AUR a a good example, but personally, you can wring nixpkgs Fron my cold dead hands.

    And so you will never get people to agree on one “standard” way of packaging, because doing your own thing is kind of the spirit of open source software.

    But even more importantly, this should not matter to developers. It’s not really their job to package the software, for reasons including that it’s just not reasonable to expect them to cater to all package managers. Let distro maintainers take care of that.

  • irotsoma@lemmy.blahaj.zone
    link
    fedilink
    arrow-up
    12
    ·
    3 天前

    Not offering a solution here exactly, but as a software engineer and architect, this is not a Linux only problem. This problem exists across all software. There are very few applications that are fully self contained these days because it’s too complex to build everything from scratch every time. And a lot of software depends on the way that some poorly documented feature worked at the time that was actually a bug and was eventually fixed and then breaks the applications that depended on it, etc. Also, any time improvements are made in a library application it has potential to break your application, and most developers don’t get time to test the every newer version.

    The real solution would be better CI/CD build systems that automatically test the applications with newer versions of libraries and report dependencies better. But so many applications are short on automated unit and integration tests because it’s tedious and so many companies and younger developers consider it a waste of time/money. So it would only work in well maintained and managed open source types of applications really. But who has time for all that?

    Anyway, it’s something I’ve been thinking about a lot at my current job as an architect for a major corporation. I’ve had to do a lot of side work to get things even part of the way there. And I don’t have to deal with multiple OSes and architectures. But I think it’s an underserved area of software development and distribution that is just not “fun” enough to get much attention. I’d love to see it at all levels of software.

  • asudox@lemmy.asudox.dev
    link
    fedilink
    arrow-up
    25
    arrow-down
    3
    ·
    3 天前

    Flatpak with more improvements to size and sandboxing could be accepted as the standard packaging format in a few years. I think sandboxing is a very important factor as Linux distros become more popular.

    • IHave69XiBucks@lemmygrad.ml
      link
      fedilink
      arrow-up
      5
      arrow-down
      2
      ·
      3 天前

      Flatpak is very useful for a lot of things, but i really dont think it should be the default. It still has some weird issues. For example if you run a seperate home and root partition flatpak by default will install things into your root partition which quickly fills up. You have to go in and do a bunch of work to get it to use the home partition.

      Or for example issues with themeing and cursors. Its a pretty common issue for flatpaks to not properly detect your cursor theme and just use the default until you mess around with perms and settings to fix it.

      They also generally get updates slower. I guess maybe if its adopted more that would change but flatpak is already pretty widely used and thats still an issue. Especially for smaller programs not used by as many people.

      Keeping it as just something that is good to use for the ones who like a GUI experience and want something simple and easy is great. But if we were to start doing like what ubuntu does with snaps where theyll just replace things you install with the snap version then im not in favor of that at all.

      • fxdave@lemmy.ml
        link
        fedilink
        arrow-up
        2
        ·
        edit-2
        2 天前

        I agree that flatpak is not there yet. The API is limited, and it is also hard to package an app. But I really want to see it succeed

    • steeznson@lemmy.world
      link
      fedilink
      arrow-up
      5
      arrow-down
      1
      ·
      2 天前

      Yes, I find that dude to be very disagreeable. He’s like everything that haters claim Linus Torvalds is - but manifested IRL.

      • lumony@lemmings.world
        link
        fedilink
        English
        arrow-up
        2
        arrow-down
        1
        ·
        1 天前

        If the people criticizing him could roll up their sleeves and make better software, then I’d take their criticisms seriously.

        Otherwise they’re “just a critic.”

      • markstos@lemmy.world
        link
        fedilink
        arrow-up
        13
        arrow-down
        2
        ·
        2 天前

        My experience with systemd has been the opposite. Thanks to systemd, many core tools have consistent names and CLI behaviors.

        Before systemd I used sysVinit, upstart and various other tools.

        I’m glad systemd alternatives exist as part of a diverse Linux ecosystem but I haven’t had a compelling reason to not use systemd.

    • Lka1988@lemmy.dbzer0.com
      link
      fedilink
      English
      arrow-up
      17
      arrow-down
      3
      ·
      edit-2
      2 天前

      Systemd is fine. This sounds like an old sysadmin who refuses to learn because “new thing bad” with zero logic to back it up.

      • chaoticnumber@lemmy.dbzer0.com
        link
        fedilink
        English
        arrow-up
        5
        ·
        2 天前

        As a former sysadmin, there is plenty of logic in saying that. I have debugged countless systems that were using systemd, yet somehow the openrc ones just chug along. In the server space systemd is a travesty.

        In the desktop space however, i much prefer systemd. Dev environments as well. So yes thst is where “it’s fine”. More than fine, needed!

        I just hate this black and white view of the world, I cant stand it. Everything has its place, on servers you want as small a software footprint as possible, on desktop you want compatibility.

    • steeznson@lemmy.world
      link
      fedilink
      arrow-up
      1
      ·
      21 小时前

      There is a separate kernel which is being written entirely in rust from scratch that might interest you. I’m not sure if this is the main one https://github.com/asterinas/asterinas but it is the first one that came up when I searched.

      By the tone of your post you might just want to watch the world burn in which case I’d raise an issue in that repo saying “Rewrite in C++ for compatibility with wider variety of CPU archs” ;)

      • muusemuuse@lemm.ee
        link
        fedilink
        English
        arrow-up
        3
        ·
        edit-2
        21 小时前

        I’m of the opinion that a full rewrite in rust will eventually happen, but they need to be cautious and not risk alienating developers ala windows mobile so right now it’s still done in pieces. I’m also aware that many of the devs who sharpened their teeth on the kernel C code like it as it is, resist all change, and this causes lots of arguments.

        Looking at that link, I’m not liking the MPL.

  • HiddenLayer555@lemmy.ml
    link
    fedilink
    English
    arrow-up
    39
    ·
    edit-2
    2 天前

    Where app data is stored.

    ~/.local

    ~/.config

    ~/.var

    ~/.appname

    Sometimes more than one place for the same program

    Pick one and stop cluttering my home directory

    • arsCynic@beehaw.org
      link
      fedilink
      arrow-up
      2
      ·
      2 天前

      This would be convenient indeed, but I’ve learned to be indifferent about it as long as the manual or readme provides helpful and succinct information.

    • Tlaloc_Temporal@lemmy.ca
      link
      fedilink
      arrow-up
      2
      ·
      2 天前

      This would also be nice for atomic distros, application space and system space could be separated in more cases.

    • itslilith@lemmy.blahaj.zone
      link
      fedilink
      arrow-up
      4
      ·
      edit-2
      2 天前

      it’s pretty bad. steam for example has both
      ~/.steam and
      ~/.local/share/Steam
      for some reason. I’m just happy I moved to an impermanent setup for my PC, so I don’t need to worry something I temporarily install is going to clutter my home directory with garbage

      • rice@lemmy.org
        link
        fedilink
        English
        arrow-up
        3
        ·
        1 天前

        that .steam is a bunch of symlinks to the .local one… which makes it even worse. they have also .steampid and .steampath.

        and even worse a bunch of games are starting to add them there too.

          • rice@lemmy.org
            link
            fedilink
            English
            arrow-up
            2
            ·
            1 天前

            damn, of all the people you’d think those guys would actually have used the .local or .config =[

            I have 73 dot files in my home directory lmao

    • rice@lemmy.org
      link
      fedilink
      English
      arrow-up
      5
      ·
      1 天前

      Yea I like how a lot have moved to using .config but mozilla just moved out of there and now has a .mozilla folder outside of it… wtf… It is insanely sad.

      I have actually moved my entire “user home folder”… folders out of there just because it is so ugly and unorganized. I now use /home/user/userfolders/… all my stuff like documents / videos etc in here

  • SwingingTheLamp@midwest.social
    link
    fedilink
    arrow-up
    57
    arrow-down
    3
    ·
    3 天前

    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.

    • LovableSidekick@lemmy.world
      link
      fedilink
      English
      arrow-up
      3
      ·
      2 天前

      The term “dependency hell” reminds me of “DLL hell” Windows devs used to refer to. Something must have changed around 2000 because I remember an article announcing, “No more DLL hell.” but I don’t remember what the change was.

    • steeznson@lemmy.world
      link
      fedilink
      arrow-up
      3
      ·
      edit-2
      2 天前

      I find the Darwin approach to dynamic linking too restrictive. Sometimes there needs to be a new release which is not backwards compatible or you end up with Windows weirdness. It is also too restrictive on volunteer developers giving their time to open source.

      At the same time, containerization where we throw every library - and the kitchen sink - at an executable to get it to run does not seem like progress to me. It’s like the meme where the dude is standing on a huge horizontal pile of ladders to look over a small wall.

      At the moment you can choose to use a distro which follows a particular approach to this problem; one which enthuses its developers, giving some guarantee of long term support. This free market of distros that we have at the moment is ideal in my opinion.

  • Mio@feddit.nu
    link
    fedilink
    arrow-up
    30
    arrow-down
    3
    ·
    3 天前

    Configuration gui standard. Usually there is a config file that I am suppose to edit as root and usually done in the terminal.

    There should be a general gui tool that read those files and obey another file with the rules. Lets say it is if you enable this feature then you can’t have this on at the same time. Or the number has to be between 1 and 5. Not more or less on the number. Basic validation. And run the program with --validation to let itself decide if it looks good or not.

    • lumony@lemmings.world
      link
      fedilink
      English
      arrow-up
      2
      ·
      1 天前

      Fuckin hate having to go through config files to change settings…

      It’s always great when settings are easily accessible in a GUI, though! Mad props to the great developers that include them!

      • Einar@lemm.eeOP
        link
        fedilink
        arrow-up
        12
        arrow-down
        1
        ·
        3 天前

        I agree. OpenSuse should set the standards in this.

        Tbf, they really need a designer to upgrade this visually a bit. It exudes its strong “Sys Admin only” vibes a bit much. In my opinion. 🙂