

Ask HN: Which language should I use to build a Desktop app these days? - tcarnell

I've been toying with the idea of writing a desktop app for a web service I have created, but am not sure which language to go for.<p>Obviously I would want the app to run on Windows, Mac OS and Linux...<p>I am 'traditionally' a Java developer - and although Java would seem like the perfect language for a desktop app, nobody seems to use it for this, so really:<p>1. What do people use (and why)<p>2. Why dont people use Java for desktop apps?<p>(It seems to me that Java has failed in the exact the areas that is should have succeeded, and succeeded in areas that just doesn't make sense (ie the web).<p>Thanks HN!
======
bdfh42
C# is available as a free download along with an express version of Visual
Studio. This is admittedly only a small step away from Java but it would still
extend your language skills and the .NET framework is great for building
desktop apps - particularly ones that interact with Web Services - could have
been made for the job - actually I think it was.

Of course if you are not thinking of Windows then C# again but this time with
Mono.

~~~
tcarnell
Thanks! Yeah, Mono looks like a great solution - it's wining so far!

------
tcarnell
Can I use scripting languages like Ruby or Python? Is this a good idea?

~~~
stonemetal
Sure you could use a scripting language, python has tkinter built in and 3d
party bindings to all the major cross platform tool kits. Ruby is probably
similarly capable. Is it a good idea? Depends on how heavy an app it is going
to be. If it is just a rich interface to your web services it is probably a
good idea. If it is going to be a heavier app that might need some native
modules for performance I would be a little gun shy. The whole distribution
and support chain would be new to me. At that point it might make more sense
to do it in java.

~~~
Turing_Machine
Hmm... maybe JRuby? It's reasonably performant nowadays, and has great interop
with Java (which the OP knows already). You could write parts of it in Java if
it needed to be faster, or even in C via JNA (or --ugh-- JNI).

------
daleharvey
why not write a web app that works offline? it can be wrapped in air / xul
whatever and packaged as a desktop application if needed.

~~~
tcarnell
That sounds like a great idea - I use the desktop Yammer app, which is an AIR
application, but it doesn't seem very stable or have a rich UI - would this
approach have other limitations like being 'sandboxed' (not being able to
read/write files etc)?

~~~
daleharvey
nope, air has api available for reaading / writing files + other normal stuff
a desktop app would be allowed to do

