Application Development Preferences

April 15, 2008 on 1:27 pm | In Programming | By QBasicer |

You’re going to be writing an app. The biggest question is what language will you use?

For some people, it’s a nobrainer, it’s either Java, C++, or other language. What would you use? Usually it has to depend on what the app is for. Lets just say a simple chat client that’s cross platform.

That narrows down the playing field to a few choices:
Java:

  • SWT
  • AWT
  • Swing

CLR (C#, VB, etc):

  • Winforms

C/C++

  • wxWidgets (GTK)
  • Qt

Which would you use, and why? Personally, I like the C/C++ route. I’ve delt with both wxWidgets and Qt, and find both offerings pretty nice. I really like how Qt works over wx, but that’s just personal preference.

Java is getting better these days, but I feel that application start time is still a big issue, as well as memory usage, although these are supposedly getting better. The other issue with Java is that it usually requires people to go and download a JRE before usage, while if you static compile the C/C++ libs, you don’t usually need any extra dependencies (or even just package the dll’s/so’s along with the main executable).

So what about you, oh general audience, what would you choose, and why?

3 Comments »

RSS feed for comments on this post. TrackBack URI

  1. I would write it in the platform’s native widget set. As native as you could get. On Window’s I’d likely use C#, on the Mac I’d use Cocoa. This produces the quality of applications users expect.

    Let’s not kid ourselves here. Java apps suck. They all suck (yes, I’m looking at you Azureus. You may perform well but you are a terrible pain to use). Windows users expect high quality apps, Java or some other cross platform toolkit can’t provide like C# or even VB can. Same goes for OS X and Cocoa.

    On the Linux front, yeah it’s a little trickier. I’d probably use GTK, or maybe pyWidgets (although I think that’s still GTK. I honestly am not sure).

    Comment by jason — April 15, 2008 #

  2. I disagree with C# on windows. Native on windows means using the Native Win32 API, which C# uses below levels and levels of abstraction and cruft.

    On linux, really GTK and Qt are what the desktop environment uses, but under the covers, it’s xlib there, so that’s not native again.

    I agree on OSX that Cocoa is the way to go, but you’re not solving the cross platform problem. In reality,you really need to maintain two separate code bases to do native, but I’m not sure that makes any kind of sense. If you’re going to write an app for multiple platforms, you need to get that mindset in gear when you start, not hack something onto the side *cough*iTunes*cough*.

    Comment by QBasicer — April 16, 2008 #

  3. Correct, I am not solving the cross platform problem. Nor do I really want to. If you aim for lowest common denominator, you’re going to marginalize everyone. If your market is Windows, write for Windows. If it’s for Mac, write for Mac. etc. How many software applications need to run on every single platform? Yes, we could sit here and name them, but the audience of this blog is very niche. There are a few major cross platform apps (Eclipse comes to mind) but in general they are not common.

    And yes, I am calling Java a marginalization. If you want an app that will run well on Windows/Mac/Linux/etc then write a webapp. That is *not* a marginalization because the web is a platform too (we could bicker that so is java, we could bicker forever. try to see my point).

    Comment by jason — April 23, 2008 #

Leave a comment

XHTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Powered by WordPress with Pool theme design by Borja Fernandez. I rewrote the CSS because I'm cool like that.
Entries and comments feeds. Valid XHTML and CSS. ^Top^