I really want to like Qt5, but it's just so... big, and using it from C++ is so cumbersome. I don't suppose you're familiar with any quality Rust or Nim or D or some other compiled-language-that-sucks-less bindings? There's https://github.com/cyndis/qmlrs, but that seems very incomplete/sketchily maintained so far (which is the problem with most bindings that I know of).
The trick is that Qt5 != Qt Quick. There aren't many bindings to Qt5 since the binding surface is enormous and very C++-like.
The QML bindings for other languages don't have to cover much surface area though. They look minimal but most of them are eminently usable because all the UI logic is in the QML+JS, all you need in a binding is a way to pass data in and out.
D, Rust, Go, Ruby, Python, etc... all have good enough bindings, that work for now and even if they do need some patching, aren't that big or hard to patch yourself. I've never used them myself (I just use C++, but I plan on using D for a QML app someday), but I know some other projects that do like https://github.com/limetext/lime
Ive been contributing to this when I have free time https://github.com/salviati/go-qt5 . I am a C++ Qt 5 dev by day so its been a fun little project. Far from complete though.
The only really complete bindings for Qt 5 are PyQt5 but its not compiled so its out for me. There are solid qml bindings for go and the rust ones worked fine last time I tested. Im not really a big fan of QML though. Its really much different than using widgets and Im not a Javascript dev by any means.
Qt5 is big in its entirety, but I've found when I've sat down to do a quick gui app in C++ that the development goes reasonably quickly. It's been nice for me in desktop and embedded environments.
The QML side of things I've never tried, and the QML based bindings to other languages in general seem less mature than the C/C++ bindings. I'm keeping an eye on go-qml though.
The best bindings are the ones for Python" PyQt (I know it's not compiled, but it's definitely a nicer language than C++). Unfortunately, it's an absolute pain the butt to try to use those on mobile, especially since Python does not build out of the box on any mobile platform (!).
I used to have a good experience with py2exe in the past. We used it in production, to deliver exes to end users.
Because it looks abandoned nowadays, I've tried pyinstaller recently. It worked OK, too; the only thing that was slightly annoying was pulling in the Windows 8/2012 (api-ms-win-*) style system dlls.
Lately I've been using Python/PyQt with Nuitka, which transpiles the Python to C++ and then compiles it into a standalone exe + dlls. It (more or less) just works too, very cool indeed!
Hey -- I've got a question about that use case. So I'm familiar with Nuitka (and all the rest... ugh) but in my brief tests using it I couldn't really get it to work with any of my python code that did anything real.
For example, if I had anything that used numpy (which is most of my code) or Qt, or a lib that uses opengl, it would either fail outright saying "can't find blarg" or it would spin forever. Now I understand that the process of transpiling something huge like numpy and then compiling it will be fairly demanding, but I've literally left this stuff running in a tmux session for a day or two and it showed now sign of ever finishing.
I'm not asking you to debug my stuff or anything, but have you had a different experience? Is there a trick to getting Nuitka to build code that leverages the python ecosystem? I would really like to figure this out, because the alternatives are really quite terrible, IMO. If Nuitka can be made to work with build times less that a week, I think he's really on to something.
Huh, strange. My standalone build sucked in numpy and PyQt4 (but not PySide) no troubles at all. I did have a minor problem with ctypes (explicitly importing _ctypes was required), but apart from that surprisingly smooth sailing. I have tried Cython briefly but Nuitka seemed a lot easier; just point and go. No modification to the source code needed and I ended up with a nice .exe and a bunch of .dll and .pyd files (including those for numpy and PyQt4). Build time was 30 minutes for a small-medium size application (25000 lines) in Python 2.7.