Codementor Events

What is Programming?

Published Jul 11, 2017


What is Programming?

What is Programming?
Making programs.

What are Programs?
The text of a program is an expression of a programmer’s understanding. An understanding acquired, in part, by problem solving. By living in the problem. By experiencing the world and having a view on which aspects are relevant. On the selection of a small slice of it from these experiences: “the problem domain”. A domain which becomes represented in language: the source text. A text whose meaning is then discarded, in translation to the meaningless oscillations of an electrical field strangely guided by the intention of the programmer.

Programming therefore requires causal contact with the world and ability to understand one’s perceptions, ideas, concerns, and other faculties in a reflective, creative and analytical mode.

Therefore, the program text (“source”) is a representation of the problem domain. The running program is the solution to that problem.

ASIDE:

Compare with a painting: the “text” of the painting represents the scene, looking-at the painting is the process of being informed about the scene.

The text of the program and the running machine code are as distinct as the painting and the visual experience the on-looker has of it. With a painting – “running” is a process from oil to mental states via light. The “running” painting is the mental state the on-looker has (ie., specific neurochemical state) that contact with the light scattered off the canvas causes.

By creating a causal pathway from “text” to specific kinds of electrical oscillation – “compilation” — we are able to operate conceptually in the conceptual domain of the problem without worrying about electrical concerns.

As the painter can operate in the domain of oil, colour and shape – and not in the domain of the neuroscience of human visual perception.

How does the program text relate to the running program?
The text of a program undergoes very many translations. Over and over and over again is the most general language rewritten into, ultimately, millions of commands eventually sent to the processor.

One line of code in a “high-level” language may, in the end, correspond to millions of 0s and 1s: millions of electrical oscillations.

There is therefore no hope, in modern programming at least, in trying to solve problems by tracking the changes to the CPU surface.

Equally, of course, the painter would have no hope taking a needle to the visual cortex of a human being and prodding it just so his patient would experience his painting. Far easier for the painter to put oil on his canvas and let the translatory processes of the human neural system create the final running state: that of the experience the on-looker has of the painted canvas.

This is a mysterious process. Though its mystery lies, perhaps, primarily in its complexity. We can isolate each step in the causal change and understand its origin and final point. And we can step back an observe how these steps run millions of times.

The CPU operates successfully because it is a machine which builds safe, reliable and predicable complexity from simplicity.

Discover and read more posts from Michael Burgess
get started
post commentsBe the first to share your opinion
Juraj Dobrik
6 years ago

Writing scripts for game of thrones. That’s massmedial programming,.

Show more replies