In GUI you can create a more rich, and intuitive interface
than is possible with CLI and most lay users will have a smaller learning curve
using a GUI. A GUI is also a complex, multi-step, dependent tasks that can easily
be grouped together in a way that discourages mistakes.It also have the ability
to embed media.
Disadvantages of GUI :
GUI has a bloated software that can waste
memory, and reduce the performance of an application. It sometimes more
difficult to allow for advanced/power options in an "intuitive" GUI
interface, than it is with a CLI.
Scripting a GUI interaction is not easily done unless it is just a set of
repetitive tasks that don't require a lot of feedback, or actually testing the
Advantages of CLI:
Most folks that have computer technology
as a career are familiar with using this interface, especially if they have a
*nix background.CLI requires a lower threshold for the interface. This means
that a relatively simple program like telnet (available almost on all machines)
is all you need to interface via CLI. It is easy to integrate with scripting,
and other programmatic interfaces.They can be quite powerful in the right
hands. Piping multiple commands together, parsing feedback, etc.
Disadvantages of CLI:
CLI is not intuitive, especially to a lay user.
It has no media and has complex combinations that can be difficult to remember,
and slower to type (but that is on a task by task basis, as often you can
perform tasks faster with CLI).