Dantu Venkata Sai Kamal

Free software contributor @ Swecha | Fighting climate change through code | CS Undergraduate

Accepted Talks:

GUI vs CLI in Debian

The talk will mainly focus on covering the key differences between Graphical user interface and Command line interface in Debian and will also list the advantages and consequences of each..

A graphical user interface (GUI) is a visual representation of communication that uses graphic icons such as menus, cursors, tabs, mouse, windows, and scroll bars.

CLI, or Command Line Interface, on the other hand, is a text-based interface used to interact with software and operating system by typing commands into the interface and receive a response in the same way.

The program which handles the interface is called a command-line interpreter or Shell. Debian uses Bash as the default interactive shell.

Advantages of a command line interface

Even though new users seem to learn GUI more quickly to perform common operations, well-designed CLIs have several advantages:

Skilled users may be able to use a command line faster than a GUI for simple tasks, especially with the advent of tab completion.

Programs intended to be run from the command line often have intentionally very short names so that they can be invoked with only a few keystrokes.

All options and operations are invokable in a consistent form, one "level" away from the basic command. With most GUI, the available operations and options often appear on different menus with differing usage patterns. They may be separated on several different menu levels as well. In either case, different applications (or utilities) may have different patterns; if so there is little advantage in either approach. Both are likely to annoy users.

All options and operations are controlled in more or less the same way. The "more or less" in this case is a common accusation against CLIs: it should be no more difficult to understand and perform a rare operation than a common one, but in practice it may require learning previously unencountered syntax. However, few GUI offer even comparable access to their entire range of available options.

CLI can often double as scripting languages (see ShellScript) and can perform operations in a batch processing mode without user interaction. That means that once an operation is analyzed and understood, a "script" implementing that understanding can be written and saved. The operation can thereafter be carried out with no further analysis and design effort. With GUI, users must start over at the beginning every time, as GUI scripting (if available at all) is almost always more limited - although macros can sometimes be used in a similar way. Simple commands do not even need an actual script, as the completed command can usually be assigned a name (an alias) and executed simply by typing that name into the CLI.

When to use CLI:

Do things at scale. A simple CLI command can easily adjust configurations for a large group of systems at once.
Something needs to be scripted and automated.
You need greater control over system functions.
Use NPM for Package Installs as Node Package Manager is easily the most popular tool for modern developers and it does not have a GUI.
Utilize Git Version Control.
For less memory usage.

When to use GUI:

To reduce mental work. It can take care of a lot of work which may be obscure.
Simplify the structure of tasks. Tasks can be done without many lines of code. Fewer typed lines of code lead to fewer typos, thus less time spending on the frustrating errors.
Make results visible. You can see the system response clearly then recognize errors and debug easily while the system reaction in CLI is meaningless most of the times.
Make the barrier of entry lower. Because of its simplicity and ease of use, GUI is being used by the majority of computer users, especially new and novice users.

resources: wiki.debian.org