Alex,
I'm wondering if models of creative processes in programming have been proposed in the literature.
I think that the role of creativity in programming is vastly overestimated.
Considering the case of a programmer working without a clear specification, for example to compose some music or some other partly serendipitous task, the relationship between the program and programmer seems complex and dynamic. The programmer somehow has an idea, comes up with an algorithm to implement it, and then types it in to their text editor.
Most algorithms are very simple and frequently used. In fact developers seem to have a small repertoire of techniques they use most of the time.
The process of typing in the algorithm requires that everything about it is made explicit, including areas of its operation that the programmer may not have considered. This may feed
One big difference between programming and music composition (I may be exposing my complete ignorance of music composition here) is that lots can be left out of a program or just not work in all cases and users are often none the wiser. For instance, 'numbers' is a project I am currently working on http://shape-of-code.coding-guidelines.com/2010/02/using-numeric-literals-to-identify-application-domains/ and without reading the source people might think it works as intended :-) In fact all sorts of functionality is still listed as TODO or does not handle edge cases.
back to cause the programmer to modify the original idea they had. They then run the algorithm which might surprise the programmer with unintended consequences, good or bad, again causing them to reflect upon and modify their original idea. The programmer decides on the next edit in response, and around it goes.
Running a program often generates surprises http://shape-of-code.coding-guidelines.com/2010/03/variations-in-the-literal-representation-of-pi/ that result in additional or modified functionality. Changes of algorithm used for existing functionality is much rarer.
I imagine work has already been done in this area, could anyone suggest references? I'd be very interested in any opinions on the above ideas too, and on the subject of programming and creativity in general. Best wishes, alex
-- Derek M. Jones tel: +44 (0) 1252 520 667 Knowledge Software Ltd mailto:de...@knosof.co.uk Source code analysis http://www.knosof.co.uk -- The Open University is incorporated by Royal Charter (RC 000391), an exempt charity in England & Wales and a charity registered in Scotland (SC 038302).