Myself, Coding, Ranting, and Madness

The Consciousness Stream Continues…

My First GUI

17 Nov 2009 22:00 Tags: None

Yesterday, I was asked a question that I've been asked lots of times. The typical situation is a programmer, who's been taught C or C++ in order to solve maths problems or process text files, or else have taught themselves some basic or C as a past time. And what they want to know is how to create a GUI1. My answer varies depending on mood, what language I'm currently working with, what languages the person asking me knows, and how much I think they're going to ask for help.
None the less, I thought it might be useful to write my thoughts2 down

It should be noted that there's a few languages I've never used, so they might be better than what I suggest.

  1. std C/C++/(Objective C)3

    Unless you can find some good libraries, you're going to be developing for a single platform, as the functions a all different. I've done GUI design for windows just using the exported APIs - it took me about 4 weeks to write noughts and crosses. There are libraries for making things easy out there, but C++ is rather hacked together in places.

  2. Visual Basic 6

    The biggest problem here is that VB is DEAD! DEAD! Support was axed years ago. Apart from being pretty much win only, and rather slow, it was a actually a really nice language to work with, especially as it did most of the GUI work for you

  3. VB.NET/C#

    Now, some slightly useful languages. VB.NET is still my language of choice when I need to build a one-off application which needs a GUI4. Boht languages have most of the standard class structures, but both are SLLOOOOOOOOOW. As I've said before, I'm not a fan of JIT compiled languages...

  4. Java

    As it's had GUI support via Swing since v1.2, and the virtual machine is a lot faster now days, it seems like a good choice. However, unlike the .NET languages, the GUI layout tool and the event callback system seem a lot more complex. So strange and complex, I've never seen a graphic project through in Java. But it's big advantage is that you can then have a library, a GUI program, and (say) a webserver, all in the same cross platform language.

  5. Python

    I've never used it. no-one has ever been able to sell it to me.

Well, that's my two cents: I don't know. The slowest languages are the easiest to work with, but use the most client resources. I'd welcome any thoughts on the topic.

  1. That's Graphical Use interface (or pretty window thingy for the uninformed)
  2. Surprisingly, thinking is a use to which I occasionally put my brain. I got cake for it once
  3. I've never used objective C. I've been told by multiple sources that it's rather nice.
  4. For example, a program which allows users to enter names / emails, validate them, and add them to a list. Whilst looking pretty. Took me about 1 hour to write, including transparency on various things.