Learn Wayland by writing a GUI from scratch
There&#x27;s so many ideas and separate things&#x2F;topics in this: a protocol between the Wayland server and your client, an RPC mechanism, a protocol format serialisation, synchronization (lock), an async mechanism, an object registry, shared memory, domain sockets, event loop.<p>Now I haven&#x27;t written any non-CLI GUI Linux applications in C. I once played with the Qt IDE. I feel it is pretty difficult stuff!<p>I think dbus is also really interesting too.<p>This causes me to think of the success of Nodejs and how it abstracts async and makes it approachable to anyone. Rather than pointers in C you have JavaScript object literals.<p>The most complicated GUIs I created were with Swing in Java and JavaScript.<p>Can someone more knowledgeable tell me what is GPU accelerated with Wayland? Is there a bitblit operation uses by compositor? And how would you write a high performance GUI that is maintainable. I&#x27;m aware Blink&#x2F;Chromium uses Skia which I presume is accelerated.<p>In my JavaScript visualisation experiments with canvases - the page has started to slow down because I&#x27;m doing stuff on the main thread.<p>See this example - scroll down and you&#x27;ll see a process visualiser and scroll down further and there&#x27;s a graph. I&#x27;m doing parsing on the main thread 
<a href="https:&#x2F;&#x2F;replit.com&#x2F;@Chronological&#x2F;Processes3#index.html">https:&#x2F;&#x2F;replit.com&#x2F;@Chronological&#x2F;Processes3#index.html</a><p>I feel this would be so much harder to build in C.<p>I am kind of following the trends in GUI rendering tech - I am curious how you support rendering lists of hundreds of thousands of items without expensive update costs. The perennial react performance problem.<p>I&#x27;m following the approaches taken by Tauri and Rust desktop app designs. Looking for a silver bullet.