Tuesday, December 28, 2010

User Interface


Readers: Targeted to beginners of computer field

The reason for writing this web log is because of discussion happened between me and my friends. We were discussing on specific tools and I was arguing that those tools are just limited to user interfaces and cannot go beyond.

They opposed me and said that these tools can work beyond the user interface designs. Then I got a doubt and started asking questions like:

  • What is user interface?
  • What is MVC as per their understanding etc, etc

As expected, the answers I have received from them are limited to GUI, CLI. I tried to explain them but failed to do that. Then I tried to discuss same with other folks and many of them have same perception and their thought process also going towards GUI & CLI only.

However during these discussions and reading various articles & white papers, I came to know many of interesting points (which I am not aware.). I would like to share series of web logs on this topic and to start with I am sharing few points here as a beginners’ web log.

What is user interface?

As per my thoughts,

  • It can be some kind of system or place where an interaction between human and machine will occur.
  • It is a place where user and machine can share data
  • It is a place where machine would alarm user or user would control the machine.
  • It is a system which would make machines’ and human’s job easy when human intervention is required.

Types of user interfaces

Although user interfaces can be seen every where, in this web log I would limit sharing my thoughts to computer only.

Command Line Interface (CLI):

This is a text only interface where user would instruct computer using computer’s keyboard (by typing some commands). The results from computer can be seen on its monitor. Typical examples of these interfaces are command line tools of DOS and UNIX systems.

Batch Interface/Non interactive user interface:

To run the computer, user will feed computer with set of instructions as a single command. User interference with computer would be limit, when user preferred to use these interfaces. Bulk data transfer from computer to computer can be achieved using batch interfaces.

Graphical User Interface (GUI – also called as Gooey):

This is the system that helps user to interact with computer via various graphical elements along with text based commands. Computer will be instructed by user usually by various controlling elements such as keyboard, mouse, touch screen, touch pad etc. Typical example would be desktop applications of MS windows (such as Notepad, MS word, Internet Explorer etc)

With continuous change in user needs and wants in computer field, GUI also subjected to multiple changes which forced the computer experts to categorize the GUI into sub classes. GUI can be typically classified as:

  1. Web User Interface (WUI – also called as Wooey) – These interfaces would accept input as a text command and/or via graphical elements to provide output by generating a web page. This web page can be transmitted via Internet and can be viewed using applications like web browsers. These interfaces can be developed using RIA (Rich internet application) tools/frameworks such as Adobe flash, MS silver light, AJAX etc.

  1. Touch User Interface (TUI) – This GUI class is advanced of all traditional GUI models (Desktop applications, Web applications would be simple example for traditional GUI models). A typical graphical user interface will rely on sense of sight. With fast growing technology needs and modern computing techniques user interface model is changed which now can rely on sense of touch. Based on the pressure and presence of touch, these interfaces can translate user’s activities into computer commands to instruct it. The controllers’ as-well-as I/O units for creating TUIs are touch screen /touch pad. A simple example that we can see is GUI applications of touch based mobile phones.

  1. Zooming Interface - These graphical user interfaces are used to represent information objects (such as maps) at different levels of scale,

  1. Gesture Interface – These are UI interfaces which would accept commands in the form of mouse or hand gestures. This model is still in research stage to provide full-blown/advanced GUI model.

For now I would stop here and will share my other thoughts and knowledge gained in next web log.