Comment The tendency of Linux developers to reinvent wheels is no secret. It’s not so much the elephant in the room, as the entire jet-propelled guided ark ship full of every known and unknown member of the Proboscidea from Ambelodon to Stegodon via deinotheres, elephants, mammoths and other mastodons.
Indeed, Linux itself, and the GNU tools they’re built from, are FOSS recreations of exiting proprietary tools. But despite over a third of a century of continuous development, there’s only one Linux – and there are very few alternatives to the GNU tools, either. Some areas manage to keep it together.
Some, however, fail quite spectacularly. Let’s look at what in the eyes of the Reg FOSS desk is one of the more egregious examples: perhaps the most visible part of any end-user OS…
Comment The tendency of Linux developers to reinvent wheels is no secret. It’s not so much the elephant in the room, as the entire jet-propelled guided ark ship full of every known and unknown member of the Proboscidea from Ambelodon to Stegodon via deinotheres, elephants, mammoths and other mastodons.
Indeed, Linux itself, and the GNU tools they’re built from, are FOSS recreations of exiting proprietary tools. But despite over a third of a century of continuous development, there’s only one Linux – and there are very few alternatives to the GNU tools, either. Some areas manage to keep it together.
Some, however, fail quite spectacularly. Let’s look at what in the eyes of the Reg FOSS desk is one of the more egregious examples: perhaps the most visible part of any end-user OS – the desktop.
As we have discussed at some length before, a clear large majority of desktop environments in FOSS today share the same design, and it’s a design that originated in Windows. Nearly 20 years ago, Microsoft threatened to sue over it. It never happened, but not because Microsoft lacked evidence: as we spelled out in 2013, the signs are very clear. It didn’t happen because it wasn’t clear who it should sue, or if it could sue anyone for free community-driven efforts.
What do we mean by Windows-like? Specifically, Windows 95-like – because every Windows version since then has inherited the same core design. When Windows 95 turned 20, The Register gave it a small tribute, and you can see that core design right there. A panel across one whole long edge of the screen, and reading left-to-right, an app-launcher button first, then a row of buttons for open windows, then a recessed “system tray” with the clock, and usually some notification icons. Some of these act as controls for things like speaker volume. The launcher button opens a hierarchical view, with main applications and system-control functions at the top level, plus folders with subsidiary function.
An icon-based file manager, with an optional left pane in each window containing an expandable tree of the directory hierarchy. Before that, the most popular layout for file managers was the classic Norton Commander style, now called an Orthodox File Manager. Even Windows 3’s File Manager worked that way.
The Reg went into considerable detail when we looked at the changes in GNOME 3. By all means argue if you wish, but please at least read that first. The core point is that the combination of UI features in Windows 95 was unique. Nothing before it had all these functions. At best, there were some disconnected features that were vaguely similar, such as RISC OS’s Icon Bar or NeXTstep’s Dock. But virtually everything invented from 1995 onwards had them.
By 21st century standards, Windows 95 was tiny. The first release fit onto just 13 floppies. For those who don’t remember disks, it was under 25 MB.
The original Windows Explorer was 200 kB of code. (The late great Geoff Chappell, sometimes cited by The Reg, built a thorough history.) Although tiny, it was a masterwork, and it re-defined the computer user interface in a way that wouldn’t happen again until the iPhone, 22 years later. (And please do bear in mind that this vulture speaks as someone whose favourite GUIs start with classic MacOS and move on to RISC OS, BeOS, and Psion EPOC.)
In our opinion, it has not been bettered yet. That is why so many teams and products have copied the core design.
The original Explorer’s design was not just visually simple: at least some of the underlying implementation was, too. For instance, in Windows 3.x and NT.x, Program Manager only supported a single level of hierarchy. Applications had to be kept in groups, stored in the .GRP file format, and those couldn’t be nested. Instead, Explorer introduced shortcut files, and the Start menu was stored in a simple directory tree: icons were shortcuts, submenus were subdirectories. Linux, naturally, has its own version, which is rather more complicated.
NT 4 adapted and re-used the Explorer, with just one significant change: NT enforced user accounts, and had an All Users tree as well as each user’s own. (As an aside: in 1998, Microsoft replaced Explorer with what it called Active Desktop, rebuilt around Internet Explorer 4 to counter a lawsuit from the Department of Justice.)
There are an almost ridiculous number of Windows-style desktops on Linux – and mostly this applies to the BSDs, too. Most of them are implemented in C, and most use various versions of the Gtk toolkit for their widgets: menus, dialog boxes, buttons and so on.
In approximate age order, the ones still being maintained today are Xfce; MATE, which is a fork of GNOME 2; LXDE; Linux Mint’s Cinnamon; and Budgie, implemented in the GNOME-centric Vala language.
GNOME reinvented itself into something very un-Windows-like with version 3, but it still offers GNOME Classic and GNOME Flashback, which both have a more GNOME-2 like desktop layout. The Cinnamon desktop started out as a set of customizations called MSGE but turned into a full fork, which is occasionally rebased onto newer versions of upstream GNOME Shell. Rather than fork the code, the Zorin OS desktop still uses the approach of multiple extensions.
LXDE has been very quiet for a few years since the main developer moved on to LXQt, but recently there have been some updates. Even so, many distros still offer LXDE, and the Raspberry Pi OS still uses some LXDE components. Its successor LXQt, like KDE Plasma, uses the Qt toolkit instead of Gtk, and C++ in place of C. So does continuing KDE 3.5 fork the Trinity Desktop.
Rarely seen in the West but more common in the Eastern hemisphere are two more Windows-like desktops. Uniontech’s distributions use the Deepin Desktop Environment, and the Kylin family of distros use UKUI. One or both are also available in various other distros from Arch to Ubuntu, and both seem to contain a mixture of Gtk and Qt components.
That’s 13 so far. Now we move deeper into the dark forest…
It can do much more, but Enlightenment shares the same default layout, and this goes for continuing forks E16 and Moksha. All use their own versions of the Enlightenment Foundation Libraries rather than Gtk.
The Equinox Desktop Environment, EDE uses FLTK rather than Gtk. As FLTK is back in active development again, perhaps EDE is due for an update. XPde used Kylix, the Linux version of Delphi, rather than C, but it too is long dead. Lumina was built for FreeBSD in C++ and Qt, but in recent years it runs on Linux too. Similarly minimalistic is the ChromeOS desktop Aura.
IceWM is back in active development, as is JWM (Joe’s Window Manager). Even FVWM95 got an update a few years ago. Now, to be fair, these are window managers, not desktops, but they still share the familiar taskbar-and-start-menu design and are used in current distros such as antiX and Damn Small Linux.
Now we’re up to 23. We could dig deeper, but we hope that we’ve made the point by now. There are several different languages here (but a lot fewer than 23 of them), and several different graphical toolkits (but again, well under 20). This is a vast amount of effort spent reinventing, and then maintaining, the basic concept of a round thing on the end of an axle.
But the underlying concept here is really quite a simple one. The window managers can’t match the functionality of the Windows 95 Explorer, and not one of the desktops captures the simple elegance of the original. Windows 95 let you put the taskbar on any screen edge, but you only got one, and you couldn’t change its length, or re-arrange or resize its contents, let alone change their orientation. Multiple rows was your only option.
When this vulture introduced the Tilde text editor, we chose the year in the title for a reason: 1976 is the year Bill Joy released the first version of Vi. The author has been reluctantly using Vi since 1988, and has disliked it for all 37 years. However, I must acknowledge that Vim is a great editor, loved by tens of thousands, maybe hundreds of thousands. That’s in part why I wrote an obituary for Bram Moolenaar.
Today, I suspect very few FOSS developers remember Elvis or Stevie. They were the other two leading FOSS Vi clones from the early days – you know, the late 1900s.
Imagine if instead of Vim, we had 23 different Vi clones, and every distro included most of them, because their enthusiasts were still fighting over which was better. Imagine if every one of them had its own config file format, and couldn’t import the others’. Imagine if apart from the core 1970s UI, they all used different keystrokes. All had their own routines for syntax highlighting, their own scripting languages, their own plugins, and so on.
Apart from the sheer mess, does it seem likely that any of them would have attainted the functionality of Vim?
There is no way to combine all the different Windows-like Linux desktops into one, or even just three or four. There is no useful way to combine a substantial program written in C with one written in C++ or Vala, or one written to use Gtk with one built in Qt.
But they could work together and cooperate.
Remember the Basics of the Unix Philosophy:
That 1995 design was simple. The components of the desktop – the task bar, the file manager, the text editor, and so on – don’t need to exchange lots of rich, complex messages.
- 52-year-old data tape could contain only known copy of UNIX V4
- The sad state of Linux desktop diversity: 21 environments, just 2 designs
- Pop!_OS deejays prepare to release holiday remix along with Cosmic v 1.0
- Snap out of it: Canonical on Flatpak friction, Core Desktop, and the future of Ubuntu
Users should be free to – for example – use the MATE panel with the Xfce window manager, the Cinnamon file manager, and the Budgie start menu.
All could share a common settings format. All should be able to read the same config files, and understand the same core lowest-common-denominator functionality established three decades ago, like where the primary panel is. We didn’t need to rearrange panel items then, and we don’t now: to rearrange the deck chairs on the Titanic is a proverb for a pointless, wasted action.
Nearly two dozen different Windows-like UIs represents a titanic waste of programmer effort, skill, and time. Hundreds, maybe thousands of people, working hard for decades… but all on different projects, meaning that none of them achieve greatness. For an example, look at KDE Plasma’s 36 launcher menus.
It is 27 years since the first release of KDE, and I suspect that Microsoft has been laughing all the way to the bank ever since. The FOSS world can do better, and it’s time it started to try. ®