
Ask HN: Java, C, C++, or Python for cross-platform GUI and tools? - hello_moto
Hello HNers,<p>Lately I&#x27;ve been thinking about my &quot;software&#x2F;digital situation&quot; through observing my daily habits. I&#x27;ve been hoarding data (e-mails, pictures, docs, passwords, todos, notes, etc) that are stored in the cloud through mostly reliable free services.<p>As I get older, I noticed that I&#x27;ve become a little bit concerned with the situation where I may not be able to use this services due to the usual reasons folks shared in HN.<p>I&#x27;ve been considering one path to get out of this situation: use local-first app (desktop&#x2F;console&#x2F;web-app). The only thing I have to be careful is the data format: they should be standard data format such as: txt, pdf, [png,jpeg,etc for pics], open-file-format such as ODF. I know there are tons of FOSS desktop&#x2F;console apps&#x2F;host-yourself-web-app out there but there is a small caveat: I&#x27;d like to stick with them for as long as I can with minimum upgrade cycle :) so that if the software has been abandoned, I don&#x27;t want to deal with the situation where the base OS upgraded and the software no longer works.<p>I wouldn&#x27;t mind using dropbox&#x2F;rsync&#x2F;tarsnap in order to resolve the sync situation whether real-time sync or daily backups.<p>Given these parameters, there is a good possibility that I might have to write my own tools to solve certain personal workflow.<p>Would you recommend Java, C, C++, or Python for cross-platforms software&#x2F;tooling and why?
Java: I have strong background in Java, love the tools+ecosystem. Caveats: JRE, Oracle, new language feature churns (I can choose not to)
C&#x2F;C++: only touched them in college, tools aren&#x27;t great, willing to learn, need guidance for best-practices&#x2F;minimize effort. Lots of folks I admired stick with C&#x2F;C++ to build their tools. I respect that. C&#x2F;C++ based-software seemed to require minimum upgrade too (not too many dependency)
Python: Used Python occasionally. Caveats: small concern with upgrade story (Python2-Python3-&gt;future, lib binding).<p>Thoughts?
======
arjenzhou
I have the same worry with you, so I buy a mobile disk to store some important
data. And I am thinking about deploying the server locally for bitwarden.

As to the tool for cross-platform apps. I am a Javaer but I don't like swing
or other components, so I choose electron to build my apps which works fine.

~~~
hello_moto
My concern with Electron is its long-term viability. Plus making desktop app
in HTML/CSS is a bit painful compare to Swing/Java.

------
jetti
I would suggest Java just because you have a strong background in it, which
allow you to move faster. I would throw in using C# with .NET Core and
Avalonia [0] as another option, though that would require you learning C#.

[0]
[https://github.com/AvaloniaUI/Avalonia](https://github.com/AvaloniaUI/Avalonia)

------
farseer
Expertise for Java and C# ecosystem will be available 50 years from now just
like Cobol and Fortran today

