
Ask HN: Net or Java for cross-platform desktop application - darreld
I&#x27;m starting a project to scratch an itch of mine and I&#x27;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.<p>I have decided to use a web UI for a desktop app.  My current research leads me to .Net&#x2F;Nancy&#x2F;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.<p>My preference, at least for development, would be Java but that&#x27;s because I have much more experience in Java than C#&#x2F;.Net.<p>I supposed I could do it in Python, but I&#x27;m not nuts about the deployment story for folks listed above.   I&#x27;m not interested in Electron.<p>I thought I&#x27;d see what HN had to say about the choice.
======
karmakaze
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?

~~~
darreld
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).

------
docode
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.

------
kevinherron
Can't go wrong with Java or Kotlin.

Use whatever you're more familiar with.

------
passthejoe
Syncthing does this with Go and a web page using localhost.

