Now Cocoa would win but I prefer C/C++ to Objective-C, it's close though.
Good work people.
Now Cocoa would win but I prefer C/C++ to Objective-C, it's close though.
Good work people.
It follows the path of Turbo Vision, OWL and VCL.
Where productivity comes first, and C style tricks are only done when performance really matters.
Many C++ APIs suffered from std not being rich enough, and lots of Cisms in the early days.
Nowadays with all major OS vendors switching to safer languages for the UI layer, Qt seems to be the last C++ GUI framework in widespread usage.
The stdlib doesn't have anything to use files.
The C win32 API CreateFile() has 6 arguments each more obscure than the previous one. Gotta support sync and async in a single function.
The C kernel API NtCreateFile() has around 13 arguments, probably including enum with 105 different values.
It also has the QFileInfo class to retrieve file info, such as creation/last-modified/last-accessed date.
It just seems super weird to not also have the matching functions available to set those dates. Which we really wanted for our client side Qt/C++ GUI, as I'd just finished doing the server side part in Go which does provide those.
And Qt seems to provide pretty much everything else... but this one weird bit which is missing. :/
QML, Quick and Qt Widgets are fantastic though.
Also, I know this might sound crazy, but what about (f/m)asm?
I don't know what (f/m)asm is in this context, sorry.
It uses the native UI so fits in better with OSes, whereas Qt ones stand out to me (you can see the buttons aren't native). I did a lot of stuff that was "owner drawn" so reimplemented OnPaint to draw things myself for custom-look controls.
wxWidgets dropped its ODBC support a few years back so talking to databases likely needs another library. Also the ports/HTTP section of it isn't massively useful so I use libCurl instead.
Despite the bugs, it is quick to build and I found working with it enjoyable. Some controls (like the wxDataViewCtrl I think) were really slow so I wrote my own; the OpenGL wrapper works alright but I had to put some work into forcing it to resize; basically be prepared to put some work in - but it is rewarding. I like the layout mechanism - makes other systems like MFC look poor!
You can build wxWidgets and force it to use the STL for its container classes etc; Qt appears to implement everything again instead of just using the existing STL I think.
The developers are helpful and the forum is useful, at least for basic problems. I enjoy(ed) using it anyway.
I think Qt wins in all other domains though. Documentation, extensiveness and quality of the non-GUI stuff, etc.
But not having native widgets kinda sucks. You can see that when you make that compromise, the question comes why not to use Electron (which is a competitor of those two in reality).
I still miss the Amiga in general though. It was nice to have complete control over the machine, working in harmony with the OS... or hosing it and causing a Guru Meditation.
I caused so many of those, lol. It is also funny how I gravitated to Linux and Qt after finally leaving Amiga. Qt back than seemed like a combination of Amiga and BeOS.
Side note:
The funny thing is I think the computers of the future will more resemble the hardware structure of the Amiga than the single chip multi-core computers of today. Once we can't fabricate smaller nor make faster calculations the module design we had of the amiga will become dominate. We are on the edge of having a CUDA built on the silicone or what Power9 is doing by giving them faster lanes.