Fog Creek Software
Discussion Board




Best IDE for HCI (GUI) course

As of the coming september I'll be an assistant for the Human Computer Interaction (Interfaces) course at my university. This course consists of a theoretical and a practical component. For the latter, students are required to write a program that provides a Good Interface for a specific user group. Implementation is not really important (though it is a pro if the application really works), and exactly what they make is up to them.

(examples include a dentist's database, a holiday photo database & annotator, and a game for 4-5 year olds)

They can also choose whatever programming environment they like - with some restrictions. Traditionally, MS Visual Studio and Flash are the main options, but I was wondering if you guys (and gals) could recommend us something. Someone said QT. I thought wxWindows & friends. Delphi for sure. Or not?

The group of students is really mixed - ranging from no programming experience whatsoever ("media technology" art students) to open source project leader. The reason why I'm asking you is because we (the assistants) have to learn some of the environments to provide good feedback and support. I'm not going to learn TCL/tk, so we'd better provide some alternatives.

(I know this subject can start religious wars, but I rely on the JOS readers to remain calm and please keep the target users in mind :-)

Thanks,

Jay

Jay
Thursday, June 24, 2004

Givem' Freakin' Visual Basic...

(For the record, I took a HCI course and we had the exact same type of project -- build a UI -- the app didn't need to be "functional" but it has to demonstrate the UI.)

Almost Anonymous
Thursday, June 24, 2004

Java Swing - it's all I program for fun in (perl and bash don't count).  I use Netbeans IDE (netbeans.org), but others have their favorites, too.

5v3n
Thursday, June 24, 2004

Consider Marcomedia Director. It is far more mature than Flash, can handle more media files and can access the underlying OS (to a certain degree). It is very often used for rapid app prototyping.

John
Thursday, June 24, 2004

John, Flash is catching up fast with Director, as far as media compatibility is concerned. And Flash blows Director out of the water when it comes to scriptability and application-building. It's so much nicer to work with ActionScript (a dialect of EcmaScript) than it is to work with Director's kooky Lingo language.

Benji Smith
Thursday, June 24, 2004

What about (D)HTML?

Joe
Thursday, June 24, 2004

Visual Basic we have.  Swing is an option, but I've heard bad stories (care to tell me pros and cons?), Director is too expensive. (D)HTML is certainly an option, although it has to be combined with some sort of scripting to work. There are lots, and I certainly don't know all of them.

What about the Linux-geeks? I know they are there. QT just seems a little bloated. Pros? Cons?

Thanks a lot.

Jay
Thursday, June 24, 2004

Well if you go with d(HTML) then I think that XUL http://www.xulplanet.com/ is a much better option. (if you want to do GUI in browsers)

If your budget is a problem then just download .NET + .NET SDK and sharpdevelop ( http://www.icsharpcode.net/OpenSource/SD/ ) , its 100% free.

somemorone
Thursday, June 24, 2004

I suppose it depends how much time you're willing to have students working on learning the underlying technology as opposed to designing the interfaces.  Swing is pretty complicated so I might shy away from that unless your students already have a lot of related experience.  One side note is that even with Swing, you still have to know enough to get around the AWT since Swing only consists of the widgets.  Drawing to the screen still requires using the AWT.

Jeremy
Thursday, June 24, 2004

Go with good ol' Visual Basic 6! Even old aunts and grandmoms would understand how to do it using VB.

NNL
Thursday, June 24, 2004

Interesting, you asked for IDE recomendations, and instead got programming language recomendations.

In a (modern) HCI course, there are two major issues.

(1) Cross-platform compatibility (CPC)

To a software developer, the question is "Is this important for your application?". With respect to the course, the question is "How does pursuing CPC affect the application?"

(2) Platform Consistency

For a software developer the question is "On a given platform (whether or not your application is cross-platform), is your application consistent with the HCI guidelines and user experience for that platform?". With respect to the course, the question is "How does the IDE address platform consistency?".


IMHO, these two issues are so important they almost warrant two courses. Given that you are running only one course, to keep things simple, I would suggest that you pursue a single platform. Given that, I would suggest pursuing MS Windows. Given that, I would suggest you use the MS Visual Studio IDE, with whatever language you (or the students) choose. Given that you have "media technology" students, I would suggest you recomend that the students use Visual Basic. They would probably have a higher chance of success.

PS: There's going to be a large group, or in the accademic world a "body" :-) of people who would vehemently oppose my suggestions.

--Nathan

Nathan Laan
Friday, June 25, 2004

I know this thread is already pretty far down on the list, but I'd like to make a few things clear:
The students are expected to test their program with real users. This means that they should make a realistic choice as for the programming environment. In most cases, this wil be MS Visual Studio (yes, Visual Basic as well), Flash (which is still easier than Visual Basic, although a bit limited), or the web. It depends on their skills and targeted user group.
However, last year there were people who wanted to develop in QT (Linux), and Java, and even TCL/TK. This year the lecturer (==primary assistant) thought we'd promote QT. I'm not happy with this, but he said I should give him some alternatives. And pros & cons. Please save me from the QT fate...
Or tell me that it's fantastic :-)

Jay
Friday, June 25, 2004

If the implementation is not important it is really irrelevant what language they use as long as they are able to demonstrate their UI, right? In that case why should it matter what the "best" IDE is?

As an added exercies you could get them to write a critique of the usability of the IDE that they used :-)


Friday, June 25, 2004

PythonCard is a front end to wxWindows; good for beginners, but an expert might not consider it powerful enough (it's sort of a knock-off of the old Apple HyperCard):

http://pythoncard.sourceforge.net/

Tom H
Friday, June 25, 2004

"even Tcl/Tk".

Heh, when I took HCI (about 10 years ago), that's the environment we were expected to use.  Cross platform, and easy to integrate into "real" programs.  There was no "visual editor", but then again, we were CS students, not graphic design students.

joev
Friday, June 25, 2004

I don't get it. What do you care what language/toolkit this is implemented in. The principels od goor HCI are independent of the technolog choice. You look for good, contectualized principles. Contextualized means they are in line with the principe of "minimal surprise" for a given platform (the guy above who talked about "platform independance" is just wrong). Doing HCI studies for games is a different issue altogether (and IMHO a poor choice of excersize).
Choosing a decent technology on a platform is part of the excersize. If they deliver a sucky UI, the excuse "oh, but fooTech only allows for interfaces that suck" is noo excuse, is it?
To put it bluntly, your PA "promoting QT" is working on a different agenda, that has nothing to do with the HCI course.

Just me (Sir to you)
Monday, June 28, 2004

*  Recent Topics

*  Fog Creek Home