Wednesday, July 6, 2022

Some Thoughts about the Future of the Linux Desktop

Now is time for a somewhat incoherent ramble about my thoughts about the Linux desktop.  Earlier today was a post on Hacker News regarding an announcement from the GNOME development team that GTK 5 will be exclusively for Wayland, thus dropping support for the venerable X Window System.  I have many thoughts about the transition from X11 to Wayland.  I won't share all of them, but while I believe that X11 is quite complex and a replacement will be welcome, I'm also concerned that many good aspects of the X11 ecosystem, such as the ability to run GUI applications remotely, the ability to choose between a wide array of window managers, and support for non-Linux operating systems such as the BSDs, will be lost partly due to the consequences of how Wayland is designed and also due to the effort required to convert window managers for X to Wayland compositors.

I'm also concerned about the influence that influential big players have on the Linux desktop community despite the feelings of the overall community.  We've seen this play out with the controversy behind GNOME 3 (which led to the splintering of the GNOME 2 userbase into three competing desktops: GNOME 3, MATE, and Cinnamon), the stewardship of the GTK toolkit (is it the GNOME toolkit, or should its maintainers keep it a general-purpose toolkit, recognizing that non-GNOME desktops and applications depend on it), and the adoption of systemd.  It seems that certain decisions have been foisted upon the Linux community.  Many of us are drawn to free, open source software because we don't like the decisions foisted upon us by Microsoft or Apple.  But to our dismay, we can't escape this even in the FOSS ecosystem.  "If you don't like it, then make a fork and modify the code," some people retort.  But one has to be really dedicated to learn and modify software that contains hundreds of thousands of lines of code.  Thus, many of us have no effective choice but to live with the changes, which leads to resentment, which leads to flamewars on social media.

But does it have to be this way?  Is there a way for technically-inclined users to get the desktops that they want?  I believe there is a pathway to get there, and the pathway is through embracing simple, modular, composable software rather than building large edifices and platforms that seek to directly take on major players like Apple, Google, and Microsoft.  I believe that we can learn from projects such as Smalltalk, Project Oberon, Plan 9, OpenDoc, and Microsoft's 1990s technologies (OLE, COM, ActiveX) and update this for the 2020s to build component-based GUIs.  I also believe that we can take lessons from the STEPS project, which was an effort from Alan Kay's Viewpoints Research Institute to build an entire operating system with a GUI in just 20,000 lines of code.  Reducing the amount of code needed to build a complete system may revolutionize open source software, since this may enable users to be better equipped to make contributions to the code base since the code would be easier to understand.  There would be far less complaining about GNOME, systemd, and other software projects if it were easier for users to respond to the common "if you don't like it, then fork it" retort by doing exactly that.