Tl;dr: we were told a decade ago that Btrfs is going to make our Linuxing a lot easier because it’s newer and superior to existing file system alternatives, we were told the change is right around the corner. Yet over ten years since it was introduced and still it hasn’t been adopted by the vast majority of Linuxes (for a good reason), RHEL even tried and rejected it . Wayland might end up just like it – a promising shiny new idea that has smashed into the hard rocks of reality.
I remember how about 10 years ago people in the Linux world used to say Btrfs is the next big thing in Linux. They admitted that implementing a new file system (FS) is a complex task, yet since there’s so much support, desire and need for a new FS it’ll probably won’t be long until the product will come to fruition.
They said it, since at least 2010, if I recall correctly, and they also said that in 2013, 14, up to 16 max. Btrfs will become the default standard on Linux.
I bought into it. I remember back then I was in my distro hopping stage and as such, I had the opportunity of choosing my defaults. I opted for Btrfs, not only for the praised benefits but also to be future proof. Even in the days it wasn’t working quite well with GRUB (MBR couldn’t work with Btrfs) and you had to go out of your way in order to make it work – I did.
My experience with it back then was a mixed bag. It worked, for one thing, as it still wasn’t considered stable (since FS need long and thorough testing). It also came with features I didn’t use, such as: cloning – I was short on disk space and actually wanted to conserve free space, subvolumes – I preferred keeping my drives hierarchy as simple as possible, I didn’t need any advanced partitioning, snapshots – once again, those were taking space and I, on the other hand, didn’t had much to spare. And so, I started to think, what if all those shiny new features they “sell” us as a plus are actually minuses? what if all those unnecessary new features actually come at the expense of precious performance?
When I looked into it the numbers reflected my thoughts perfectly (btw, Btrfs has improved since then though), but I wasn’t satisfied with numbers on screen, I started testing myself and found that for instance on the same hard drive and same system, only on different partitions, file-move operation takes almost double the time it takes on ext4 for example. As I was doing many of those back then, that was the end of it for me. That, and the fact everytime something went wrong on my system I couldn’t help but suspect that Btrfs might have corrupted a file or something, after all, it wasn’t considered stable yet.
Come on Wayland
And so, I recently recalled that experience as I was having similar experience with Wayland. It suddenly came to me like a deja vu, I was thinking, “well this seems familiar, isn’t it?”. I had an Nvidia graphics card for a long time, but recently switched to Radeon (BTW, you can read all about that here). According to various sources[1] Nvidia is problmeatic when it comes to Wayland, but Radeon should work pretty good with it. When I tried Wayland using Nouveau – Linux open source driver for Nvidia cards – I had very quirky experience, I assumed that when devs say Nvidia is problematic regarding Wayland they meant both the open and closed source drivers. And so to my surprise, on my new Radeon card I found I get more or less the same experience on Wayland as I had with Nvidia card + Nouveau.
It’s been 12 years since the Wayland project started, and still it isn’t baked enough to serve as a daily driver for most people or distros. Moreover, there seem to be some design issues[1] that might prevent Wayland from supplying the same modern features Xorg delivers, or for the very least, it’s going to require some new innovative ideas in order to circumvent those issues which will take even more time to bake into Wayland, in the end of which, I wonder, whether when Wayland would finally be fully ready, wouldn’t it be old and outdated just like Xorg is today?
Please, don’t take the last paragraph as representing my own negative sentiment against Wayland. On the contrary, I actually do agree with Wayland proponents when they say Xorg is outdated and encumbered with superfluous features – for instance, when X11 (the X window system) was created in 1984, we didn’t have all those new graphics card related technologies such as openGL, EGL and certainly not Vulkan at hand. Wayland takes all those into account and is designed to work optimally with them.
I can’t blame the devs for not opting for the seemingly more efficient option of striping Xorg from its outdated code, as that might had require a complete rework, and besides, who wants to delve so deep into someone else’s work, trying to decipher exactly what they meant when they wrote it and then tweak it to suit current needs. It’s much more exciting to start a new project, from the beginning which will be attributed to you.
So, at the end of the day, it’s not that I’m against Wayland nor Wayland’s devs, however my criticism deals with the rate of progress and whether the design decisions wouldn’t actually hinder Wayland from being adopted by the vast majority of Linux distributions, as is the case with Btrfs. If we want to avoid that scenario, Wayland devs, Qt and Gtk devs all must pick up their pace and focus on features users need in order to make the switch, before Wayland becomes outdated too.