When comparing Wayland vs X, the Slant community recommends Wayland for most people. In the question“What are the best Linux display servers?” Wayland is ranked 1st while X is ranked 2nd. The most important reason people chose Wayland is:
Wayland has no drawing APIs. Instead, a Wayland client gets a DRM buffer handle, which is practically just a pointer to a graphics memory. Practically Wayland does not care how the client draws to that buffer, it only copies the client's buffers on the screen. The removes a lot of complexity (because Wayland just pushes the complex stuff to the other layers of the stack) and by making the clients responsible for all the rendering, they can be smarter on how they do things like double-buffering for example.
Ranked in these QuestionsQuestion Ranking
Pros
Pro Easy to maintain
Wayland has no drawing APIs. Instead, a Wayland client gets a DRM buffer handle, which is practically just a pointer to a graphics memory. Practically Wayland does not care how the client draws to that buffer, it only copies the client's buffers on the screen.
The removes a lot of complexity (because Wayland just pushes the complex stuff to the other layers of the stack) and by making the clients responsible for all the rendering, they can be smarter on how they do things like double-buffering for example.
Pro Simplifies the graphic stack
Wayland simplifies the graphics stack by trying to force everything through a GEM/DRM stack and straight into the kernel. Furthermore, it manages compositing itself.
Pro It's the de-facto display server for the Linux world
X11 is so tied up with everything in the Linux Kernel and userspace that it's become for a long time now the de-facto display server for Linux. A lot of things have been tied to X for decades now and it's hard to untie even if X has a lot of glaring problems. Because of this (and despite of X's problems), everything seems to work with X, from the WMs to the graphic drivers.
Pro Network aware
You can send windows to other computers or you can have multiple screens with remote logins and other things like that through X.
Pro Gives you a certain degree of freedom to do what you want
When using X, you can get information on any application that is running within any other application that is currently running. Things like position, size, framebuffer, which window has focus, etc. can all be accessed by any running application.
With this in mind, there are countless customizations that can be achieved, things like changing the keyboard layout depending on the window that's focused, or creating a script that gets statistics for each key typed. The possibilities are endless.
Cons
Con XWayland handles popup windows poorly
Con No mechanisms to configure input
Tools like xinput and xmodmap that help customize keyboard and mouse input are incompatible with Wayland, have no corollary, and there is no clear roadmap for providing their functionality.
Con Little driver support
Most closed sourced drivers do not support the KMS/shared-GEM/shared-DRM technologies on which Wayland works. While this may be okay for open source purists, who only want to use graphic cards that have open source drivers available, it may not sit well with people who spend a lot of money for high-end graphic cards only to get some crappy 3D performance.
Although it should be noted that NVIDIA has declared that they will start supporting Wayland, it may take years before Wayland fully supports most high-end drivers.
Con Vulnerable to Keyloggers
Because of the ability for applications to get information between them, X is extremely vulnerable to keyloggers.
Con Very complex codebase which is hard to maintain
The X stack is rather old and a lot of the things that have been added through the years feel more like hacks to make it work with newer technologies. This has made the X stack feel all over the place with bits and bobs everywhere. Making it a pain to maintain the stack in the long run.