Sorry for the somewhat noob question, but how do you pick a library for making a GUI for your apps? My background is in physics, so most of my programming is perfectly find with a CLI that outputs a graph as a ps file or some csv. I am looking to learn about making some neat little GUIs. I was thinking it would be a good idea to try and build my GUI out of the browser so that my app can be as portable as possible, but does this mean it has to be in Javascript or can the backend be done in anything else?

I am not really sure what I am asking, but wanted to get a feel for how people approach front ends.

Thanks :)

  • mox@lemmy.sdf.org
    link
    fedilink
    arrow-up
    12
    arrow-down
    1
    ·
    edit-2
    1 month ago

    be as portable as possible

    This is important to me, which narrows down my options quite a bit.

    Electron is portable across desktop OS, but unacceptably bloated (I don’t want my users to have to deal with that) and buggy (I don’t want to deal with that).

    wxWidgets and various similar wrapper libraries exist, but on Linux most of them wrap Gtk, which in recent years has become very opinionated in UI directions that I find intolerable.

    A few new cross-platform GUI toolkits have been appearing recently, but I’ve found all of them suffer from poor text handling, anemic widget sets, or very out-of-place look and feel (especially keyboard navigation) relative to native applications.

    That leaves Qt as my only reasonable choice, at least for now. This is mostly okay, as it does a wonderful job all around. My main complaint is that using the full power of its widgets and libraries means I’m restricted to a handful of languages: C++, Python, and maybe one or two minor ones like D. Its declarative API (Qt Quick) seems to be getting more language bindings, though, so simpler apps might be possible in other languages.

    Note that the landscape is different for mobile apps. I don’t have a recommendation for those.

    • RayJW@sh.itjust.works
      link
      fedilink
      arrow-up
      2
      ·
      1 month ago

      What about Tauri? I don’t know what exactly your app is but since you mentioned Electron as an option I guess Tauri could run it. Offers more choice for frontend frameworks hence less „language lock-in“ than Qt.

      • mox@lemmy.sdf.org
        link
        fedilink
        arrow-up
        1
        ·
        edit-2
        1 month ago

        I mentioned Electron only to acknowledge a well-known cross-platform toolkit, not as an example of acceptable results.

        Tauri on Linux is effectively a Gtk wrapper (plus WebKit), which makes it unappealing to me. I keep it bookmarked anyway just in case I find myself in a situation where the only other option is Electron, since I suspect Tauri would at least be lighter on system resources.

      • mox@lemmy.sdf.org
        link
        fedilink
        arrow-up
        1
        ·
        edit-2
        1 month ago

        I don’t enjoy writing in Tcl. If I were to use Tk today, it would probably be through Python’s tkinter package.

        IMHO, Tk interfaces look awful by default, but they can be made to look pretty decent if you’re willing to hunt for (or create) a good theme. I have considered it a couple of times for trivial tool UIs, and I occasionally use one that someone else wrote.

        That said, getting it to look native on multiple platforms would take more effort than I feel is worthwhile, and getting it to feel native (keyboard nav, etc.) even more so. Qt has this stuff built in, and a lot more.