[UI] UI attributes
adrin at ic.cz
Thu Sep 13 15:13:24 UTC 2007
A little more about GUI
How to cook GUI
In process of building GUI, there is most frequent way how to do that:
prepare ingredients in forms of graphical control elements – it is
entity which could be visualized and used for catching events. The
better this entity will be prepared, the better final GUI will be. For
example like elemental spice works buttons, scrollbars and menus, but
there are more sophisticated elements for file choosing or printing.
With these ingredients applications are cooked – programmer is cook in
this association and from ingredients he makes at first text editor and
then video player for example. Right choose in right amount leads to
delicious and different stimulants.
This concept has many advantages. It is simple understandable and quick
in uses. Final applications offer a number of canned functions that are
accessible by one click. Thanks to this set of graphical entities, every
applications are similar and there is no big problems for users to learn
But, similar approach to GUI is sometimes really mismatched. User has
no, or just little, control to graphical interface. All graphical entity
are purposeless and exist just for reason to allow some functionality.
They are in memory even in the case of no editable data exists. User
primarily does not work with data, but with application – with
interface, which some other prepared for him. And for that reason, the
output of data editing is fully in applications will. Primary
application purpose is to view and communicate with user – there is no
need for programmer to do something else. Outputs are understandable for
user, but no for other programs. In CLI and even in batch processing,
output data could be transformed to other application. And whole things
get worse... Users does not understand data, they understand
applications. I see systematic trend to hide data before users and make
a machines from them – click that, use this, never ask anything how does
things inside works...
Well, stop getting paranoid. Best solution for many problems is this
entity-centric GUI. But why solve everything by this. Some data-centric
GUI could be better in lot of cases.
More information about the UI