I stumbled across this thread the other day, which discusses (read argues) the merits of developing user interfaces to behave based on the platform the software is running on. The original post was created by a guy called Joe Marshall, who had developed a Windows plugin for The GIMP that created a single window which took ownership of all the other windows.
Traditionally, The GIMP has been a *nix-based application, with a multitude of windows. While this has been a standard *nix GUI convention for years, most Windows applications these days use a single MDI (Multiple Document Interface) window in place of multiple windows. Joe mentioned that this provided multiple benefits for Windows users:
- Users could Alt-Tab between GIMP and other applications in one go, rather than having to Alt-Tab through each GIMP window.
- Users could minimize/restore all the GIMP windows in one go.
- Users could select each window from a Window menu on the main window.
- There was only one button on the taskbar, rather than one for each window.
- The file selector dialog was replaced with a standard Window file browser dialog box.
Here are his comments:
Basically it makes it into a usable application, it's a bit mac-like still with all the windows, but in a similar way to on the mac, the separate windows behave like one application and don't clutter up your taskbar. Also if you maximize the background window, you get rid of the irritating thing where you miss click on a tool and open up another application. Previously I'd had to minimize all other applications when using gimp, that was getting to be a right lot of hassle.
Responses were varied, including BiggyP's comment:
well, it sounds absolutely appalling to me...
Twelve Parsecs made the most controversial comment:
The other thing is that under no circumstances should a user have to adapt and get used to the quirks of a program's interface. Never. The interface should adapt to the user. As the Fool in King Lear asks, "May not an ass know when the cart draws the horse?"
This drew a barage of comments, but raises an interesting point. A large amount of software these days, particularly Open Source software like GIMP, is implemented in platform independent languages and then compiled for each platform they want to release the software for. So a *nix application, built to follow *nix GUI conventions, simply gets recompiled to run under Windows. While the gap between Windows and *nix GUI conventions seems to be narrowing, there are still significant differences that could confuse users.
Other people posted commments about the fact that if the GIMP UI was changed to follow these conventions it could confuse existing GIMP users. This is where plugins and skins work together to ensure users can make applications behave the way that they are expecting them to behave.
Software developers need to bear in mind that users have different expectations of user interfaces based on their knowledge and experience.