Monday, April 2, 2012

CLI versus GUI

What is CLI?
CLI is short for Command Line Interface. It is an interface or dialogue between the user and a program, or between two programs, where a line of text (a command line) is passed between the two. The commands are stored in the graphical shell or in files like the registry or the OS/2 os2user.ini file. A CLI is used whenever a large vocabulary of commands or queries, coupled with a wide (or arbitrary) range of options, can be entered more rapidly as text than with a pure GUI. This is typically the case with operating system command shells. CLIs are also used by systems with insufficient resources to support a graphical user interface.

Screenshot of a sample Bash session


What is GUI?
GUI is short for graphical user interface. It is a type of user interface that allows the users to interact with the electronic devices with images rather than text commands. A GUI represents the information and actions available to a user through graphical icons and visual indicators such as secondary notation (visual cues which are not part of formal notation - properties like position, indentation, color, symmetry) as opposed to text-based interfaces, typed command labels or text navigation. GUI has greatly benefited from the concept of Direct Manipulation.

Screenshot of a sample GUI system


CLI versus GUI
There are many experts who claim that CLI is much faster and easier as compared to GUI and there are an equal number of experts who claim otherwise. Given below is a comprehensive comparison between the two different types of interfaces:
1. Ease:
  • CLI - New users find it a lot more difficult due to the need for familiarity and memorization of the commands
  • GUI - Although new users may find it difficult to navigate using the mouse in the initial stages, it is found that the users pick this up a lot faster
2. Control:
  • CLI - Users have much more control over their file system and operating system
  • GUI - Often advanced or experienced users who need to perform a specific task may have to resort to the use of CLI for this purpose due to the limited potential to offer control as part of GUI
3. Multitasking:
  • CLI - Capable of multitasking, but do not offer the same ease and ability to view multiple things at once on one screen.
  • GUI - The concept of having windows allows users to easily view, control and manipulate multiple things at once and is usually much faster than CLI
4. Speed:
  • CLI - Due to the input being limited to only a keyboard and a minimal set of commands, an advanced CLI system will essentially get a specific task completed faster than an advanced GUI system
  • GUI - Using a mouse and keyboard to navigate through several steps to control the operating system for many things is going to be much slower
5. Resources:
  • CLI - A computer that uses only CLI takes up much less resources
  • GUI - Requires a lot more system resources because of each of the elements that need to be loaded such as icons, fonts etc. In addition, video drivers, mouse drivers and other drivers that need to be loaded will also take up system resources
6. Scripting:
  • CLI - User can easily script a sequence of commands to perform a task or execute a program
  • GUI - Enables a user to create shortcuts, tasks or other similar actions to complete a task or run a program. But does not come close in comparison to what CLI offers.
7. Remote Access:
  • CLI - Often when accessing another computer or networking device over a network, a user will only be able to manipulate the device or its files using CLI or other text only manipulation
  • GUI - Although remote graphical access is becoming popular and is possible, not all computers and especially network equipment have this ability.

In-spite of its many merits, CLI has to this day come to be side-lined by GUI. However, CLI still has much to offer us, and many of its benefits simply cannot physically be emulated or even replaced by graphical ones. CLI and GUI have come to co-exist and can be used simultaneously to facilitate the completion of tasks that vary in requirements.

References:

No comments:

Post a Comment