Linux Kernel & OS

XCB co-creator Jamey Sharp endorses Wayland protocol design after first client implementation

Key Takeaway

A foundational X11 developer who built the modern XCB replacement for Xlib has validated Wayland's protocol-level design choices after experiencing the raw protocol directly in a Rust client implementation.

Summary

Jamey Sharp, co-creator of the X protocol C-language Binding (XCB) that has served as the modern replacement to Xlib for two decades, wrote his first Wayland client and publicly praised the protocol's architectural decisions. Sharp implemented a 300-line Rust program that opens a window, flashes between white and black, and measures timing statistics, deliberately avoiding the wayland-client crate's helper abstractions to evaluate the raw protocol experience. His assessment directly addresses a common criticism of Wayland—that opening a basic window requires substantial boilerplate code—by framing this complexity as intentional flexibility rather than design failure.

Sharp's endorsement carries particular weight because XCB itself was designed to modernize X11 client development by addressing Xlib's limitations, giving him direct comparative experience with both legacy and next-generation display protocol evolution. His conclusion that Wayland 'made the right complexity tradeoff' by reserving ease-of-use for higher-level toolkits like Gtk, Qt, and SDL reinforces the architectural philosophy that has guided Wayland's decade-long transition from experimental replacement to default display server across major Linux distributions.

Protocol design philosophy and complexity tradeoffs

  • Raw protocol vs. abstraction layers: Sharp deliberately bypassed the wayland-client crate's global-binding helpers to evaluate unadorned protocol interaction, concluding that the perceived verbosity serves necessary flexibility for complex scenarios.
  • Intentional complexity allocation: The design explicitly places simplicity at the toolkit layer (Gtk, Qt, SDL) rather than the protocol layer, inverting X11's approach where convenience and protocol were more tightly coupled.
  • Historical design lineage: Sharp identifies visible lessons from both X11 and XCB embedded in Wayland's protocol structure, suggesting iterative refinement rather than clean-slate reinvention.
  • Measured implementation scope: The test program's specific functionality—window creation, timed color flashing, and statistics gathering—provided sufficient surface area to assess protocol behavior for timing-sensitive graphical operations.

Why it matters

Sharp's endorsement from within the X.Org veteran community provides credible technical validation for distributions and desktop environments that have already committed to Wayland as default, such as Fedora and Ubuntu, potentially accelerating remaining application migrations. For toolkit developers and compositor maintainers, his analysis reinforces that protocol-level complexity complaints should be addressed through abstraction improvements rather than protocol simplification, clarifying where ecosystem engineering resources are most effectively directed.

Original reference: www.phoronix.com →