<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"><html><head><meta name="qrichtext" content="1" /><style type="text/css">p, li { white-space: pre-wrap; }</style></head><body style=" font-family:'DejaVu Sans'; font-size:9pt; font-weight:400; font-style:normal;">On Fri, 10 Jul 2009, Hendrik van Rooyen wrote:<br>
> "Steven D'Aprano" <steve@REMOVE-THIS-cy....e.com.au> wrote:<br>
> >On Wed, 08 Jul 2009 22:05:57 -0700, Simon Forman wrote:<br>
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;"><br></p>[...]<br>
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;"><br></p>> >> Programming is not like any other human activity.<br>
> ><br>
> >In practice? In principle? Programming in principle is not the same as it<br>
> >is performed in practice.<br>
> ><br>
> >But in either case, programming requires both the logical reasoning of<br>
> >mathematics and the creativity of the arts. Funnily enough,<br>
><br>
> I do not buy this arty creativity stuff. - or are you talking about<br>
> making a website look pretty?<br>
><br>
> >mathematicians will tell you that mathematics requires the same, and so<br>
> >will the best artists. I think mathematicians, engineers, artists, even<br>
> >great chefs, will pour scorn on your claim that programming is not like<br>
> >any other human activity.<br>
><br>
> So a chef is now an authority on programming?<br>
><br>
> Programming is actually kind of different - almost everything else is<br>
> just done, at the time that you do it.<br>
><br>
> Programming is creating stuff that is completely useless until it is<br>
> fed into something that uses it, to do something else, in conjuction<br>
> with the thing it is fed into, at a later time.<br>
><br>
> This is a highly significant difference, IMHO.<br>
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;"><br></p>[...]<br>
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;"><br></p>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. <br>
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;"><br></p>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. <br>
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;"><br></p>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.<br>
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;"><br></p>Regards,<br>
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;"><br></p>John<br>
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;"><br></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;"><br></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;"><br></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;"><br></p></body></html>