
جیمی شارپ (Jamey Sharp)، توسعهدهنده باسابقه X.Org و همبنیانگذار XCB (X protocol C-language Binding)، پس از سالها کار در اکوسیستم X11 نخستین کلاینت Wayland خود را نوشته و طراحی این پروتکل را تحسین کرده است. او در پیامی در ماستودون (Mastodon) گفته است که در طراحی Wayland تأثیر همه درسهایی را میبیند که طراحان آن از X و همچنین از XCB آموختهاند.
از XCB تا Wayland؛ نگاه یک توسعهدهنده قدیمی
XCB جایگزین مدرن Xlib برای تعامل با سرور X.Org/X11 است و حدود دو دهه از عمر آن میگذرد. شارپ که در ساخت آن نقش داشته، اکنون میگوید نوشتن کلاینت Wayland برایش تجربهای روشنگر بوده است. او در بخشی از پیام خود نوشته است: «سالها پیش xcb.freedesktop.org را برای کلاینتهای X Window System نوشتم و دیروز نخستین کلاینت Wayland خود را نوشتم. میتوانم تأثیر هر درسی را ببینم که طراحان Wayland از X و از XCB آموختهاند. صادقانه بگویم، از طراحی پروتکل Wayland واقعاً تحت تأثیر قرار گرفتهام.»
پیچیدگی آگاهانه در پروتکل سطحپایین
او به انتقاد برخی درباره حجم کد لازم برای باز کردن یک پنجره در کلاینت Wayland اشاره کرده و توضیح داده است که Wayland پروتکلی برای ممکن کردن کارهای دشوار است، نه ساده کردن کارهای آسان. به باور شارپ، برای کارهای ساده باید از ابزارهای سطحبالاتر مانند Gtk، Qt یا SDL استفاده کرد.
شارپ برای برنامه آزمایشی خود بیش از ۳۰۰ خط کد Rust نوشته است؛ برنامهای که تنها یک پنجره باز میکند، بهصورت دورهای بین سفید و سیاه چشمک میزند و برخی آمار زمانبندی (timing statistics) را اندازهگیری میکند. او عمداً از کمککنندههای (helpers) کتابخانه wayland-client برای اتصال گلوبالها (binding globals) استفاده نکرده تا تجربه کار با پروتکل خام (raw protocol) را ببیند؛ هرچند پذیرفته است که با این کمککنندهها کد میتوانست کوتاهتر باشد.
مبادله درست میان پیچیدگی و انعطاف
به گفته شارپ، حذف هر یک از مراحل لازم در این مسیر به معنای از دست دادن توانایی مدیریت سناریوهای پیچیدهتر است. او معتقد است Wayland در این زمینه مبادله پیچیدگی (complexity tradeoff) درستی انجام داده است: پروتکل سطحپایین (low-level protocol) انعطافپذیری بالایی دارد و سهولت استفاده باید در انتزاعهای سطحبالاتر (higher-level abstractions) فراهم شود؛ انتزاعهایی که میتوانند انتخاب کنند کدام جنبههای این انعطاف را به نفع سادگی کنار بگذارند.