One of the standout features that it had was network transparency, meaning that applications which are actually running on some big mainframe could display their user interfaces on a thin client, and be used seamlessly.
X11 is old. As the name suggests, it's the 11th version of the protocol, and for a variety of reasons, including clashes between big operating system companies from the days gone, and the emerging open source community, X ended up staying on version 11 since 1987, instead implementing new features through extensions. Feature creep took hold, and X servers grew to include all sorts of features, including handing power management, and, for some reason, a print server.
At this time, one implementation called XFree86 was the de-facto standard for how X servers should work, and 2004, after a conflict involving the server's license, it was forked by the newly-founded X.Org Foundation. After this, much more emphasis was placed on modernizing X11.
The source code moved to a modular build system, and new features such as tear-free rendering and improved GPU acceleration support made their way into the server.
But it was still old, and it was still a pile of hacks sitting on top of a protocol not truly overhauled for over 30 years. Most of the features that the X Server protocol provided were not used anymore. Pretty much all of the work that X11 did was redelegated to the individual applications and the window manager. And yet all of those old features are still there, weighing down on all of these applications, hurting performance and security.
Started in 2008 as a personal project by Kristian Høgsberg, an X.Org developer, the goal was to create a graphics system where "every frame is perfect" – that is, it will be a system that will try its hardest to avoid issues like screen tearing, lag, and flickering.
This new protocol provides a model for how applications you run and the compositor interact. It does not provide things like its own user interface widgets, but simply describes how the image that an application wants to put in its window is shared with the compositor. This process is done for all the running applications, with the compositor then putting the final image on your screen.
Wayland developers also work on Weston, a reference implementation of a Wayland compositor. It includes a basic window manager, and X11 application support. Many of its reusable components are bundled into something called libweston, which, in the words of its developers, "provides most of the boring and tedious bits of correctly implementing core Wayland protocols and interfacing with input and output systems, so that people who just want to write a new "Wayland window manager" (WM) or a small desktop environment (DE) can focus on the WM part."
Wayland is not the cure-all for all Linux on the desktop woes. While it addresses most of the issues people had with X11, it is still young, and is lacking some features. Particularly, it does not provide network transparency support, which has become a major issue. It also does not currently include support for features like key grabbing, which makes using things like virtual machine software and text replacement applications difficult. Work is being done on all of these areas – network transparency support was demonstrated in GNOME, and there is a proposal for adding a key grabbing protocol – but many of these solutions are not there yet.
In addition, due to the larger role the composer and window manager play, it's possible that some of these applications that require features beyond those provided by the Wayland protocol will not be fully compatible with all window managers and desktop environments. What this would mean in today's GNOME-dominant world, however, is that some software, such as text replacement and screencasting tools, could end up only being compatible with GNOME.
Still, Wayland is young, and it is making an effort to avoid the mistakes of X11. While it may still have a long way to go (or it may already be good enough, depending on the applications that you use), it has emerged as the victorious windowing system for a reason (which may simply be Red Hat's backing, depending on your point of view), and it is now shipping as the default for most GNOME-by-default Linux distributions, such as Fedora Workstation and Ubuntu.
What do you think? Are you currently running Wayland, or are you still sticking with X11? Let us know in the comments below!