Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!uunet!seismo!sundc!pitstop!sun!amdcad!ames!ucbcad!ucbvax!SOLAR.STANFORD.EDU!shf From: shf@SOLAR.STANFORD.EDU (Stuart Ferguson) Newsgroups: comp.ai.digest Subject: Re: Is Computer Science Science? Or is it Art? Message-ID: <8709290724.AA10633@ucbvax.Berkeley.EDU> Date: Thu, 24-Sep-87 13:50:38 EDT Article-I.D.: ucbvax.8709290724.AA10633 Posted: Thu Sep 24 13:50:38 1987 Date-Received: Wed, 30-Sep-87 06:37:58 EDT References: <12527.8709181200@hplb.lb.hp.co.uk> Sender: usenet@ucbvax.BERKELEY.EDU Reply-To: solar!shf (Stuart Ferguson) Organization: The Blue Planet Lines: 75 Approved: ailist@kl.sri.com Summary: Very well said, Caroline +-- cdfk@hplb.CSNET (Caroline Knight) writes: | ... I believe that in software there is a better analogy with art | and illustration than engineering or science. I have noticed that this | is not welcomed by many people in computing but this might be because | they know so little of the thought processes and planning that go on | behind the development of, say, a still life or an advertising poster. This line of thinking appeals to me alot (and I'm a "person in computing," having 10+ years programming experience). I can apreciate this article because my own thinking has led me to somewhat the same place regarding "Computer Science." My own favorite art form that parallels programming is literature (and all forms of writing or word-smithy). Like programming, writing has a tremendous number of practical uses in our society, and only a handful of writers call themselves "artists." Yet the person who writes as an artist has a power of expression that a "hack" writer lacks. | What is useful that can come of this analogy? Here are some | suggetions:- | Training: An artist will frequently learn their own style through | meticulous study of previous greats (whose great software is there for | us to emmulate?). Computer Science educators could certainly learn to "cultivate the artistic temperment." There are techniques and information to learn and study in both art and programming, but no art teacher would ever think that learning the techniques will make the student a great artist. The same is true for programmers. | At first working from nature is important although more freedom and | greater abstraction will come later. ... Excellent analogy. The first programs I wrote were simulations of physical systems (lunar lander games, spacewar games, billiard ball atom simulations and 3D graphics rendering of simulated worlds) or real-world problems (like tic-tac-toe or the traveling salesman problem). Only after mastering these did I move on to writing parsers, text editors and compilers -- the more abstract end of the scale. | Aids for producing mockups - for instance cartoonists use sheets of | shading which can be cut to fit the required area - in software we | need some such things to allow us to prototype with hints at detail | without putting it all in. Yes, and here is where programming diverges from the analogy of illustration. Projects in illustration are typically small scale (although I'm not involved in the art so I can't really say!) whereas programming projects can be enormous requiring man-years of work and huge volumes of code and are often created by teams rather than individual artists. I think the analogy of an epic novel or some other writing effort is more appropriate. | Aids for throwing stuff away! How many novices or less than expert | programmers cling to the stuff they've written when it needs throwing | out and redesigning from scratch! This is like the advice given in | school not to use an eraser - of course eventually the artist knows | when it is worth using one but at first it is better to concentrate on | developing the ability to create smoothly and without fiddling. Amen! Here again I think the writing analogy works well. Can you imagine what a novel would sound like if the author never did any re-writing? Or if the author had a few scenes that he had written and tried to work them into one large story without re-writing any of the smaller scenes? Rapid prototyping in programming is akin to a first draft in writing. It allows the programmer to get ideas out on paper (so to speak) where he can evaluate them objectivly and see what needs changing or re-thinking. My writing improved immeasurably when I discovered that I could actaully throw something that I had writen away and re-write it, and the lesson was not lost on my programming. Often people don't have the courage to throw something away that works, and it requires a certain ammount of mastery of one's art to do the same thing and do it better. | Caroline Knight cdfk@lb.hp.co.uk | cdfk@hplb.csnet