Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Ask HN: Which language should I use to build a Desktop app these days?
2 points by tcarnell on March 8, 2011 | hide | past | favorite | 8 comments
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.

Obviously I would want the app to run on Windows, Mac OS and Linux...

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:

1. What do people use (and why)

2. Why dont people use Java for desktop apps?

(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).

Thanks HN!



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.


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


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


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.


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


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.


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)?


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




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: