I’m looking for a programming language that can help me build a desktop application for Windows, macOS, and Linux that’s not big but not small either. Additionally, I’d like to be able to build a website with the same language. I’ve been considering Ruby, Python, Golang and JavaScript. Python seems to be mainly used for scripting and ai, so I’m not sure if it’s the best fit. JavaScript has a lot of negative opinions surrounding it, while Ruby sounds interesting. Can anyone recommend a language that meets my requirements?

  • mox@lemmy.sdf.org
    link
    fedilink
    arrow-up
    4
    arrow-down
    1
    ·
    edit-2
    5 months ago

    desktop application for Windows, macOS, and Linux

    Nothing does cross-platform desktop apps as well as Qt.

    Definitely not Electron, which is very wasteful of system resources and has endless desktop integration bugs. Not Flutter. Not WxWidgets. Not Gtk. Not any of the various Java or Rust frameworks. Not Dear ImGui. Nothing. (Well, I haven’t tried Lazarus yet, but it requires a language that’s not on your list, so is probably not relevant here.)

    Some of the newer frameworks might shape up eventually, but it would take years of focused effort. This is an area of computing that is difficult to do well.

    I’ve been considering Ruby, Python, Golang and JavaScript

    Of those languages, I would choose Python with either PySide or PyQt. If my interface needs were very simple, I might also consider Qt Quick, which lets you build GUIs with JavaScript and a declarative language called QML.

    • diy@sh.itjust.worksOP
      link
      fedilink
      arrow-up
      1
      ·
      edit-2
      5 months ago

      Thanks i will look into PySide and PyQt. I also think all kde apps are build with Qt

      • liliumstar@lemmy.dbzer0.com
        link
        fedilink
        English
        arrow-up
        1
        ·
        5 months ago

        I can vouch for PyQt, it works quite well for what it is. Be aware you might have to dig into the C++ docs if you’re trying to do something non-trivial.

        If you like, you can use Qt Creator to build the GUI template, and then basically import into Python and build all the logic.