I'll preface this by saying that I'm super new to GUI programming in general, but my best guess at the problems that I've been having with Go are that GTK expects all the UI code to be single threaded, and the Go scheduler will just move stuff around to different threads as it sees fit. In practice, this ended up being just one giant function with all of the handlers inlined as anonymous functions. Really gross. My troubles could also stem from lack of understanding of Go internals too.
In Rust, my understanding is that it's a bit more like C or C++ in that multithreading requires an explicit opt-in and you can be a bit more thoughtful about what workloads are running on what thread (i.e. lock gui to one thread, do background processing elsewhere). This also looks pretty neat: https://azul.rs/ Not sure about the state of it, how useful it'll be, etc, but it already looks more complete than most GUI libraries for Go.
In Rust, my understanding is that it's a bit more like C or C++ in that multithreading requires an explicit opt-in and you can be a bit more thoughtful about what workloads are running on what thread (i.e. lock gui to one thread, do background processing elsewhere). This also looks pretty neat: https://azul.rs/ Not sure about the state of it, how useful it'll be, etc, but it already looks more complete than most GUI libraries for Go.