CLI is Bad... or is it?

by Aleksey Hariton

CLI is bad, because:

I don't need it

Most of cloud users actually don't require a Command Line Interface because it is too complicated, compared to user-friendly web UI's. It is easier just to do a couple of clicks, than open a reference guide, find required commands and launch them. Ergo web UI has a lower entry barrier than CLI for simple operations.

I am afraid of CLI

The issue is most of users have no experience in using CLI as their main work interface, as the most common OS is Windows, where GUI is conventionally used instead of CLI. Sad reality is most of developers, testers and PM's have no idea how to use even the most common CLI-commands: 'telnet', 'arp', 'route' etc. Many would not understand what is wrong with the 'ping http://google.com/' command. If we try and force users to use CLI for the sole purpose of working with the cloud, they will most surely perceive it as an act of violence and acknowledge it was handier to send requests to HWU.

CLI is too complicated

Using CLI is generally handier, simpler and faster when performing elementary operations, such as copying/deleting, searching etc. However GUI always wins when it comes to compound procedures e.g. configuration of traffic load balancers with complex rules (we don't speak of automation tasks as CLI is always on top there). The problem here is CLI commands most often execute separate elementary operations e.g. 'create a balancer', 'add a rule', 'launch balancing' etc. Therefore in order to perform a composite operation you have to remember several commands and execute them correctly, which is naturally more difficult than 'double-clicking'.

CLI is easy to mess up

Console forgives nothing and has zero fool-tolerance. You should always remember the commands and execute them correctly. Even the current version of the CLI specification contains over 50 commands. Possible mistakes range from anecdotal "rm -Rf / tmp/*" to purely logical, like executing deleteSnapshot instead of createSnapshot. Also such mistakes can cost you data and, as if it weren't enough, catching them can be far from obvious, since a set of parameters as well as error messages would be very similar. Alternatively, when using a web UI you can confuse a green checkmark for a red 'X' only by actually missing it with your mouse pointer.

Interface!

Windows CLI is not intended for serious use as it is seldom utilized by Windows-users.

CLI is good because of:

Unification

Console commands share standard syntax, which makes them easy to remember and to use.

Automation

You can aggregate CLI commands into scripts, automating your routine tasks.

Dialogue

Command Line Interface is initially more appealing to human mentality as interaction with a program is shaped in a form of a dialogue. Also, you can precisely repeat previous requests and look through the command history.