I remember when I was in high school, there was some bold statement made in the press that soon, Children In Our Schools would have to learn three languages: English, Spanish, and Computers.
At the time, that struck me as a typically idiotic bit of punditry. This was clearly some yutz who didn’t know anything about computers. Learning C or Basic wasn’t like learning a foreign language. I’d sat through enough Spanish class to know that.
Let me put this in context a bit. This was in the early 1980s. People in general didn’t have computers. There were a handful of Apple I computers (not Mac - Apple I) in our school computer lab. One of my brother’s friends had one. We had an Atari 800, I think - a game machine that you could plug a BASIC cartridge into. Computers were very new and strange and misunderstood. And people said stupid things like referring to “computers” as a language.
I woke up thinking about that this morning, and I realized that maybe it wasn’t that stupid after all. There’s some insight to be gleaned from those words - just not in the way the speaker intended. I’m sure they were talking about computer programming, and they were wrong.
There were wild projections at the time that, given the current rate of growth in the computer industry, in 20 years or whatever, everyone would be a programmer. I think it was even pointed out at the time that the same prediction had been made about telephone operators in the middle of the century, and had come true after a fashion. You can see in old movies, when telephones first came out, you just picked up the receiver and asked a live human operator to connect you to a number. The operator would manually (by plugging and unplugging wires in a switchboard) connect your phone line to the one you wanted. As telephones surged in popularity, the demand for switch operators boomed. But then they automated it - they added a dial to your phone and you became your own operator.
These days, there are still a lot of people who program for a living, but they’re relatively few compared to the number of people who use computers for a living. Everyone from supermarket checkout staff on up uses computers. They don’t program them; they use specific programs to get their jobs done. They control the computers, but only up to a point - their actions are limited. Put another way, some programmer has built them an interface - a mini-language - for talking to the computer about their work.
Now, let’s take another look at that “computers as a language” idea. When you study a foreign language, you learn more than just the language. Or the language is more than just grammar and vocabulary. It’s culture. And maybe that’s a better way of putting it. When you say you have to learn the language of computers, you really mean the culture of computers. Not so much the specific programming languages, but language in the broader sense of how to interact with computers.
The building blocks of this language are not the programmer’s building blocks, like if statements, for loops, and procedure calls. The building blocks of this language are files, directories, trash cans, drop-down menus, radio buttons, search tools, configuration dialogs, wizards and so on. They’re the concepts and metaphors you need to understand in order to get the computer to do what you want.
It’s also a general understanding of what’s possible and what’s not - knowing, in the culture of computers, what’s expected and appropriate behavior. You know that no matter what program you’re dealing with, there will be a way to load files, save files, and set options. There will be ways to cut and copy and paste, and the difference between cut and copy. There will be a way to search and print. And if you screw up, there’s normally a way to undo it, though the fine print on that changes.
All of this, you learn like a foreign culture. You’ll only get so much of it from reading books; you really need to go there. You can be an occasional tourist: You go there at the nice times of year, and stay in hotels that are friendly and accommodating, if a bit expensive. You learn to order food and maybe ask directions in the local language. In computer culture term, you surf the web, read email, edit documents, and maybe learn a shortcut or two. Really, this is all that most people need.
Then there’s the business traveller. Knows their way around, but only in the business districts. Has colleagues there. By analogy, has a set of applications they use for work. Maybe knows a bit about Word document formatting, making presentations. May be adept with spreadsheet software, creating formulas and macros.
Next, you get the foreign office - ex-pats. Folks who have been living there for a while. They know the local language and a bit about the culture. They may spend most of their time with friends from work, fellow homelanders. These are the application administrators, DBAs, integrators. They are comfortable in the environment for all practical, day-to-day needs.
Finally, there are people who have gone native. They live there, speak the language fluently, and are well-versed in the manners and customs. Most of their day-to-day associates are natives. They actually feel a little uncomfortable around folks from the old country. The old manners and customs may seem odd or nonsensical, and they’ve lost some of the idioms of their mother tongue.
These are programmers. They’re not down with the drag and drop, the clicky and the double-clicky. They use command lines. Neal Stephenson has explained this in a far more engaging way than I could hope to in a short book/long essay called “In the Beginning was the Command Line”. Go read that. The short of it is that to programmers, all that graphic interface stuff just gets in the way.
Imagine you’re in Tokyo. Tokyo is very tourist-friendly in one particular way: Its restaurants have graphic interfaces. You got into most any restaurant in Tokyo, and the menu is all photographs of food. You see something that looks tasty, and you point at it. You can get pretty far as a tourist in Tokyo just pointing at things you want.
But if you were actually going to live in Tokyo and work there, you’d want to learn the language. It’s a lot of work, but once you know it reasonably well, it’s the most efficient way of doing things. And you’d probably be annoyed by the tourists who fumble through ordering lunch, holding up the line and complaining loudly about how Japanese doesn’t make any sense to them. Dumb-asses. It makes plenty of sense to the Japanese.