6 ms·
I've seen a ton of bindings like this over the years, mostly implemented with SWIG (http://www.swig.org/ http://www.swig.org/)... for binding desktop GUI librar
by StevePerkins 8y ago
I've seen a ton of bindings like this over the years, mostly implemented with SWIG (http://www.swig.org/ http://www.swig.org/)... for binding desktop GUI libraries like Qt, wxWidgets, etc to languages more accessible than C++.
It's all awesome, and this example here is certainly better than most (fantastic work!). The problem has traditionally been that most of these things are hobby projects from a single developer, and they go moribund when the developer gets bored and moves onto something else. Hell, if you Google around a bit, you might still find a "wxJava" binding on Sourceforge that I started and abandoned ~15 years ago.
To actually be fit for production use, one of these things needs to be either: (a) sponsored by some entity that keeps leadership continuity going, or (b) driven by an unusually large and unusually non-toxic volunteer group that is able to effectively mimic "a", or (c) created by someone who sees it as their crowning achievement and effectively dedicates their life to it. If this project really does have committed backing from the full KDE organization itself, then that's very encouraging!
I'd be interested to know if it's really an organization level commitment, or if they're just providing hosting for an experiment spearheaded by a single contributor (the Go team at Google has an "experimental" GUI library like this, but it's just one guy's noodling and no one really sees it as gaining traction outside of that). I'd also be curious what the cross-platform story is at this point (i.e. does it build and run on Windows?).
The only other examples I've seen so far that even come close to fitting the bill are in the Python community. And even that is a bit of a mess. There's confusion between two competing Qt bindings... and the wxWidgets binding has been going through a re-write for years, such that it's confusing whether to stay on the old version or adapt the new one (kinda like Python itself!).
But I still keep my eyes open, and look into this space every year or so. It would just be so awesome if there were a viable cross-platform desktop GUI solution, for a modern statically typed language somewhere between the extremes of C++ and JavaScript. I accept that desktop development is less important than it was 15 years ago... but I reject this notion that, "Desktop development is dead, just use Electron". There are still millions of use cases for true desktop applications. The only thing that's "dead" is the notion of being able to get away with just writing a native Windows version, and ignoring Macs (or vice-versa). And all of the cross-platform solutions have major problems, or are tied to languages or toolchains that people don't want to use, so that lack kinda sucks the oxygen out of the room for the open-source and hobbyist crowd on web forums.
- j1elo 8y agoYou are right, it would be great to see bindings as promising as these ones, but backed by some big players in the Qt world (such as e.g. KDAB which already provide very useful and well supported tools like the awesome GammaRay)
- dvfjsdhgfv 8y agoI completely agree with your thoughts. However, Rust is getting a lot of traction these days. Sooner or later more people will start to wonder "How do I write a portable app in it?" The Qt solution is a neat one, and might soon become the de facto standard - something similar happened with Python and Tk in the past.
- danieldk 8y agoI have dabbled a bit in Rust GUI programming for a small project and gtk-rs also works quite well. Is is also actively maintained and has regular releases. http://gtk-rs.org/ http://gtk-rs.org/ Some people from the GNOME and Rust communities are working on macro magic that allows you to create GObject classes from Rust [1]. The downside is that the applications do not look native on macOS or Windows. But so doesn't Electron ;). [1] https://gitlab.gnome.org/federico/gnome-class/ https://gitlab.gnome.org/federico/gnome-class/
- foldr 8y agoHistorically, only languages with enormous amounts of traction have developed mature, consistently maintained GUI libraries. Right now, it's basically only C++, Python and Java that have any.
- pjmlp 8y ago> It would just be so awesome if there were a viable cross-platform desktop GUI solution, for a modern statically typed language somewhere between the extremes of C++ and JavaScript. For me that is JavaFX and Xamarin.Forms. > The only thing that's "dead" is the notion of being able to get away with just writing a native Windows version, and ignoring Macs (or vice-versa) Depending on the world region, you can still get away with targeting only Windows. Not every country has lots of people able to pay for Apple devices, or even with Apple stores in every corner.