A command line future: Part 1
In 1999, Neal Stephenson wrote a tract “in the beginning was the command line”. Neal Stephenson is a reasonably famous Science Fiction author and for many in IT, his “Snow Crash” and “Cryptonomicon” are touchstone works.
You can read “In the Beginning was the Command Line” on Stephenson’s website here: http://www.cryptonomicon.com/beginning.html. It’s a great walkthrough of computing history right up to its date of authorship. I remember reading it a few years after I’d switched from being primarily a Linux administrator to being responsible for computers running Windows NT 4.0.
Parts of the tract are quite dated. Apple’s position in 1999 was rather different to that of Apple today, and BeOS was looking like it was going to be a thing. The 2015 that Stephenson might have predicted in 1999 was probably quite a bit different to the 2015 that we ended up with.
The reason I’m pointing to the work though is the resurgence of the command line. If you spend any time watching the commentary on the next version of Windows Server, there’s a consistent theme around getting away from GUI based tools and getting back to the command line.
The return to the command line reminds me a little of that line in Douglas Adams Hitchhiker’s Guide To the Galaxy
“Many were increasingly of the opinion that they'd all made a big mistake in coming down from the trees in the first place. And some said that even the trees had been a bad move, and that no one should ever have left the oceans.”
Stephenson talks a little about how the command line allowed us to communicate textually with computers. He also points out that command line interfaces also made computers a lot less accessible to the general population than the GUI. That with the command line, you had to learn an arcane language to get a computer to perform a task. With a GUI, the computer helped you out and made the whole process more straightforward and less error prone. As Stephenson says:
“Were GUIs a brilliant design innovation that made computers more human-centered and therefore accessible to the masses, leading us toward an unprecedented revolution in human society, or an insulting bit of audiovisual gimcrackery dreamed up by flaky Bay Area hacker types that stripped computers of their power and flexibility and turned the noble and serious work of computing into a childish video game?
This debate actually seems more interesting to me today than it did in the mid-1980s. But people more or less stopped debating it when Microsoft endorsed the idea of GUIs by coming out with the first Windows. At this point, command-line partisans were relegated to the status of silly old grouches, and a new conflict was touched off, between users of MacOS and users of Windows.”
I distinctly remember when I switched from being a Linux administrator to being a Windows administrator, my Linux admin friends pointing out that I was going for the “dumbed down” option. Having played on both sides of the fence, my response was “yes, but I’m far more productive with these graphical tools than I was with the command line tools”
Today’s argument about moving the practice of Windows Systems Administration back to a stronger command line focus usually follows two general threads. The first is that running a server core OS is more secure than running an OS with a GUI. This is because the server core OS has fewer elements and hence fewer possible vulnerabilities. The second is that it is far simpler to automate a text based process than it is to automate a process through a GUI. That while GUIs are great for managing a single server, they aren’t nearly as efficient if you want to manage a couple of thousand servers.
In the next post I’ll discuss this issue further and talk around the question “Did the Linux admins have it right all along when it comes to preferring command line over GUI based systems administration?”