What does HackerNews think of qt?
Qt binding for Go (Golang) with support for Windows / macOS / Linux / FreeBSD / Android / iOS / Sailfish OS / Raspberry Pi / AsteroidOS / Ubuntu Touch / JavaScript / WebAssembly
Do these not work? (Not a rhetorical question - I haven’t tried them.)
The multi-arch & especially Android deployment feature is exactly what I needed, I can skip using Android-Studio/HTML as UI now
I explored the landscape earlier this year when I was building a GUI version of a CLI tool written in Go. I was throughly disappointed by all the “native Go” and non-webview options — narrow selection of widgets with basic functionality missing, UIs ranging from lack of polish to horrendous looking (that makes Java GUIs look like godsend), lots of bugs, etc. I ended up using the Qt binding which, despite its own share of problems, at least worked fairly reliably and didn’t constantly get in my way in every way imaginable: https://github.com/therecipe/qt
https://github.com/kitech/qt.go
https://github.com/therecipe/qt
Both seem to be in active development. Does anybody have experience with either?
That aside, there are some resources around for this though I've not (yet) tried any of them:
* http://embd.kidoman.io - Go Embedded Programming Framework. Seems to support Raspberry Pi and BeagleBone Black.
* https://gobot.io - Robotics more than embedded, but there seems like some overlap. :)
---
With the "Why no desktop apps in Go?" question, for me it's because I'd only do so using something like Qt (cross platform).
While there have been several attempts to get usable Go bindings happening for Qt, none of them seem both really well done + long term stable.
The best developed Qt bindings so far are https://github.com/therecipe/qt. But that seems to have tapered off and the developer doesn't seem interested in making it into a team project (eg long term viability). That's my impression anyway, I could be wrong. :)
And many other static langs (i.e. not-python) have issues with their Qt bindings (e.g. Go [3] which can't compile via MSVC which some things like the QtWebEngine stuff need). Sadly, for advanced UI (e.g. complex tree views, docking, etc) that is cross platform and looks native, Qt is all there is, and it's reliance on C++ makes it a bit tough to use across languages. A maintained C iface for Qt is really needed.
0 - https://github.com/rust-qt/cpp_to_rust/issues/53
1 - https://github.com/cretz/rust-qt_cef_poc
platform native https://github.com/andlabs/ui
gtk http://mattn.github.io/go-gtk/
qt https://github.com/therecipe/qt
qml https://github.com/go-qml/qml
shiny (still being developed, Go native) https://github.com/golang/exp/tree/master/shiny
There's a promising Qt binding for Go[1] which I'm looking forwards to, but again, if I had to write an application and not want to struggle with the bindings I'm forced into the previously mentioned options.