Right, I have now had some more of a chat elsewhere with That One Gentleman, and with his permission am copying (with some formatting) some of his stuff (not least because I'd really like to sit you two down in a pub sometime and watch what happened!):
As I think I said at the time, it comes down to a semantic distinction. If creative means that you create something out of nothing (emptiness, blank space no content) then I'd agree that I'm creative. If it means imaginative then no. If you asked which meaning I'd associate with 'creative' then it'd be the latter. I really don't use imagination in programming.
There's the small stuff where you don't have many choices and everything is a logical progression towards a complete whole. With the bigger stuff I feel it's an extension of the smaller stuff that depends on being able to see how the small stuff plays out in a larger whole - much like chess.
I think that the willingness to fail is distinct from the imaginative/creative thing. That, to me, is a confidence issue. And sometimes a shortcut. Sometimes an experiment is just faster than completely working through the theory, and either approach would work.
I think that starting from the empty file/blank canvas gives the most choices, but those choices are not completely free. They are bounded by rules and breaking those rules is not new and visionary, it just means that the product you are engineering won't work.
[...]
Anyway, the blank canvas thing. The choices are not free. They are more comparable to chess openings. They are arguably the most important decisions and the hardest to understand the implications of, but it's all set inside a structured rigid framework that prescribes what is and is not possible. I would say that this argument applies to choices of which programming language to use, or whether to write your own. Even if you write your own then you are still trying to understand the full range of ways that the end result will be used and accommodate all of those cases as best you can, possibly with focus in particular areas (depending on what problem the new language is trying to solve).
In English you could decide to omit full stops and capital letters, and you could still be understood. If you omit parens in (most) programming then it would not work at all. Probably would not compile. Similarly, you could choose to break that rule and put all words in a sentence in alphabetical order, introducing a whole new kind of ambiguity that you could potentially do interesting things with. That, to me, is the essence of a creative act that you can't do in coding.
Aha, followed up with: And until writing code that won't compile has _any_ conceivable value (except as a demonstraiton of how not to..) I will feel that coding is not creative. Which is probably starting to get a ta thing that I can argue against more effectively, once I've had a chance to mull it over. ;)
(no subject)
Date: 2013-12-24 10:10 pm (UTC)Aha, followed up with: And until writing code that won't compile has _any_ conceivable value (except as a demonstraiton of how not to..) I will feel that coding is not creative. Which is probably starting to get a ta thing that I can argue against more effectively, once I've had a chance to mull it over. ;)