On Fri, 10 Jul 2009, Hendrik van Rooyen wrote: > "Steven D'Aprano" <st...@remove-this-cy....e.com.au> wrote: > >On Wed, 08 Jul 2009 22:05:57 -0700, Simon Forman wrote:
[...] > >> Programming is not like any other human activity. > > > >In practice? In principle? Programming in principle is not the same as it > >is performed in practice. > > > >But in either case, programming requires both the logical reasoning of > >mathematics and the creativity of the arts. Funnily enough, > > I do not buy this arty creativity stuff. - or are you talking about > making a website look pretty? > > >mathematicians will tell you that mathematics requires the same, and so > >will the best artists. I think mathematicians, engineers, artists, even > >great chefs, will pour scorn on your claim that programming is not like > >any other human activity. > > So a chef is now an authority on programming? > > Programming is actually kind of different - almost everything else is > just done, at the time that you do it. > > Programming is creating stuff that is completely useless until it is > fed into something that uses it, to do something else, in conjuction > with the thing it is fed into, at a later time. > > This is a highly significant difference, IMHO. [...] The drawings produced by an architect, the script of a play, the score of a piece of music, and the draft of a piece of legislation are all examples of other things which are "useless" until they are interpreted in some way. There are countless human activities which require a program, i.e. a conscious plan or strategy, formed at least partly by a creative process, and a computer program is just a special case of this. I use Python as a tool for writing music, but I find I need both logical reasoning and creativity to do either. In fact, I find programming very similar to writing music in a rigorous contrapuntal style, where each set of choices constrains each other, and there is a deep aesthetic satisfaction in getting it right. Regards, John
-- http://mail.python.org/mailman/listinfo/python-list