holy crap. I've never used Wayland or Zig and this is still one of the most interesting programming talks I've seen in years. This video really seems to be making a good case for Zig as a game programming language.
There’s a few articles out there on rust and why linked lists just don’t really fit the language - in fact someone wrote a whole mdbook on it (google it). There are far easier and slicker ADTs to use, but it takes a reasonable understanding of the borrow checker. My feel is the speaker tried to apply skills from other languages to rust, it’s entirely different.
@@death-disco it's not that they tried to apply other skills. It's that libwayland and wlroots do things that are very difficult to wrap in rust without losing memory safety, which defeats the purpose of much the extra complexity of Rust.
Long time rust dev and have written for a few gui libs; can chime in and say that yes rust definitely has the most different paradigm of any language out there. Memory just doesn't 'share' the same way. GUI libs are particularly fond of terrible memory practices, rust tries to prevent these situations with the borrow checker, and as a result gui libs don't work well under rust. They could, but not how they are currently written. This isn't a defect of rust, it's a defect of the way we currently unsafely write code. But in practical terms it is limiting.
I think they were too ambitious in wanting to write it in *safe Rust*. But yeah, this use case doesn't really work in safe Rust: They want to know the lifetime at compile time and a person could at any moment just unplug a monitor.
Not a dev but I’m so looking forward to the first release of River :) also want to learn zig now - sounds really great! Edit: add rounded corners - instant win.
Nice to see Kakoune make an appearance in the wild! I’m setting up an environment with river that I hope to make my daily driver eventually. I saw that you have a wlroots implementation in Zig; how compatible is river with wlroots (for tools that say “for wlroots compositors)?
Hi, zig-wlroots isn't a wlroots implementation but rather zig bindings for the wlroots library which provide a safer, more ergonomic API than the bindings autogenerated by zig's @cImport(). As for how compatible river is with tools that say "for wlroots compositors," that depends on the tool but river should work with pretty much all of them in practice. What's going on here is that wlroots provides some useful protocol extensions for screen capture, display configuration, etc which most wlroots based compositors implement. Tools generally don't use all of these extensions but rather a select few. Ideally the tools would list exactly what non-standard protocol extensions they rely on. Hope that's all clear!
Wow! That guy is already prepared to go to work when he finishes university, which is more or less the same as what he did in this talk if you replace Linux with "Meeting calls" and Wayland with "Deadlines"!
It seems like this sneaky dude is laughing while speaking because wayland is just the same thing as xorg but with built in compositor and he knows he deceives us