Random picture of a blured place mat

There have been interesting conversations around whether, in the interest of productivity, devs should exclusively use Command Line Interface (CLI) or whether we would all be fine with a point and click User Interface (UI).

I am firmly entrenched in the pragmatic side of this discussion as in use what makes you productive. However, I have long carried a strong suspicion that CLIs are the least productive option to start these journeys, and further that a well designed user experience is generally the best way to get started.

I have been interviewing CLI users recently and one of the consistent notes was that they were able to execute a sequence of relevant commands, in order, with incredible speed and ease but only after years of accretive practice. What was also evident was that friction existed when sharing these practices with new comers, which has led me to posit that poorly designed CLIs are the bane of beginners.

One thing that is clear is that every permutation and combination needs to be available at the command line and that level flexibility is, in part, why it is so attractive. I have been using myself as a kind of guinea pig by avoiding the CLI of Git. Currently I am only vaguely aware of the necessary commands to get a project up and running, forking, merging etc. However, I am really proficient with the GitHub GUI, and I only tend to go to the command line for a couple of things.

When I see an esoteric CLI I first want to consider what parts of this system are the most used and could they be easily transformed into an intuitive user interface?

One other thing I cannot quite understand is why the dev community holds the default position that CLI mastery is praise worthy, however, mastering those same commands via UI comes with almost no love. I get how automation and the CLI are bound together but it appears to have leaked into the notion that your day to day tasks should also be accomplished in the same way.

Comment Section