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?

  • Kissaki@programming.dev
    link
    fedilink
    English
    arrow-up
    4
    ·
    6 months ago

    For a desktop app I would go with none of those.

    If cross platform is the goal, the more important question, and independent of the programming language, is which GUI framework you will use.

    Your best bet, at least if you are looking for a stable GUI framework, the best candidate may be C++ and Qt. But that’s a hassle in its own right - both C++ and Qt.

    TypeScript will have some solutions for you, with web rendering as a desktop app. Golang will have Qt bindings or other more experimental/not thoroughly established+popular GUI frameworks.

    My personal favorite ecosystem is .NET. It has an official cross-platform UI project MAUI, but without an official Linux target. Community extensions probably exist. Personally, I dislike the way the UI is declared and bound though (XAML).

    My current interest, which I have not explored or validate yet, is using .NET but then host a web or Blazor app in it with Webview2. .NET supports cross-boundary programming, crossing web+managed/native development, and crossing web(HTML+JS)+managed.

    Most of the time GUI and the framework technology is a hassle. Your question is too broad and unspecific, so there’s not a good answer.

    If it’s not a “serious” project that you depend on [for your livelihood], pick and start with whatever [looks good or interesting] and go from there. If it is a “serious project” do a bit more GUI framework exploration and assessment, and pick and commit to something. If it’s a big commitment or risk, do prototyping with your candidates for verification and assessment - beyond the most simple examples, and for your specific usage.