Programming as an expressive medium
Sat Dec 9 14:10:58 EST 2006
Programming is a way of translating thought into form. It is as expressive a medium as a novel or poem. In the poetical form of communication the writer is relying on the depth and breadth of the reader's experience to convey the poets message. In the programming form of communication the programmer relies on the capabilities of a computational engine, including its interface with the user. This user interface can be optimized for a given purpose, minimising the impedance mismatch between the programmer and his audience.
Here is the idea: any program is a message from the programmer saying one or more of:
- This is a problem that I find interesting, and here is a method to investigate or solve that problem.
- This problem is boring, here is a method to solve this problem automatically so I can think about more interesting things
- I don't care much one way or the other about this problem, but writing this program pays the bills and lets me do more interesting things. Such as eating and paying rent.
If the program is released with its source code accessible the programmer is also saying one or a mixture of the following:
- here is my program, is it not elegant?
- I am smart.
- here is my program, it is not a full solution but it goes someway
towards the heart of the matter. Please extend the program if you
- I am smart but get bored with the details, or I have a good "big picture" idea but don't have the skills to implement it.
- I think this is an interesting problem, here is a tool to help you
investigate this problem. Let's increase the community of people
who think this problem is interesting.
- Will you be my friend?