Cross-platform development



  • @topspin said in Cross-platform development:

    QML based applications, which is the "blessed" new way to do things

    There's actually a reason for this. QML allows for OpenGL rendering on the GPU. Which is a huge deal for low-power mobile GUIs.

    But I understand the sentiment. I never liked QML that much either. Although QML2 did seem relatively mature back when I did a GUI project with it, and business logic could still be done with C++, thankfully.



  • @kazitor said in Cross-platform development:

    The other week someone pointed me to egui:

    I don’t know much beyond what’s immediately visible on the page, but relevant here is that it claims to runs natively on the three desktop OSes, as well as producing webassembly and webgl. If you click that link you immediately get such a webgl demo and I must say, the demos alone are impressive indeed.

    In fact, to quote myself,

    I must say, you’ve tempted me to learn rust for this alone

    I must say, something about this seems to make me say ‘I must say.’

    Of the new Rust UIs the one that looks most interesting to me is

    It currently uses webview (which it does not pull along like electron, but uses what is on the system) as the rendering backend (the benefit is that it works on all of desktop, mobile and web already – and in web it can run both full client-side and client-server), but work is being done on native renderers too.



  • @topspin thanks, that's a lot of good information. I don't really have a huge amount to answer to all that, but I'd say on the whole it matches my understanding of Qt, so it's not really news to me (which I take as a good thing, it means I'm not totally out!). I probably also feel less strongly than you do about all that, so some of those things simply never really bothered me, even if I do agree.

    Of course you could argue it is already mature, so it doesn't need that much development.

    That's definitely how I see it, yes. I have to make clear that my only target is desktop, I've never done mobile. On desktop, the basic blocks of an UI have been there for... I'd say 20 years? (before that things like tabs, or interaction methods like mouse wheel, were still in their infancy) (maybe the last major "invention" in that domain has been the ribbon, or desktop notifications?)

    Even Qt 4 (yes, I'm that old...) didn't really feel like a huge change to me. I mean, it was in terms of the code itself and it introduced a lot of new modules and it was a huge step forward in cleaning up and making things consistent between various bits of the toolkit, but porting from Qt 3 was fairly straightforward and resulted in very little visual changes to the user. So even at that time the whole thing seemed pretty mature, Qt 4 seemed to me a bit like an huge "end of project refactoring." And Qt 5, for me, did not bring major new features -- reorganisation, cleaning up, modularity... again a lot of good things, but nothing major.

    Qt 6... I don't have a clue as to what it contains that might matter to me, to be honest. I expect that the day we'll switch to it, it will be entirely transparent to everyone (devs and users), apart from the guy who will set it up in our 3rd party libs repository.

    Then there's the schism introduced between QML based applications, which is the "blessed" new way to do things, versus Qt widgets based applications, which is the "legacy" way.

    Yeah, I've never got into QML but I keep saying myself that I should, at least to understand what's going on. And I also got the feeling that ever since... Qt 4 or something? QML is the part that got all the love, the widgets being just left there. And I always had a nagging doubt as to whether they would still be there and maintained. Then again, I have had this feeling for... close to 15 years I'd say? so at that point it doesn't really sound warranted.

    I think general usage of Qt is becoming less widespread as more developers just run idiotic tech like electron, so that's one reason for it. Sticking with Qt makes me wonder if I'm making myself miss relevant technological developments and skills.

    Definitely my feeling as well. Then again, as I said, I've had this feeling for the past 15 years, and when looking at the commercial desktop development (for various business applications) Qt widgets is... perhaps not "the way to go" but definitely not dead. So... I guess it's not so bad?

    [Qt licensing and versions and downloads]

    Qt has always had trouble handling this. I remember (again, :belt_onion:) when they were Trolltech, then part of Nokia, then again an independent company, and how they kept wavering around with different licensing models. I remember a time when we had to buy a license to use Qt in commercial applications, then not, then maybe, then...

    So yeah, I get your points, but I don't really feel like this is 1) new, 2) a huge issue (annoyance aside) and 3) something that is likely going to change a lot in the future.

    Then again, we are stuck (for various reasons) to relatively old versions of Qt (OK, scratch the "relatively" part, we use 5.9 in some applications, 5.11 in other, so they're definitely "old" or "very old" versions!). So we don't bother getting new versions very often (we also compile from source because we need a couple of non-standard libs/options, nothing major, it's just setting the flags, but that means we can't just use the packages).

    Then again, see the part above about it being mature, reading through lists of changes I can't see any good reason to update to anything newer apart from, well, not using a version that's already obsolete for years.


  • BINNED

    @remi said in Cross-platform development:

    @topspin thanks, that's a lot of good information.

    Almost surprising. As I said, it wasn't particularly well thought out. Also probably not comprehensive, but already long enough...

    Of course you could argue it is already mature, so it doesn't need that much development.

    That's definitely how I see it, yes. I have to make clear that my only target is desktop, I've never done mobile.

    Same here. My targets are desktop, cross-platform. I release on Windows and Linux. I don't release on Mac, but since I type this on one, I build on it every once in a while.

    On desktop, the basic blocks of an UI have been there for... I'd say 20 years? (before that things like tabs, or interaction methods like mouse wheel, were still in their infancy) (maybe the last major "invention" in that domain has been the ribbon, or desktop notifications?)

    Well, kinda, I guess. But the widgets parts practically sees no updates except maintenance, ever. There's a few extremely basic, crappy third party "ribbon" implementations on github, to go with your example, but nothing official. And platform integration like QWinTaskbarButton are already deprecated. (Ok, maybe that's because MSFT rewrites their task bar every release).

    Then again, we are stuck (for various reasons) to relatively old versions of Qt (OK, scratch the "relatively" part, we use 5.9 in some applications, 5.11 in other, so they're definitely "old" or "very old" versions!). So we don't bother getting new versions very often (we also compile from source because we need a couple of non-standard libs/options, nothing major, it's just setting the flags, but that means we can't just use the packages).

    Thanks for acknowledging that our old crap is old. Our RedHat systems still run 5.9, and I'm not even sure I can install 6, because even the libc is too old (unless I compile from source). Porting a lot of stuff to 6 (on Windows) only took me one day. A few deprecated classes replaced, and a bunch of stuff moved between namespaces, unfortunately in a way that is backwards compatible only to Qt 5.15 but not goddamn 5.9, so I had to #ifdef around it. Nothing deal breaking.


  • BINNED

    @kazitor maybe uninformed prejudice, but unless you're writing a game "immediate mode GUI", just like "Dear ImGUI", immediately makes me think: not a good idea.



  • @topspin said in Cross-platform development:

    Well, kinda, I guess. But the widgets parts practically sees no updates except maintenance, ever. There's a few extremely basic, crappy third party "ribbon" implementations on github, to go with your example, but nothing official.

    Fair enough. I don't really see a need for more significant updates, but that doesn't mean there is no space for them. I'm not a great fan of the ribbon but indeed, it's just not there. It's probably not the only thing. And there is stuff like what you said about styling (which I agree with) that could possibly benefit from a major overhaul in the widgets part, so... yeah, it looks a bit dead.

    Then again, it has been so for 15 years, and maybe we're just too used to techs changing every 2 years and we're not used to something that Just Works? (there are techs such as LaTeX (yes, yes...) that have not really changed for decades now and that are still as good (as bad?) as before)

    Thanks for acknowledging that our old crap is old. Our RedHat systems still run 5.9,

    Eh. I also have to fight every few months with IT to stop them from killing our one last remaining Debian 7 machine, which we need because one client still uses it.



  • @topspin said in Cross-platform development:

    Same here. My targets are desktop, cross-platform. I release on Windows and Linux. I don't release on Mac, but since I type this on one, I build on it every once in a while.

    That's me too - almost. I release on Windows and Mac. And build every once in a while on ubuntu. (except I'm using wxWidgets)


  • Considered Harmful

    JavaFX! (ducks)



  • @remi said in Cross-platform development:

    And Qt 5, for me, did not bring major new features -- reorganisation, cleaning up, modularity... again a lot of good things, but nothing major.

    Qt5 brought serial port support and camera support.

    Significant for those of us who happen to need 'em. I've used serial ports for communication with hardware for half my career, so I switched from Qt4 to Qt5 immediately when I had the chance.



  • @acrow fair enough. I don't use those so I didn't care, but I can understand that it'd be a major improvement if you do.

    Though, in keeping with the rest of my post (and in the spirit of this forum to pointlessly bicker about nothing), I would argue that these are quite minor features for a desktop application. Again, quite useful if you do need them, but the amount of people that do is probably very limited. I think they are probably more relevant to mobile (or embedded) where you are more likely to need to handle, well, serial ports and cameras. But on a desktop... that's probably somewhat uncommon. Of course if you work with hardware (like you) it's part of your bread-and-butter, but working with hardware is IMO somewhat uncommon on the whole.



  • @remi said in Cross-platform development:

    working with hardware is IMO somewhat uncommon on the whole

    Which tells you something about the state of society. If most actual data work could still be performed with character terminals, and hardware interfacing is a small fraction of all software work, then most of all software work done in the world (possibly 90%+) is just for making pretty pictures, basically. ...I find the thought depressing.



  • @acrow said in Cross-platform development:

    most of all software work done in the world (possibly 90%+) is just for making pretty pictures

    I think I agree with this conclusion. Definitely, when looking at my business, something like 99.9% of all software is for "making pretty pictures," by your definition.

    I find the thought depressing.

    I guess that's where our opinions differ. A "pretty picture" is not just a cute kitten, it can also be a doctor finding a tumour on a medical image or an engineer designing an air plane. I'd rather have doctors and engineers look at pretty pictures rather than randomly prod me open with knives or throw bits of balsa wood off a cliff.

    (ETA: this definitely isn't appropriate for a help thread, so I think we should either stop, or move somewhere else. Apologies to everyone involved for that.)


  • Considered Harmful

    @acrow There would also be software for making software which makes pretty pictures :thonking:


  • Java Dev

    @Applied-Mediocrity As well as software for making pretty pictures to show how the software for making pretty pictures should have its pretty pictures for making pretty pictures look.



  • @remi said in Cross-platform development:

    working with hardware is IMO somewhat uncommon

    Hmmm.....



  • @HardwareGeek said in Cross-platform development:

    @remi said in Cross-platform development:

    working with hardware is IMO somewhat uncommon

    Hmmm.....

    Well, you are a bit uncommon... 😏



  • @dcon Indeed, there is only one of me

    But at least I'm not a Technical Rarity.

    Edit: However, this is a help thread, so we really should knock off the unhelpful comments. That thread is :arrows:.


Log in to reply