Sunday, 21 September 2008

Brains are Object Oriented

Following on somewhat from my browser UI rant, an important thing to realise when designing interfaces is that the brain is used to realistic, real-world things. It gets confused by magic, tries to reject Quantum Physics, and so on. In other words, the brain is Object Oriented.

To be Object Oriented simply means that there are a bunch of "things" which can each do stuff and each have stuff. For example, a ball is a thing. It can bounce and roll, and it has size and colour. Being Object Oriented means breaking apart some things which seem to logically go together, like verbs (or in the case of a computer program, functions). However, with really huge projects it is clear that separating like from like and instead combining things based on context (into an object) is less confusing, since this is more understandable to our brains.

With user interfaces there is magic and quantum "spooky action at a distance" which the brain does not like. This is where changing one thing affects another. For instance, the up and down arrows on a scroll bar. These arrows are not connected to the slider, so how do they manage to move it up and down? By magic. How often do you drag the slider on a scroll bar rather than press then buttons? This is because the brain thinks of moving down as a method of the slider, rather than the arrow being a function which moves the slider. For this reason I propose that arrows be taken off scrollbars (some themes to it already).

Another problem is toolbars. They contain precisely that, tools. In the real world when we want to join two pieces of wood together we think about putting a nail through them. In order to do this we get a hammer, but that's just an implementation detail. If we could push the nail in then we would do. Thus toolbars are bad because they are a kind of magic. They contain functions, ie. they perform actions, like save(document). However, the interface *should* provide methods, ie. the documents should be able to perform the action, like document.save().

A key thing to realise is that your application *is* the GUI. Therefore your GUI should be Object Oriented as far as possible, and should itself act like an object. Developers often think of their code as being the heart of an application, with the graphics as a glossy veneer on top. Users, however, think of the graphics as being the heart of an application, and the code just sticks it together. There are far more users going to be using your software than developers (you should hope :P ) so keeping this in mind is important.

1 comment:

Anonymous said...

[p]London Evening Standard fashion editor Laura Craik [url=http://www.ralphlaurenoutletonlinee.co.uk]ralph lauren outlet online[/url] called "things that only look good on [model] Agyness Deyn" . It is not a location for low cost searching and all all those browsing for substantial discount rates ought to [url=http://www.ralphlaurenoutletonlinee.co.uk]polo ralph lauren outlet[/url] be conscious of the truth . that [url=http://www.ralphlaurenoutletonlinee.co.uk]ralph lauren outlet[/url] is what binds us together . html 猫聛陆 http://nodearticles . [url=http://www.ppoloralphlauren.co.uk]discount ralph lauren polo shirts[/url] com . This womanly perfume includes notes of blended green florals, violet, carnation, rose [url=http://www.ralphlaurenoutletonlinee.co.uk]cheap ralph lauren polo shirts
[/url] and rare spices . The plaque typically [url=http://www.ppoloralphlauren.co.uk]ralph lauren polo shirts[/url] holds three or four buttons, and consequently extends lower than the typical polo neckline . Classic-Suit Floral Mesh Polo

This is soothing and rejuvenating [url=http://www.ppoloralphlauren.co.uk]polo ralph lauren uk[/url] brief sleeved apparel with the traditional touch constructed from high quality, soft and breathable cotton mesh fabrics . by the Australian surfer Brian Smith in 1978.[/p]