I gently touched on the topic of graphics design practices vs software engineering in my last entry, though as it seems to bug me quite some, I decided to elaborate. Referring to Windows’ history, I believe the usefulness of graphical interfaces ended around Windows 98-Windows XP, with the latter containing slightly too much bling than I found comfortable. It might be because Windows XP was the last Microsoft operating system I trusted and used almost until it turned end-of-life. Nostalgia is a human thing, after all! Nevertheless, I trust my judgment and have a strong feeling that anything past Windows XP has far too much emphasis on graphical user interfaces. However, I don’t want this entry to become another Why I hate Windows rant from a hurt keyboard warrior. Moving on, then!
When I write a piece of software I typically start with the raw code and focus only on the CLI (command-line interface), until I’m comfortable with how the program works and I am certain that most bugs were caught. Obviously, if the program requires a lot of user input and some operations will be repeated, a GUI (graphical user interface) is indeed needed. Following the KISS (Keep It Simple Stupid) principle, GUIs are supposed to simplify mandane tasks, but also provide the user with direct means of exerting low level control over the piece of software. Therefore, it is important that the GUI is simple and agrees with WYSIWYG (What You See Is What You Get). Further additions are just for eye-candy.
Hence, it really pains me when the primary focus is development of user interfaces. Alone they mean nothing and should something break, we’re dependent solely on the developer. How many of us have seen useless prompts with error codes that mean nothing or are too ambiguous to interpret? Or those occassions when the GUI crashes and we have no idea what happened? That’s why I prefer CLIs and use them until they become too cumbersome. My perfect GUIs are those built by people to simplify window manager configuration, because out of necessity they contain only the most important set of features and give direct access to variables. Glorification of gloss and shine may make the program pleasing to the eye, but long-time use will prove dissatisfying and tiring.
The only beautifications I accept are those that do not interfere with functionality. Back in the old days Apple developed an elegant, consistent style following the teachings of Italian industrial designers. Slight gloss and a clear, grey-white look dominated all applications. This appearance is still used today across all Apple devices, because it has proven to be the perfect balance between pleasing the eye and the mind alike. While I am not a big fan of Apple, it should be said that in terms of GUI design, they did hit the spot!