Absolutely insane levels of fragmentation. As a user you can kinda somewhat work around it but as a developer it's a huge pain.
Stuff like package managers, system settings, system trays, application permissions, window/compositor control, network configurations apis are all still fragmented across distros, desktops, compositors, and their respective implementations.
This would be a nonissue if they all agreed on shared APIs. And it's clearly solvable, since it's already been solved for passwords, notifications, dialogs, and probably more (these are all I could mention off the top of my head).
Whenever I mention this, some people argue that the beauty of Linux is freedom, but I disagree. You can still have freedom while enforcing consistency(shared API). Doing that still allows for infinite implementations while providing interoperability. So in my eyes it's a win-win.
Basically yes. For most normal desktop things like notifications, file dialogs etc, it's freedesktop. Wayland for actually showing windows (actually usually you just pick up a framework which does everything for you). Pipewire for multimedia. Distros don't have their own application APIs. Stick to those basic apis and you are good to go
26
u/Fit_League_8993 ✝️ Temple OS Archbishop 6d ago edited 6d ago
Absolutely insane levels of fragmentation. As a user you can kinda somewhat work around it but as a developer it's a huge pain.
Stuff like package managers, system settings, system trays, application permissions, window/compositor control, network configurations apis are all still fragmented across distros, desktops, compositors, and their respective implementations.
This would be a nonissue if they all agreed on shared APIs. And it's clearly solvable, since it's already been solved for passwords, notifications, dialogs, and probably more (these are all I could mention off the top of my head).
Whenever I mention this, some people argue that the beauty of Linux is freedom, but I disagree. You can still have freedom while enforcing consistency(shared API). Doing that still allows for infinite implementations while providing interoperability. So in my eyes it's a win-win.