Someone made a funny remark at work the other day. Before I begin, here’s a little background.
At one point in time, long before my own computing years, a command line prompt and terminal window was the the primary - often only - way of interacting with a computer. Today, the thought of using a command line is alien to many. I was brought up in a GUI world, and I love every thing about it. Yet it is hard to deny the (beautiful, brutalist) utility of the command line. It shows you only what you need, it doesn’t try to make things very pretty (although it can be), it’s stupid fast, and incredibly powerful.
I remember the first time I saw a true Command Line Wizard - my supervisor at my first job as a student working for the Center for High Throughput Computing at UW. I had used Linux before, sure. We used RedHat in the CS labs. I had Ubuntu on my Laptop and I had installed a few applications using apt-get and I had used vim and a shell to run simple bash scripts in some of my CS classes, but I had never really used a command line until that job. My first day on the job I saw down in his office and immediately noticed his screen was nothing but a full screen terminal window. It was all I could do to keep my jaw from dropping as I watched his fingers dance over the keys in an aggressive but deliberate flurry of activity as he configured my account and showed me what I would do in my new position. My first real introduction to the (Linux) command line was a whirlwind, but I was instantly hooked.
I was lucky. My first real, technical job forced me to use Linux and the command line. Often the best way to learn something is to throw yourself into it. The situation for me was quite literally sink or swim. I floundered in the water for a bit but I did manage to tread water, and eventually take some slow strokes into what would eventually blossom into a job and career for me. I am now lucky enough to work in an environment where I get to use the command line every day.
Fast-forward to the other day at work. While we use the Linux or Mac OS terminal daily in the UW Radiology development team that primarily work with, the Infrastructure/Server team at UW Health that I also work with is mostly comprised of Windows administrators. It was at a meeting with members of the server team that someone, reporting on a product they had just learned about at a conference, said “…and the enterprise edition includes a graphical interface, since the command line is intimidating.”
Intimidating? How can something so simple be intimidating? Yet as I was sitting in that meeting, all I could think about the rash of “enterprise-grade” tools I have to use where I sift through a clunky web-app desperately searching for a way to do something and wishing I could access a command line, knowing there’s got to be a simple flag to set this option. I’m not bashing GUIs or web interfaces. They are awesome 90% of the time. However, it’s that 10% of the time where 90% of the work gets done that really counts. I love building interfaces and new ways for people to interact with the computer on the web. But the command line will always be one of the most powerful, simple, and elegant ways to interact with a computer. It was all I could do to not stand up and yell ‘blasphemy!’ I wanted to sit my co-worker down and show him the magic of the command line, right then and there, and force him to see my point of view…no matter if I was right or wrong.
I once feared the command line, but there really isn’t any reason to. Unsurprisingly, humans are pretty good with text. Using a written language is second-nature to us. Computers work really good with text. It makes sense to interact using written language.
It’s undeniable that touch input, much like the mouse before it, has taken the world by storm since about 2007, and that method of human/computer interaction has opened up a whole world of new possibilities. There will probably be a new way of interacting with a computer in the future. But I think there will always be a place for a keyboard, a simple terminal window, and a blinking cursor.
Don’t fear the command line - use it.
This silly post previews my next upcoming series of blog posts all about the command line, including Cool Terminal Applications I Use Every Day and What the Hell is a Shell? Check back soon to read more!