I hate: Programming Wayland applications

Overall Tone

  • Strong split between people who like Wayland as users and those who find it painful as developers.
  • Many agree the raw Wayland API is hostile for simple apps; disagreement on whether that’s acceptable for a “low-level” protocol.

Wayland vs X11 (and Win32) Design

  • Wayland is seen as “theoretical / pure” and minimal: surfaces + events, everything else pushed out of core.
  • Critics say X11 and Win32 are more pragmatic: easy to open a window in a few calls, whereas a trivial Wayland client can be hundreds of lines and heavy on boilerplate.
  • Some argue X11 already handled HiDPI and tearing “well enough”; others say X11 had practical issues, especially with mixed-DPI and compositing.
  • Network transparency: some rely heavily on X11’s ability to run remote GUI apps; others say X11 forwarding is fragile and not a compelling reason to keep X11.

Security, Isolation, and Lost Capabilities

  • Pro‑Wayland side: X11 is a “security disaster” (keylogging, full-screen inspection, clipboard snooping) that undermines sandboxing.
  • Critics: these problems could have been fixed in X11 (e.g., ACLs, trusted/untrusted clients, Win32-style access checks) without a new protocol.
  • Complaints that Wayland’s security model breaks common workflows:
    • Global hotkeys, automation tools (xdotool-like), independent window managers, and accessibility tools become compositor-dependent or impossible.
    • People note OBS-style global shortcuts and a11y tools are now hard to implement or require per-compositor extensions and user workarounds.

Compositor Fragmentation & Missing Standards

  • Many frustrations stem from delegating functionality to compositors:
    • Global shortcuts, window management APIs, key remapping, a11y, screenshots, etc. all live in non-standard extensions.
  • Result: feature matrix across compositors, poor portability, and apps needing compositor-specific code or extensions.
  • Some see this as analogous to web platform fragmentation; others say lack of a standardized “window manager layer” is fundamentally problematic.

APIs, Callbacks, and Abstraction Layers

  • Wayland client API criticized as:
    • Callback-heavy, object-graph-based, XML-generated, with confusing functions (e.g., dispatch vs roundtrip).
    • Difficult compared to simple event-loop + switch-based models.
  • Defenders note:
    • It’s synchronous from the app’s perspective and primarily about queueing; “callback hell” is overstated.
    • Low-level APIs are supposed to be verbose; developers should use toolkits (GTK, Qt, SDL, GLFW, winit, Avalonia).
  • Others counter there should be an officially blessed, stable mid-level client library shipped with Wayland, rather than relying on third-party hobby projects.

Systemd Analogy & Community Dynamics

  • Some comments liken the Wayland debate to systemd controversies: loud, repetitive complaints vs defenders seeing necessary modernization.
  • One camp sees opposition as fear of change; another argues criticism is justified because these components are effectively forced by distros, not optional apps.