The command line was the way that any user interacted with their computer until the early 1990’s when graphical interfaces like Windows took over as the means by which the typical computer user interacted with their machine. In contrast to the point and click interface of the graphical interface, the command line typically viewed as a flashing cursor waiting to receive your text based instructions.
Why do people fear the command line?
The main reason is that the command line relies on your memory. In contrast to a graphical interface there is no clues as to what you may want to do next, or any of the settings/parameters that you might want/need to set. As a user you have to have a plan about what you want to do and how about are going to go about achieving it.
Linked to the issues of memory, is the additional challenge of getting help on what you are doing. In a graphical environment, you can have overlaid help pages, pop-up help text or a wizard that steps you through each step. In contrast, a UNIX environment has a manual that is consulted separately in they way you might consult a reference book. Again, we need to know what we are doing in order to get the help we need.
Another issue is one of too many options. If you want to edit a text file on a Windows system you will typically use notepad. On a UNIX machine you get the choice of vi, pico, nano and many others depending on the default configuration. To undertake some text substitution in a workflow we can use sed or tr. With many opinions out there are to the best options, making choices can be overwhelming.
Often a successfully executed command yields absolutely no response, just another command prompt awaiting your input when the task has completed. To the novice used to progress bars, popups and lots of feedback this lack of response can prove unsettling.
Why does bioinformatics use the command line?
So why do so many bioinformatics tasks rely on this complicated and unfriendly interface? Bioinformatics often requires the combination of various analysis stages with differing outputs and is often a task of a repetitive nature (e.g. applying a similar analysis with subtle changes to parameters each time).
This would be a time consuming and potentially error prone task to undertake in a point and click environment, but programs with a command line interface can overcome these issues and help with the easy automation of your analysis task.
The command line does come with a few discomforts in the early stages, but the benefits once you’ve overcome this early hump are huge and really do outlay the negatives. After all, not many racing drivers rely on a automatic gearbox!