I have no idea…
Here’s a first attempt:
the act of creating machine readable representations using formal syntax.
Which is to say:
- act: something practical, possibly purposive, (so should that be intentional act?), which also makes it to be a skill and a craft?
- creating: so it’s about doing something new, that also admits of having to solve problems along the way, perhaps be inventive, and playful.
- machine readable: so coding produces something that a computer is capable of processing; does this implicitly unpacks further though, to take in notions of the machine actually processing the code in order to bring about some sort of state transformation? So maybe replace with machine readable with machine interpretable and executable? But you don’t have to execute code? Eg if I encode a mathematical formula in LaTex, the machine will interpret that code to render the typographically laid out equation, but it hasn’t executed the code. So maybe machine interpretable and/or executable?
- representations: this is not so much about what the code looks like to us, but the way we use it to create models that represent something “meaningful” to us in a way that the machine can process it in a way that is also meaningful to us. Again, this admits of problem solving and the need to be creative, but also starts to bring in unstated ideas that the representation somehow needs to be coherent and stand in some sort of sensible relationship to the sort of thing the code things they are representing?
- using: so coding is about doing something with something…
- formal: …that something being formally defined and bound/constrained…
- syntax: …by a set of rules that determine how the representations are declared and the form in which those representations should be stated. Does adding and grammar help? Do programming languages add grammatical elements over and above syntactic rules? Is dot notation, for example, a morphological feature or a syntactic one?
Note that there is nothing in there that distinguishes between text based languages and graphical languages (for example). Nor is the word language mentioned explicitly.
7 thoughts on “What is Coding?”
To solve your struggle with “machine readable” you could re-introduce the metaphor of model-view-control + OO? According the rules of your contract with this machine-thing, you enter the latex in the control part, you get the output in the view part and you trust that the model in between does what it is supposed to do according your contract?
@Ger I realise that I am assuming “coding” in the context of “computers”. The machine readable part was to try top bring in the notion of creating something that a computer is capable of processing. The MVC/OO is more about a particular way of representing the world?
I think you’re OK with “machine readable”. No need to imply what happens after the machine reads it, so you avoid the unpacking. It then covers the case where the machine “just” reads it. Advantage: simpler.
Would “using a formal language” work? It’s not just the syntax, but the language content that is important.
@Alan I’m not sure about the ‘formal language’? Does that imply the crucial reliance on syntax (syntax is really important in computer coding… One character out can make all the difference.)
I wasn’t sure either! You’re probably right – “formal syntax” is better.
With your example of writing a mathematical formula in LaTeX, you say the machine has not “executed” the formula. However, the execution is not of the mathematics, but of the mark-up language, and by producing the formula on screen or on paper as you want it, the machine has executed the code. Thus, I don’t think there is a problem with the notion of code being “executed”.
@Ron I guess so; similarly if I write some markdown I suppose I am using that md as a sent of instructions for the machine to transform some text to some rendered HTML markup.
Comments are closed.