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 :)

  • GissaMittJobb@lemmy.ml
    link
    fedilink
    arrow-up
    5
    ·
    2 months ago

    Understand what tradeoffs different solutions make, then inform your decision on that. A fairly general principle for example is that the more cross-platform compatible a solution is, the less well-suited it will be for any given platform in terms of looks/behavior/performance. This may or may not matter for what you’re building.

    There are inherent qualities to some solutions (for example, a particular library may make for good solutions on a certain platform), and some qualities will be situational (a particular library is good for you because you happen to know the language/patterns/framework/whatever).

    I personally like to build things in Kotlin and Jetpack Compose, but that’s because I primarily build mobile apps for Android and I like the reactive UI paradigm that underpins this library along with the language that it’s written in. I would perhaps reconsider if I were building a desktop app (not as well supported), and definitely reconsider if I were building a web app (definitely a poor fit).

    So yeah, start with what you’re building and what its requirements are. Then think about what you already know, and finally put those together when evaluating a UI solution.

    • InternetCitizen2@lemmy.worldOP
      link
      fedilink
      arrow-up
      1
      ·
      2 months ago

      So yeah, start with what you’re building and what its requirements are.

      It would be desktop. I mostly want to add front end to some stuff I would CLI to round out my skills. I’ve not seen much about Rust and GUI framework. I’ve got some Java experience, but read that its native Java FX is deprecated now. I’ve done a lot in Python, but also want to start learning a language that might be more suited to enterprise work. I honesty am not sure were I’m at. But thanks for your answer

      • GissaMittJobb@lemmy.ml
        link
        fedilink
        arrow-up
        1
        ·
        2 months ago

        Wanting to learn is a good requirement in itself.

        Try starting with the language and then see what you can make of it in that case. You may find out that it’s not exactly viable, but then you can always try something else.