‘Point & grunt’ or ‘eloquently instruct’ – Language & computers

Screen Shot 2016-03-31 at 10.20.29

There are many possible transition points in learning to understand and take control of computers. My colleagues in the Raspberry Pi Foundation Education team often talk about the power of using a computer to control something in the physical world, even if at first that’s just an LED flashing on and off. The ‘aha’ moment comes for different people in different ways depending on their interests and motivations, but one of the big shifts (I think) is typing some commands into that flashing terminal in order to perform an action on your computer.

It’s been the cliché of the ‘techy’ people in films and TV for decades. If you want to show someone is highly technology literate on screen then show them tapping commands into a (preferably green on black) text prompt. It’s a symbol of power, but also one of history. After all, we haven’t always been so spoiled by carefully designed graphical user interfaces and touch screen displays. It’s not so long ago that it was normal for your new computer to boot up to a blinking prompt.

It certainly takes a bit more effort to get going when controlling a computer by typing text commands, and what you are presented with looks a lot simpler and less sophisticated than a desktop environment. For reasons such as these, it can appear archaic to be using such a system, yet in terms of really learning how to use computers I think it’s one of the most important steps to take.

Why? Well to instruct a computer in this way you have to have a clear idea of what you are doing. It’s much harder (at least at first) to find out by just poking around. The simplicity of a blinking prompt belies the power that it holds, and once you know a few commands you can instruct the computer to do many things far more efficiently than you can by pointing and clicking. That is, if you know how to construct the instructions well.

The command prompt allows you to use the power of language to interact with a computer. In comparison, clicking around in a  desktop environment is akin to pointing and grunting. Getting people to do things by pointing and grunting is OK at first, but as children we naturally put in the effort to learn how to move beyond this to get things done quicker, more precisely and more elegantly. There are certainly some applications in which working more physically is undoubtedly better. Many creative acts such as drawing or creating music would be much poorer without graphical interfaces for their tools. However, their ease of use at the start has led us to a situation where most people don’t know anything about one of the most powerful ways to interact with their computers.

Learning a language is hard work, and usually requires a collaborative environment with other people. In the old days people often sat at their command prompts alone. At least those learning at home did, the experts in computer science labs and universities I am sure spent much of their time discussing and learning from each other. Now, we can all tap into that community, looking up commands and language forms online as we continue to grow our vocabulary.

That moment of constructing a language based instruction to a computer and seeing it achieve the desired effect is something hugely powerful. It shows that we can go way beyond pointing and grunting to control our computers, and it opens the possibilities of what we can achieve when we use the power of language to interact with them. As voice controlled systems such as Apple’s Siri and Amazon’s Alexa become more common, I wonder whether more and more of us will start to see the power that language can have with computers, even if it does take a bit of investment to learn.

If you enjoyed this post, make sure you subscribe to my RSS feed!
Which programming language for learning?
A blogging resolution

Also published on Medium.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.