I just finished reading a terrific essay (or short book) on the nature of operating systems and how we interact with them. The book is In the Beginning…was the Command Line by Neal Stephenson. The book was written about 10 years ago so some of the material might seem a little dated. But for those of us in the industry at the time it makes for a warm reminiscence for the good ol’ days. And if this was before your time, I think it makes for a helpful history lesson which explains a lot about where we are today. For a Neal Stephenson work, this book is exceptionally brief, but well written (you were expecting otherwise?) with more than a few illuminating metaphors.
As the title might imply, much of the book is a discussion of command line interfaces (CLI) versus graphical (GUI). And while the focus is on operating systems, I couldn’t help think about PowerShell and how we go about managing all that is on our plates these days. I was particularly taken with this passage:
“Back in the days of the command line interfaces, users…had to convert their thoughts into alphanumeric symbols and type them in, a grindingly tedious process that stripped away all ambiguity, laid bare all hidden assumptions, and cruelly punished laziness and imprecision.”
That might sound like a bad thing to you. Especially when he goes on to write about the advent of the GUI and people who rely on them.
“People who use such systems have abdicated the responsibility, and surrendered the power, of sending bits directly to the chip that’s doing the arithmetic, and handed that responsibility and power over to the OS.”
Even though the focus is on an operating system, I think his point can apply equally to system administration. GUIs make it easy for us. We don’t have to think and plan ahead. We can point and click and go home. Using a CLI requires clarity of purpose and planning. Certainly there are some tasks and job titles where using GUI-based tool makes sense. I’m still a “right tool for the job” kinda guy. I’ll admit using a CLI is hard work. There’s a certain degree of abstract thinking required. But the trade off for all the hard work is a level of control and sophistication that is rarely accomplished through a GUI.
I’m not sure I would want to spend all day in a CLI, but I really don’t have to. A lot of my day is happily spent in a GUI writing, blogging and developing scripts; all of which are perfectly fine tasks for a GUI based solution. But when it comes time to manage systems, administer users or the like, I’m perfectly content with a CLI like PowerShell. I prefer being in control and don’t want to hand over my responsibilities to a GUI. Yes, yes, I know there are plenty of good GUI admin tools that help you get the job done. You don’t have to give them up. But I know the day will come when you need to accomplish a task that the GUI never considered. So instead of waiting to use a CLI like PowerShell, why not start using it now even for every day tasks. Then when the day comes that the GUI fails to meet your needs, you are ready.
I encourage you to pick up a copy of Neal Stephenson’s book. While reading it, extend his ideas on operating systems to Windows administration and see where it takes you. I’ll be waiting.