Ask HN: Net or Java for cross-platform desktop application
I'm starting a project to scratch an itch of mine and I'd like for it to be available for all 3 major desktop platforms. This is the point in projects where I seem to have grown a big case of Analysis Paralysis.
I have decided to use a web UI for a desktop app. My current research leads me to .Net/Nancy/Kestrel, or Java. The UI will be a self-hosted SPA talking to localhost. I am concerned about users on non-Windows platforms reluctance to use dotnet core and also to less technical users on Windows needing a current Java JRE installed, since I fear it may have fallen somewhat out of favor. I think a large portion of users would be part of an enterprise.
My preference, at least for development, would be Java but that's because I have much more experience in Java than C#/.Net.
I supposed I could do it in Python, but I'm not nuts about the deployment story for folks listed above. I'm not interested in Electron.
I thought I'd see what HN had to say about the choice. I would suggest perhaps a language/framework that compiles to a single binary. I'm assuming that the back-end doesn't need to do any heavy lifting. You could use Go, Crystal/Kemal, Nim/Jester or other combination. Do you actually need the same deployed code to run on each platform (Net/Java) or is it sufficient to have common source that produces a binary for each? That is a great point. I don't think I actually need the same deployed code to run everywhere. Common source would work. I do, however, feel like I need a language that is capable of producing an app that can be managed by a user, such as a UI for starting the backend process (UI or Windows service). I would prefer .NET Core for all future work. With their nice stack like CoreRT and X-Plat features it's very smooth to work. Can't go wrong with Java or Kotlin. Use whatever you're more familiar with. Syncthing does this with Go and a web page using localhost.