[FoRK] Re: aesthetic programming

Dave Long < dave.long at bluewin.ch > on > Wed Nov 1 08:17:59 PST 2006

>> How does one teach that sense without making one's students feel bad?
>
> Conspicuously praise students who produce elegant code? Wax poetic 
> while
> displaying a well-written function on the projector? Give bonus points
> if someone can find a better way to write something?
>
> Well, you have to have motivated students to begin with...

It seems to be pretty common among writers and artists to be involved 
in a "crit group" that meets to discuss reactions to and suggest 
improvements on their work.  I've only ever been tangentially involved 
with such groups, but geeks do this informally amongst themselves as 
well[0], and there are some aspects to a more formal structure which 
may be useful:

- everybody has to read.  Writing alone tends to deafen one to other 
influences, be they positive or negative.  Crits beat solipsism hands 
down.

- everybody has to write.  Criticism by people who aren't producing 
work[1] works better in theory than in practice.  Deadlines avoid 
turd-polishing.

and

- although we learn may far better from our own mistakes, we can learn 
far faster from being exposed to a wide set of other people's.  This is 
doubly true of "mistakes that work" -- it is broadening to discover 
that things we avoid, and that still might not work in our style, can 
however be very effective in another.

In contrast to the guru-shishya parampara of a linear teacher-student 
relationship, the crit group is more of a peer-to-peer 
cyclic-graph-driven approach.

-Dave

:: :: ::

[0] if one can take pride in it, sharing one's work is human nature.  
I've heard about an anti-graffiti community policing campaign that was 
said to have been successful because the officers involved would notice 
which kids were watching the trains, asking them "do you write?" and 
"can I see your book?".  Later, if they had a problem with someone 
getting up a lot, they'd have a good idea from the style whose mother 
to go have a word with.

[1] CS theory, like the show ring, may have very little use for working 
programs.  ("doctors are not required to suffer from the diseases which 
they study")  Hackers, on the other hand, strive for elegance, but 
primarily in the context of running code.  ("that sure is a pretty 
derivation, but that code don't hunt")


More information about the FoRK mailing list