Sunday 19 July 2009

Codewright

There is so much in a name. A name is the container by which people perceive the contents.

Many luxury items do not carry a price label somehow glued on them. Because any directly apposed annotation would denature the object, remove part of its appeal.

Names have connotations. Some of which derogatory, some of which laudatory.

But for all the ambiguities and polysemy, names are the lowest possible form of expression that allows sharing of meaning between people, however wrongly or partially.

I am a Code Writer

Not a programmer. Not a developer, nor a software engineer, even less so a software architect.

A writer writes, that's all they do. But what distinguishes writers is the kind of words and sentences they use, the ideas they push down on paper, the style possibly inherent to the kind of writing, and how they go about forming the material in their mind that ends up in the open.

A novelist writes novels, an essayist: essays, a poet: poetry, a journalist: articles, a playwright: plays or drama, a blogger: well, any inconsistent and dull, half thought through and always in draft mode set of utterances that rarely passes the spell-checker tests, much less so uses correct grammar, yet sometimes offers unique perspectives.

A Code Writer is none of the above, yet shares many facets with every single one of them.

Utility

A writer can be seen as a provider of utility in the sense of the value people derive from the result. Much as the same way engineering disciplines provide bridges and planes and cars for people to travel on, artists provide entertainment or deep emotional connections.

There will always be a disconnect between the means by which such an utility is produced, the stated goal one had to produce it, and the way it is possibly distributed to its intended audience, together with the form of compensation the utility provider derives from the result of the work.

Now that the end product has been moved out of the way as not being the main focus, there is this description of what the code writing activity is about, whose by-product is the service or product whose utility is usually the driving motive for undertaking, yet is often pushed beyond the horizon as self-evident when the actual creating process takes place.

Writing Process

It starts with some idea or concept, written down often in haste, just to see if it works, and when it does, the idea's truth in the current, possibly implied context is being validated.

Then more ideas are jolted down, often at the expense of the consistency of the developing story, and more truth busting tests reveal, or not, the adequacy of what turns out to be a simple body of text, as a blueprint for the elusive daemons inside the machine, to interpret as the meaning of the writer's intentions.

Tension

The incessant feedback between what is being written, and what is actually, objectively meant, is the source of most of the pleasures and frustrations the code writer encounters: what is meant may not be revealed entirely or accurately until much later, when the story unfolds, branches and nests.

We tend to call those inconsistencies using the gentle "bug" name. But this is far more serious. A bug really is a lie, possibly unintentional, that the code writer has let slip into the story, but that the daemons spot with their own various and often cryptic ways of telling: "This is not so!".

Beauty and the Beast

At various stages, the body of text, regardless of its implied meaning, acquires a structure and a form that conveys, one way or another, the intent or purpose of the story to code readers. By analogy to playwrights, it is possible to distinguish the activity of code reading (reading Hamlet in the book) from deriving value from the written code direct execution (watching it being performed on stage with professional actors).

Aesthetic Canons

In most human disciplines, there are accepted quality canons, that help sort good from bad, regardless of individual prejudices. If you are a classical music lover moved only by Chopin or Bach, you may not be the best judge of the objective quality present in "Sergeant Pepper", yet those who value this kind of music could tell you about the properties inherent to those songs that make them stand apart from lesser tracks.

Conciseness, Efficiency, Adequacy

The values a code writer keeps at heart. Using the minimum amount of words to convey an idea, as precisely as required. Sequencing them in an order easy to follow for the code reader used to this particular style. Not implying an undue amount of resource use, nor being imported from some other realms without the proper adjustments.

Codewright

The Code Writer, or if I may coin it, the codewright, is first and foremost a writer, who fights in the darkness to retrieve lights of ideas, polish and organise and present them, asserting their truth, and striving to release the most beautiful and concise text that will transmit them to human readers, yet, allow their interpretation by the daemons inside the computer to produce the utility, as a by-product, that was the goal of starting the whole process.

All the rest is simply not literature.

No comments: