Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (Cyborg)
  • No Skin
Collapse
Brand Logo

CIRCLE WITH A DOT

  1. Home
  2. Uncategorized
  3. I'm mad about linux distros again today and I think I am realizing why this is so hard for me to write about systemically: I have a software engineer brain and so I try to model the various problems as technical problems.

I'm mad about linux distros again today and I think I am realizing why this is so hard for me to write about systemically: I have a software engineer brain and so I try to model the various problems as technical problems.

Scheduled Pinned Locked Moved Uncategorized
140 Posts 30 Posters 168 Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • ehashman@cloudisland.nzE ehashman@cloudisland.nz

    @glyph it doesn't follow that work with a dozen people took X time so work with 6000 people won't necessarily take 500X time, but my estimate is approximately no amount of time or funding would fix this (remember LSB?)

    ehashman@cloudisland.nzE This user is from outside of this forum
    ehashman@cloudisland.nzE This user is from outside of this forum
    ehashman@cloudisland.nz
    wrote last edited by
    #90

    @glyph if someone wants to pull together the funding and a proposal though, hit me up lol

    1 Reply Last reply
    0
    • glyph@mastodon.socialG glyph@mastodon.social

      @xgranade on Linux this stuff matters because the user might be making choices about which ones are available. your package might arrive on a system without GTK, or without configuration for GTK. arguably on Windows making this choice is still a drain on your time and resources, but whichever choice you make the app still *works* and Microsoft has cleverly conditioned their user base to not care at all about how anything looks by using 15 different toolkits internally

      xgranade@wandering.shopX This user is from outside of this forum
      xgranade@wandering.shopX This user is from outside of this forum
      xgranade@wandering.shop
      wrote last edited by
      #91

      @glyph I mean, yes, right up until an application doesn't work, and then "computers are just like that."

      The number of times .NET Framework is the wrong version, or that .NET is missing entirely (Windows ships with .NET Framework, not with .NET, same problem as Windows PowerShell vs PowerShell and for the same reasons), or it's the wrong version of the C++ runtime, or or or.

      xgranade@wandering.shopX glyph@mastodon.socialG 2 Replies Last reply
      0
      • glyph@mastodon.socialG glyph@mastodon.social

        @xgranade on Linux this stuff matters because the user might be making choices about which ones are available. your package might arrive on a system without GTK, or without configuration for GTK. arguably on Windows making this choice is still a drain on your time and resources, but whichever choice you make the app still *works* and Microsoft has cleverly conditioned their user base to not care at all about how anything looks by using 15 different toolkits internally

        glyph@mastodon.socialG This user is from outside of this forum
        glyph@mastodon.socialG This user is from outside of this forum
        glyph@mastodon.social
        wrote last edited by
        #92

        @xgranade but, less tongue-in-cheek; it is *about* as miserable to develop for Windows as it is to develop for Linux, the difference is that developing for Windows gets you 7000% as many users so the time investment seems bad. it's a lot more pleasant to develop for macOS (only *3* first-party frameworks now, Cocoa, Catalyst, or SwiftUI! Way less than Linux or Windows, that's apparently the metric!🙃) and it's still 1200% more users, so you keep a similar ratio

        glyph@mastodon.socialG 1 Reply Last reply
        0
        • xgranade@wandering.shopX xgranade@wandering.shop

          @glyph I mean, yes, right up until an application doesn't work, and then "computers are just like that."

          The number of times .NET Framework is the wrong version, or that .NET is missing entirely (Windows ships with .NET Framework, not with .NET, same problem as Windows PowerShell vs PowerShell and for the same reasons), or it's the wrong version of the C++ runtime, or or or.

          xgranade@wandering.shopX This user is from outside of this forum
          xgranade@wandering.shopX This user is from outside of this forum
          xgranade@wandering.shop
          wrote last edited by
          #93

          @glyph I've literally run into cases where a user-facing application fails entirely if Visual Studio is installed on the same computer.

          UCRT helps somewhat, but not nearly enough. There's a reason why I not infrequently find that running Windows apps on Linux in separate Wine prefixes is more stable than running them on Windows.

          matt@toot.cafeM 1 Reply Last reply
          0
          • xgranade@wandering.shopX xgranade@wandering.shop

            @glyph I mean, yes, right up until an application doesn't work, and then "computers are just like that."

            The number of times .NET Framework is the wrong version, or that .NET is missing entirely (Windows ships with .NET Framework, not with .NET, same problem as Windows PowerShell vs PowerShell and for the same reasons), or it's the wrong version of the C++ runtime, or or or.

            glyph@mastodon.socialG This user is from outside of this forum
            glyph@mastodon.socialG This user is from outside of this forum
            glyph@mastodon.social
            wrote last edited by
            #94

            @xgranade yeah windows is weird because you're really supposed to ship Windows to your Windows users as well, right? what if static linking, but in hell

            xgranade@wandering.shopX 1 Reply Last reply
            0
            • glyph@mastodon.socialG glyph@mastodon.social

              @xgranade but, less tongue-in-cheek; it is *about* as miserable to develop for Windows as it is to develop for Linux, the difference is that developing for Windows gets you 7000% as many users so the time investment seems bad. it's a lot more pleasant to develop for macOS (only *3* first-party frameworks now, Cocoa, Catalyst, or SwiftUI! Way less than Linux or Windows, that's apparently the metric!🙃) and it's still 1200% more users, so you keep a similar ratio

              glyph@mastodon.socialG This user is from outside of this forum
              glyph@mastodon.socialG This user is from outside of this forum
              glyph@mastodon.social
              wrote last edited by
              #95

              @xgranade although wow hats off to "Unknown", the real breakout star of the war for desktop OS marketshare https://gs.statcounter.com/os-market-share/desktop/worldwide/

              are a lot of people running the QNX desktop now, or

              1 Reply Last reply
              0
              • glyph@mastodon.socialG glyph@mastodon.social

                @xgranade yeah windows is weird because you're really supposed to ship Windows to your Windows users as well, right? what if static linking, but in hell

                xgranade@wandering.shopX This user is from outside of this forum
                xgranade@wandering.shopX This user is from outside of this forum
                xgranade@wandering.shop
                wrote last edited by
                #96

                @glyph .NET (not .NET Framework, because branding) is basically nodejs in terms of the static linking approach to packaging, yeah. You have to bring all your dependencies with you. This is a good idea, actually, for anyone used to Windows development back when you had to rely on a single fucking thing in C:\windows\system32. I have spent more hours in Dependency Walker than I ever care to admit.

                glyph@mastodon.socialG xgranade@wandering.shopX 2 Replies Last reply
                0
                • xgranade@wandering.shopX xgranade@wandering.shop

                  @glyph .NET (not .NET Framework, because branding) is basically nodejs in terms of the static linking approach to packaging, yeah. You have to bring all your dependencies with you. This is a good idea, actually, for anyone used to Windows development back when you had to rely on a single fucking thing in C:\windows\system32. I have spent more hours in Dependency Walker than I ever care to admit.

                  glyph@mastodon.socialG This user is from outside of this forum
                  glyph@mastodon.socialG This user is from outside of this forum
                  glyph@mastodon.social
                  wrote last edited by
                  #97

                  @xgranade yeah like, real talk, windows is coasting along around 10% by their extremely hardcore compatibility for a VERY small core, which makes it possible for highly conscientious developers to get software to be extremely reliable *IF* they care (and to rack up lots of billable support hours _eventually_ fixing the problems, if they don't) and 90% by their anticompetitive effort to be installed everywhere

                  glyph@mastodon.socialG 1 Reply Last reply
                  0
                  • glyph@mastodon.socialG glyph@mastodon.social

                    @xgranade yeah like, real talk, windows is coasting along around 10% by their extremely hardcore compatibility for a VERY small core, which makes it possible for highly conscientious developers to get software to be extremely reliable *IF* they care (and to rack up lots of billable support hours _eventually_ fixing the problems, if they don't) and 90% by their anticompetitive effort to be installed everywhere

                    glyph@mastodon.socialG This user is from outside of this forum
                    glyph@mastodon.socialG This user is from outside of this forum
                    glyph@mastodon.social
                    wrote last edited by
                    #98

                    @xgranade and even then, desktop Windows software got absolutely bodied by web apps specifically because of this misery. there's a reason that "desktop apps" more or less means either "games" or "legacy regulatory requirement" in that world

                    xgranade@wandering.shopX 1 Reply Last reply
                    0
                    • xgranade@wandering.shopX xgranade@wandering.shop

                      @glyph .NET (not .NET Framework, because branding) is basically nodejs in terms of the static linking approach to packaging, yeah. You have to bring all your dependencies with you. This is a good idea, actually, for anyone used to Windows development back when you had to rely on a single fucking thing in C:\windows\system32. I have spent more hours in Dependency Walker than I ever care to admit.

                      xgranade@wandering.shopX This user is from outside of this forum
                      xgranade@wandering.shopX This user is from outside of this forum
                      xgranade@wandering.shop
                      wrote last edited by
                      #99

                      @glyph I can't address macOS since I'm again entirely outside of that world, but IME, no matter how painful Linux dev is, it pales in comparison to Windows dev as soon as one single line of native code enters the chat.

                      Like, .NET applications that rely exclusively on .NET packages and so forth work *fine*. It's really once you try to interact with native code, appx publishing, or anything other than "run this NuGet command" that things break.

                      glyph@mastodon.socialG matt@toot.cafeM 2 Replies Last reply
                      0
                      • glyph@mastodon.socialG glyph@mastodon.social

                        @xgranade and even then, desktop Windows software got absolutely bodied by web apps specifically because of this misery. there's a reason that "desktop apps" more or less means either "games" or "legacy regulatory requirement" in that world

                        xgranade@wandering.shopX This user is from outside of this forum
                        xgranade@wandering.shopX This user is from outside of this forum
                        xgranade@wandering.shop
                        wrote last edited by
                        #100

                        @glyph Yeah, but you talk about shipping Windows with Windows, though....

                        1 Reply Last reply
                        0
                        • xgranade@wandering.shopX xgranade@wandering.shop

                          @glyph I can't address macOS since I'm again entirely outside of that world, but IME, no matter how painful Linux dev is, it pales in comparison to Windows dev as soon as one single line of native code enters the chat.

                          Like, .NET applications that rely exclusively on .NET packages and so forth work *fine*. It's really once you try to interact with native code, appx publishing, or anything other than "run this NuGet command" that things break.

                          glyph@mastodon.socialG This user is from outside of this forum
                          glyph@mastodon.socialG This user is from outside of this forum
                          glyph@mastodon.social
                          wrote last edited by
                          #101

                          @xgranade my experience of windows may not be representative, everything I actually _shipped_ there had a hand-written InstallShield wizard or NSIS installer and like 5,000,000 lines of in-house C++ so "package management" of "upstream dependencies" was not really a thing

                          xgranade@wandering.shopX 1 Reply Last reply
                          0
                          • glyph@mastodon.socialG glyph@mastodon.social

                            @xgranade my experience of windows may not be representative, everything I actually _shipped_ there had a hand-written InstallShield wizard or NSIS installer and like 5,000,000 lines of in-house C++ so "package management" of "upstream dependencies" was not really a thing

                            xgranade@wandering.shopX This user is from outside of this forum
                            xgranade@wandering.shopX This user is from outside of this forum
                            xgranade@wandering.shop
                            wrote last edited by
                            #102

                            @glyph Yeah, makes sense. With enough violence, you can make Windows work just fine. It just takes a startling amount to get there...

                            glyph@mastodon.socialG 1 Reply Last reply
                            0
                            • xgranade@wandering.shopX xgranade@wandering.shop

                              @glyph Yeah, makes sense. With enough violence, you can make Windows work just fine. It just takes a startling amount to get there...

                              glyph@mastodon.socialG This user is from outside of this forum
                              glyph@mastodon.socialG This user is from outside of this forum
                              glyph@mastodon.social
                              wrote last edited by
                              #103

                              @xgranade I guess another way of putting it is that getting something to work in the first place on Windows is a shocking amount of misery; there's a strong cultural assumption that you're building the universe from scratch and if you're not you're kind of on your own. whereas on Linux it is *deceptively* easy to get something kinda working on your own computer which will never work on a second one

                              1 Reply Last reply
                              0
                              • glyph@mastodon.socialG glyph@mastodon.social

                                In short, all the volunteer-based distributions need to have a gigantic conference where they all come together and *agree to stop working on about 99% of them*, to pool efforts to make a real Linux platform. A lot of people will need to put their egos aside and decide to acquiesce to solutions they believe to be technically inferior, in order to be able to address the diffusion of labor into pointlessly recreating basically the same toolchain a thousand times.

                                kfdm@social.tsun.coK This user is from outside of this forum
                                kfdm@social.tsun.coK This user is from outside of this forum
                                kfdm@social.tsun.co
                                wrote last edited by
                                #104

                                @glyph This is partly why I often joke, there are a lot more ‘religious’ arguments than ‘technical’ arguments in tech (yes, I know there *can* be objective, technical arguments, but often feels people argue their religion as ‘objective’ XD)

                                1 Reply Last reply
                                0
                                • glyph@mastodon.socialG glyph@mastodon.social

                                  @cthos @miss_rodent I think I do have some nuanced structural critique of flatpak that I sadly don’t have time to get into right now, but if I am being honest most of my systems have a weird quirk where user data lives outside home directories on external media and this causes flatpak’s weird slightly-wrong but makes-things-mostly-work heuristics absolutely violently explode in ways which cause huge issues that contributes to an overall *immediate* negative impression

                                  raven667@hachyderm.ioR This user is from outside of this forum
                                  raven667@hachyderm.ioR This user is from outside of this forum
                                  raven667@hachyderm.io
                                  wrote last edited by
                                  #105

                                  @glyph @cthos @miss_rodent i think flatpak (and AppImage, not snap) are the closest thing to standardization you are going to be able to convince linux devs to make. The desktop linux platform already has a lot which is close across distros, all the large ones use systemd and pipewire, mostly use Wayland graphics and KDE or GNOME, or a skin on top of those. GNOME especially expects a system to be set up in a more standard fashion, so distros have less flexability to pointlessly diverge in ways that break apps. Most gui apps are possible to flatpak, and run on almost any distro that is near standard (sorry for your systems which youve made difficult to support by accidently working at cross purposes to flatpak assumptions, but its hard to maintain compatibility when every computer-toucher wants to be their own ISV). Unfortunately its going to take a long time to convince Shuttleworth and Canonical that they are wasting everyones time with snaps, but Ubuntu isnt as popular as it once was. Its also going to take a long time to convince Debian, Fedora or Arch packagers that they should stop and target flatpak on the Freedesktop runtimes instead. There are a lot of devs who are personally offended by inefficiencies in the design of flatpak that leads to vendoring of libraries and duplication between runtimes, but i dont see any other way, the distro approach of deduplicating libraries creates bugs of its own and is unsustainable labor, the improvements to software build and integration that distro feedback brings to gui devs is probably not worth the effort it takes.

                                  I dont think you are going to have much luck convincing volunteers to not work on what makes them happy, or for any existing distro to jump off a cliff for the good of the community, but you can make them irrelevant by inventing something better that the original gui dev community likes and can make work themselves. You can ask them to join your project if it looks successful and fun

                                  raven667@hachyderm.ioR 1 Reply Last reply
                                  0
                                  • glyph@mastodon.socialG glyph@mastodon.social

                                    @matt @cthos @miss_rodent flatpak does not address the deficiencies or the expense of interacting with a zillion different compositors, or for that matter different audio systems or GPS daemons. the kinds of apps that need to interact with the platform need an API shaped in terms of d-bus endpoints, and the problem that flatpak addresses is one of .so files. flatpak also requires manual management of filesystem permissions, which means apps are just slightly dysfunctional

                                    raven667@hachyderm.ioR This user is from outside of this forum
                                    raven667@hachyderm.ioR This user is from outside of this forum
                                    raven667@hachyderm.io
                                    wrote last edited by
                                    #106

                                    @glyph i could see an effort around freedesktop and flatpak to define what dbus apis are expected to be provided by the distro/desktop to have full compatibility, and what might be outside those expectations. I dont think it makes sense to have flatpaks that only work on some distros/desktops because they depend on unique components, the baseline for running flatpak needs to declare what is required and provide reasonable errors if am amateur ISV tries to run it somehere impoverished

                                    @matt @cthos @miss_rodent

                                    1 Reply Last reply
                                    0
                                    • glyph@mastodon.socialG glyph@mastodon.social

                                      @cthos @matt @miss_rodent sorry I do not mean to be mean about this. but it seems like they’ve done some really good work here and are trying to snatch defeat from the jaws of victory. I have *heard* about bazzite and bluefin. at some length. i knew they were immutable distros. I had considered installing them. I did not even realize they were largely compatible let alone more or less the same thing

                                      raven667@hachyderm.ioR This user is from outside of this forum
                                      raven667@hachyderm.ioR This user is from outside of this forum
                                      raven667@hachyderm.io
                                      wrote last edited by
                                      #107

                                      @glyph i think this is irreconcilable though because the software and out of the box config of an immutable distro is fixed, so you need to have different complete builds if you want different stuff in the base system. The compatability for apps is high though because the OS maker is pulling all the components out of the same pool. Like i dont think you want your general purpose desktop to boot into Steam, like Bazzite handheld builds do, but any of the flatpak apps will run just the same on all of the family, like the choice of specific flavor is driven by the hardware and purpose of the computer, but they can all run the same stuff outside the base os

                                      @cthos @matt @miss_rodent

                                      cthos@mastodon.cthos.devC 1 Reply Last reply
                                      0
                                      • raven667@hachyderm.ioR raven667@hachyderm.io

                                        @glyph i think this is irreconcilable though because the software and out of the box config of an immutable distro is fixed, so you need to have different complete builds if you want different stuff in the base system. The compatability for apps is high though because the OS maker is pulling all the components out of the same pool. Like i dont think you want your general purpose desktop to boot into Steam, like Bazzite handheld builds do, but any of the flatpak apps will run just the same on all of the family, like the choice of specific flavor is driven by the hardware and purpose of the computer, but they can all run the same stuff outside the base os

                                        @cthos @matt @miss_rodent

                                        cthos@mastodon.cthos.devC This user is from outside of this forum
                                        cthos@mastodon.cthos.devC This user is from outside of this forum
                                        cthos@mastodon.cthos.dev
                                        wrote last edited by
                                        #108

                                        @raven667 The Bazzite desktop builds don't auto-boot steam, though (but you *can* tell it to do that)

                                        @glyph @matt @miss_rodent

                                        raven667@hachyderm.ioR 1 Reply Last reply
                                        0
                                        • raven667@hachyderm.ioR raven667@hachyderm.io

                                          @glyph @cthos @miss_rodent i think flatpak (and AppImage, not snap) are the closest thing to standardization you are going to be able to convince linux devs to make. The desktop linux platform already has a lot which is close across distros, all the large ones use systemd and pipewire, mostly use Wayland graphics and KDE or GNOME, or a skin on top of those. GNOME especially expects a system to be set up in a more standard fashion, so distros have less flexability to pointlessly diverge in ways that break apps. Most gui apps are possible to flatpak, and run on almost any distro that is near standard (sorry for your systems which youve made difficult to support by accidently working at cross purposes to flatpak assumptions, but its hard to maintain compatibility when every computer-toucher wants to be their own ISV). Unfortunately its going to take a long time to convince Shuttleworth and Canonical that they are wasting everyones time with snaps, but Ubuntu isnt as popular as it once was. Its also going to take a long time to convince Debian, Fedora or Arch packagers that they should stop and target flatpak on the Freedesktop runtimes instead. There are a lot of devs who are personally offended by inefficiencies in the design of flatpak that leads to vendoring of libraries and duplication between runtimes, but i dont see any other way, the distro approach of deduplicating libraries creates bugs of its own and is unsustainable labor, the improvements to software build and integration that distro feedback brings to gui devs is probably not worth the effort it takes.

                                          I dont think you are going to have much luck convincing volunteers to not work on what makes them happy, or for any existing distro to jump off a cliff for the good of the community, but you can make them irrelevant by inventing something better that the original gui dev community likes and can make work themselves. You can ask them to join your project if it looks successful and fun

                                          raven667@hachyderm.ioR This user is from outside of this forum
                                          raven667@hachyderm.ioR This user is from outside of this forum
                                          raven667@hachyderm.io
                                          wrote last edited by
                                          #109

                                          @glyph @cthos @miss_rodent thinking about this more as i read further down the thread that the immutable distros (Silverblue/Bluefin/Bazzite et al) do effectively define am api and runtime by what is in the distro and what is left out. While it is _possible_ to layer on a local filesystem image built out of rpms on top of ostree, nothing can rely on that and its not the primary or expected way to extend the system with more apps, flatpak or stuff installed in your homedir like AppImage or distrobox/toolbox containers are the primary way to add on local software, which is a robust layering.

                                          1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          • Login

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Categories
                                          • Recent
                                          • Tags
                                          • Popular
                                          • World
                                          • Users
                                          • Groups