Seems like every other week someone is posting an article about the Death of the Command Line, or how Linux Distributions are Headed in the Wrong Direction, or mourning how we’ve all become so graphically oriented we’re losing our command line skills.

Jem Matzan of the Jem Report opines that XGL and twirly-spinny cubes are distracting and slow down games etc. I agree, it can be distracting and seemingly slow things down, that’s why they are packages that you have to install and enable, not the default install. No one is forcing anyone to use the XGL/Compiz cube, it’s an option for those who think they’ll use it and get something out of it.

I have a different perspective from all the “Whither goeth the Command Line?” sorts out there, the historical view of Operating Systems shows that we started out with the CLI on just about every OS that has come out, even Windows NT had a solely CLI interface in it’s first few incarnations. It was to Dave Cutler’s great sorrow (and rage, he was known to punch a wall or two…) that they forced the WFW GUI onto his project, the result being the ever-stellar Windows NT.

I usually explain (and have for over a decade in classes and presentations) that you can coexist with the CLI and GUI, just use the right one for the task at hand. The CLI is fast, it’s able to auto-complete commands and directories, and most of all, it’s very scriptable, aka you can do something over and over again manually, or you can just script the steps and execute it on demand.

The GUI, on the other hand is excellent for beginners, to walk people through sets of steps that would be mind-numbingly difficult or repetitive on the CLI, and essentially for one-off, every-now-and-then types of tasks that you won’t remember the steps for or it would be a waste of time to script. Adding users with a GUI is fine if it happens a couple of times a day or week, but adding in a couple of hundred or several thousand users requires a command line interface, or bulk importing tools.

I have found that the SUSE products are designed to have 3 methods of doing just about any task:

  • CLI – Typing commands and editing files manually, fun, thought-provoking and often leads to troubleshooting
  • TUI – Characterized by the /sbin/yast text-based UI, often using the NCurses library, it’s a text version of a GUI, as it were, and YaST in the TUI mode matches screen for screen with the GUI mode
  • GUI – Characterized by the /sbin/yast2 X11 GUI interface, it’s run in X, is visually pleasing and very easy for people to understand and use

Usually when I hear someone complaining about CLI vs. TUI vs. GUI it’s because something they used to be able to do is not immediately obvious to them on a new distribution or they haven’t taken the time to figure it out, so they complain. If we ever want to achieve the amount of mass-market appeal that Novell once enjoyed, this time based on and running Linux, we have to provide tools that provide for a safe, sane and doable path for the various types of methods that people want to use. I think SUSE does this well, and not many others do.

How do you feel about CLI vs. GUI? Should we feature more articles about tools and the CLI? Comment and let me know.