Linked by vermaden on Wed 21st May 2008 19:28 UTC
Graphics, User Interfaces How would I describe today's GUIs? A mess. -- A mess that grew as new features were needed, with lack of proper design, with a desire to keep backward compatibility, and with tools from the past trying to achieve future needs. I propose a new design philosophy for GUIs. We'll call it Vermaden's GUI. Note: This is the latest entry in our 2008 article contest.
Thread beginning with comment 315149
To read all comments associated with this story, please click here.
Well, not really
by leos on Wed 21st May 2008 21:58 UTC
leos
Member since:
2005-09-21

Ok, let's start at the beginning.

Most of your criticisms just come down to style. Your "improved" anjuta screenshot is basically just Anjuta with less space between widgets. In some cases that makes it looks better (like the tabs in the middle panes, which now look attached) and sometimes it makes things worse (the menu and toolbar at the top look horribly cluttered) but really this is just a matter of taste. You like minimalist styles, but not everyone does.

Then some of your changes I would consider downright misleading. The best example is your change to the vertical tab bar containing the items Help and and terminal. In the original design, it was clear that clicking these would replace the left dock widget (which contains Breakpoints and Dissassembly) with the tab you clicked on. In your redesign, the tabs are no longer logically connected to the left bar, they are only connected to the breakpoints sub-frame. It is no longer clear what will happen when they are clicked. In addition, if there are more than two tabs there your whole layout falls apart. Where will the third one go now that the tab bar is so short?

About borders, there is nothing in the toolkit that forces you to have a border. That's just how the apps were designed. Different styles will do different things here, and they can be easily overridden. For example, have a look at the concept for the new Amarok UI (it's not done, but have a look at the lack of borders) http://amarok.kde.org/blog/archives/656-A-wolf-in-designer-clothing...

I'm not familiar with how GTK's theming system works so I won't comment on that. But the reason you have to compile Qt styles is because they can modify everything about the look and feel of widgets. It's not just changing colours and images, you can have animations and transitions, you can change how widgets behave, etc. It's completely impossible to achieve that level theming without native styles. If you just want to change the colours, you can do that from a plain text file. Also Qt4 has extensive support for using stylesheets in applications, which gives you a ton of control over appearance without compiling anything.

>> I propose creating a whole GUI by separating the available content in a simple, sensible manner, managed by one simple efficient mechanism or algorithm responsible for efficient usage of available window space, responsible for placing all window items. Does that sound interesting?

You just described layouts. Which is the base of most UI toolkits I've used.

The choice of graphics is up the application devs. Nothing about the toolkits prevents the use of SVG. Yes SVG is cool, but it is also slow, and no matter what you do to the rendering engine, it will always be slower than raster graphics like PNG.

What you describe as separators already exist, just in the form of layouts. They can do everything you want them to. And they won't stop you from creating a bad UI. The onus for that is still on the designer.

Edited 2008-05-21 22:00 UTC

Reply Score: 12

RE: Well, not really
by evangs on Thu 22nd May 2008 06:12 in reply to "Well, not really"
evangs Member since:
2005-07-07


Most of your criticisms just come down to style. Your "improved" anjuta screenshot is basically just Anjuta with less space between widgets. In some cases that makes it looks better (like the tabs in the middle panes, which now look attached) and sometimes it makes things worse (the menu and toolbar at the top look horribly cluttered) but really this is just a matter of taste. You like minimalist styles, but not everyone does.


That's what I thought when I read through the article. He likes minimalist styles without visible borders, and prefers invisible 1px separators over fatter ones.

I personally like Anjuta the way it is and didn't like the mockup with the separators. I found it too "cramped".

Again, that's just down to personal preference.


>> I propose creating a whole GUI by separating the available content in a simple, sensible manner, managed by one simple efficient mechanism or algorithm responsible for efficient usage of available window space, responsible for placing all window items. Does that sound interesting?

You just described layouts. Which is the base of most UI toolkits I've used.


That gave me a WTF moment too. Layout managers already exist. They're much harder to use than traditional NULL layouts, but they exist in GTK, Qt, wxWidgets, Java Swing, even AWT, and practically any semi-modern GUI toolkit.

I don't know what the authors qualifications are, but my experience in the commercial world with regards to GUIs is that they're like art. Show your GUI mockup to 10 people, and you'll get 10 contradicting reports back. Some of the criticism is useful and constructive, but the majority tends to make you go WTF?

Reply Parent Score: 3

RE: Well, not really
by glubamazing on Thu 22nd May 2008 14:59 in reply to "Well, not really"
glubamazing Member since:
2008-05-05

the reason you have to compile Qt styles is because they can modify everything about the look and feel of widgets. It's not just changing colours and images, you can have animations and transitions, you can change how widgets behave, etc. It's completely impossible to achieve that level theming without native styles.


No its not, check out E17 (rather Evas/Ecore/Eet and Edje), there theming is completely unrelated to the application. You can do anything you want with you application, change layout, transitions, animations, behaviour etc, all without any change to the programs code, or any compilation.

Reply Parent Score: 1