The Artima Developer Community
Sponsored Link

News & Ideas Forum (Closed for new topic posts)
The Poetry of Programming

1 reply on 1 page. Most recent reply: Dec 7, 2002 10:42 AM by Gervase Gallant

Welcome Guest
  Sign In

Go back to the topic listing  Back to Topic List Click to reply to this topic  Reply to this Topic Click to search messages in this forum  Search Forum Click for a threaded view of the topic  Threaded View   
Previous Topic   Next Topic
Flat View: This topic has 1 reply on 1 page
Bill Venners

Posts: 2285
Nickname: bv
Registered: Jan, 2002

The Poetry of Programming Posted: Dec 5, 2002 10:40 PM
Reply to this message Reply
Advertisement has published an interview with Richard Gabriel in which he suggests that writing software should be treated as a creative activity and that to get good at writing software, we have to practice it, we have to have a critical literature, and we have to have a critical context.

The interview of Richard Gabriel was done by Janice J. Heiss. Here's an excerpt:

Writing software should be treated as a creative activity. Just think about it -- the software that's interesting to make is software that hasn't been made before. Most other engineering disciplines are about building things that have been built before. People say, "Well, how come we can't build software the way we build bridges?" The answer is that we've been building bridges for thousands of years, and while we can make incremental improvements to bridges, the fact is that every bridge is like some other bridge that's been built. Someone says, "Oh, let's build a bridge across this river. The river is this wide, it's this deep, it's got to carry this load. It's for cars, pedestrians, or trains, so it will be kind of like this one or that one." They can know the category of bridge they're building, so they can zero in on the design pretty quickly. They don't have to reinvent the wheel.

But in software, even with something such as Java 2, Enterprise Edition or the Java implementation (or almost any of the APIs we define), we're rolling out -- if not the first -- at most the seventh or eighth version. We've only been building software for 50 years, and almost every time we're creating something new. If you look at software developers and what they produce, if you look at their source code, the programs they make, and the designs that they end up creating, there is real variability. And some people are really good and others are not so good.

So, because you can program well or poorly, and because most of it is creative (in that we don't really know what we're doing when we start out), my view is that we should train developers the way we train creative people like poets and artists. People may say,"Well, that sounds really nuts." But what do people do when they're being trained, for example, to get a Master of Fine Arts in poetry? They study great works of poetry. Do we do that in our software engineering disciplines? No. You don't look at the source code for great pieces of software. Or look at the architecture of great pieces of software. You don't look at their design. You don't study the lives of great software designers. So, you don't study the literature of the thing you're trying to build.

Can programmers learn
Like poets and artists?
Or should they take cues
From bridge engineers?

What are your thoughts
On Richard's new thesis?
Is it inspiring
Or just kind of wierd?

OK, I won't quit my day job.

Gervase Gallant

Posts: 2
Nickname: gervasegal
Registered: Dec, 2002

Re: The Poetry of Programming Posted: Dec 7, 2002 10:42 AM
Reply to this message Reply
I'm still amazed how the software industry has made writing code an engineering-type activity. Particularly with products like Rational Rose, which seems to let you move a few boxes around and then,presto!... it's there.

I've written an article on the similarities between coding and prose writing. I think some of our processes around producing quality code could take a few hints from the copy editors I have worked with in the past.

Please check it out at

Flat View: This topic has 1 reply on 1 page
Topic: Tuning Performance and Process Previous Topic   Next Topic Topic: Flexibility and Complexity

Sponsored Links


Copyright © 1996-2018 Artima, Inc. All Rights Reserved. - Privacy Policy - Terms of Use