Sunday, 2 August 2015

The Surprising Vocabulary of the Computer Programmer

A thought popped into my mind one morning, then festered. Does writing software help with other forms of writing? “Obviously not!” seemed the reasonable reaction. Writing software has nothing to do with writing creatively. 

You could say that the rudimentary vocabulary of a computer scientist barely qualifies one of our number to make a good reader, let alone a writer. Look at those famous incantations we utter on a daily basis, ingrained into muscle memory, always at our fingertips: if, then, for, end. No, there’s no poetry there, just a repetitive succession of Germanic conjunction and command.

Those words. I’ve known them a long time. They are the first few keywords I stuttered into a keyboard, fingers on one hand, grasping “An Introduction to Programming in QBasic” in another. These few commands have passed into public understanding of computation. They are the alphabet of programmers. But the alphabet alone does not a book write. In common with any other craft, these fundamentals provide no more than the platform upon which arrays of grander abstractions stand.

And those ideas, that is where the vocabulary of the computer scientist begins to accelerate. The little Saxon conjunctions end and the Latin and Greek lexicon begins. We have wonderful words at our daily disposal: our lives are filled with encryptions, protocols, and transformations to name a few. Regressions and recursions. Interfaces and domains, caches and closures.

But these are all dry, academic words, you say. You’re right. There’s little to be done with them, they do not compile into meaningful or even beautiful prose, at least the sorts of prose that non computer scientists could enjoy.

Perhaps they can?

The thing is, we’ve borrowed almost all of these words from the rest of language in order to describe the abstract casts of our ideas, we see many words from a different view. Your concrete words: fork, or loop and hash mean something quite distinct to us, the same for threads and shells and branches. You could say we have a different perspective on the English language.

Perhaps we can concatenate words together in novel patterns.

Then refactor and reorder them to fanciful abstractions.

We know of maps and hashes

Of dashes and doubled forward slashes.

We’re compilers and composers

Sometimes even transposers.

Of abstract thoughts and n-dimensionality

Far from the immuted laws of our reality.

And day by day our expertise

Extends the mysterious and exotic:

The agents, daemons, and foreign keys.

Not to mention advanced robotics.

We build each day from thinning air

Instant worlds that live upon

The clouded hosts of software billionaires.

No comments:

Post a Comment