QUANGO CREATIVE BRIDGES 2008 LECTURE SERIES
ORIGINALLY PRESENTED 2/21

JON WETTERSTEN:

Thank you for coming. It was a pleasure working with Dave. He was a real firecracker. He called people “bonehead” a lot of times, including me.

Creative processes seen through creative language. How did I go from studying art to developing web applications? I get this question periodically, most often from distant relatives.

The short answer is necessity: Programming pays a heck of a lot better than doing fine art.

The longer answer to this is what I’m going to attempt to introduce to you this evening. There are three books that have been very inspirational to me, both as an art student as well as someone who studied math; I was a math student the first two years of my college career.

The first book, The Art Spirit by Robert Henri, is from 1923 and was a collection of essays that Margery A. Ryerson gathered up. He has an influential quote that I have taken to heart whenever I considered art making. And it is:

“Don’t worry about the rejections. Everybody that is good has gone through it, and don’t let it matter if your works are not accepted at once. The better or more personal you are, the less likely they are of acceptance. Just remember that the object of painting pictures is not simply to get them in exhibitions. It is all very fine to have your pictures hung, but you are painting for yourself, not for the jury. I had had many years of rejection. Do some great work, son.”

I think that is very inspiring.

The second book, Godel Escher Bach—An Eternal Golden Braid, has been a source of inspiration to me for a number of years. It’s a dense tome. It was Douglas R. Hofstadter’s attempt to weave a logician, an artist, and a musician into a golden braid of strange loops, symbols, and meaningless patterns. The ‘meaningless patterns’ is of a particular interest to me as I attempt to make them meaningful and weave my own reason to articulate the pattern that I see between these disciplines.

Just to point out, I’ve been studying violin since I was a child. I have a fluency in that language, and I’ve always considered it my second language. As I grew and went into higher education, I also adopted math, the liberal arts, and I ended up concentrating on studio art and painting. So the idea of a book of Godel the logician, Escher the artist, and Bach the musician really spoke to me, even in the title. One of the biggest misperceptions of the book that Hofstadter said was that everyone though this book is about the logician, the artist, and the musician. In fact, it was not, which I discovered quickly when I started reading it.

And finally, Hackers and Painters: Big Ideas from the Computer Age by Paul Graham. In the title alone, I felt an affinity with Paul Graham. In just a few sentences, he proposed an answer to my question of how did I go from art to programming. He addresses from the point of view of both language and process.

“What hackers and painters have in common is that they are both makers, along with composers, architects, and writers. What hackers and painters are trying to do is to make good things. They’re not doing research per se, though in the course of trying to make good things they discover some new techniques, so much the better.”

So what I think is great about this, is that he talks about both language and processes as a serendipitous discovery of some new technique through the process of creation.

So while using these references in my personal experience investigating answers to this question, the subject of language and process remain a creative building block, hence the name of this speech and what I’m going to be talking about.

Let’s get into the definitions of ‘creative’, ‘language’, and ‘process’ so we’re on the same page here. According to the American Heritage Dictionary, which I keep close by,

The entry for ‘creative’ is:
(1) Having the ability or power to create
(2) Creating; productive
(3) Characterized by originality and expressiveness; imaginative

‘Language’:
(1) A use by human beings of voice, sound, and often written symbols that represent these sounds in an organized combination and patterns to express, communicate thoughts and plans (2) The non-verbal method of communicating ideas as by a system of signs, symbols, or gestures; the language of algebra

I think the second definition really gets to the heart of the matter tonight. I also think it’s kind of funny that it throws in “the language of algebra”. The person who edited this must really like algebra.

‘Process’:
(1) A system of operation or production of something
(2) A series of actions, changes, or functions, that brings about an end or result

I kind of broke the creation process into three consumable pieces. In order to create or express something, I need to:
(1) Identify what it is I need to express,
(2) Determine an approach,
(3) And use the appropriate approach.

The drive to create, the approach, and the tools describe the creative process and creative language. I’m not going to talk about the ‘drive to create’ tonight. That’s a whole other conversation.

I have an example to get us started. This is an instant messenger transcript that my colleague sent me. It was between his daughter and his wife, her mom. Maddi is a grade-school student by the way. What I think is great about this is that it serves a simple example of the creative process using a creative language. In this case, it’s instant messenger. I’m going to read through this, and I think you’ll enjoy it.

Maddi: Dear Mom, I am so sorry about last night. Sometimes I just get a big mouth and don’t know it. Please forgive me. I will try to do better.
Mommy: I’m looking forward to better efforts! Love, mommy.
Maddi: I love you mommy! You will always be my favorite person in the world. I mean it!
Mommy: Love you too. :)
Maddi: How did you get the smile face on that page? It is really cool!
Mommy: I’ll show you.
Maddi: Thanks! :)


She’s using the smiley face!

Mommy: :)

What I think is great about this is that she had an approach. She wanted to express her apologies to her mother. She decided on a very straightforward approach, which was to use instant messenger on her computer. And by the way, I didn’t have that when I was a kid, and I sure would have liked that. I actually had to approach my parents, and you know, apologize. Maddi has her room, and then her mom’s room is right next to it. And Maddi has her own little pink computer, and her mom has her work computer. As the apology ends, Maddi enjoys this serendipitous learning experience with her mom where she learned how to express herself with a new language in the emoticon: The colon and the parenthesis.

So now back to this question of art versus programming. The way I answer the question really depends upon the person I am talking to and how well they understand the discipline. I’ll actually use Dave [Anolik]’s explanation of what I was trying to do with [an old] presentation. His expression was that I was trying to take an elephant and balance it on a toaster, because that’s a language that is accessible to Dave. It has made it difficult working with him at times. I’m just kidding. He is very capable.

So for someone who is not familiar with development, I will offer this answer: I am a problem solver specializing in technology related issues. Often times, that ends the conversation right there.

If on the other hand I am talking to a painter or musician, I may come back with this answer: I am simply using a different medium of expression.

Reflecting upon this and Paul Graham’s earlier quote when he’s talking about programmers and painters being makers, it seems reasonable to me that a musician, a mathematician and a programmer would also understand this definition.

Math, music, art and programming are all disciplines that use languages to create. Language and process are combined within each discipline’s particular medium. For example, algebra for math, violin for music, oil painting for art, and web applications in my particular of experience, for development.

So the media is different, but the result is always something new. And I make a point saying: Yes, even a representation of something that exists is new. So when I was preparing for this presentation, I was struggling on how to relate music composition and music performance at the same level of painting and programming. As I mentioned, both painting and programming use languages to create something where as music performance interprets that which has already been created. So there is this notion of creation as well as interpretation and representation. Interpreting and representing that which has been created is in itself a creative task.

Let’s take an example of performing a piece of music. Three basic things here:
(1) You need to have fluency in the language. In other words, the ability to read music.
(2) Two, you need a facility of a particular meeting. In my case, it’s the violin, used to express the language.
(3) And lastly, you need knowledge of the particular style and manner in which the composer intended the music to perform. Now, I use the example of Bach versus Vivaldi. Bach is very formal, metered, not a lot of floral interpretation, whereas Vivaldi is much more floral. He uses quite a bit more bravado and emotion. It’s a much different type of performance.

So what I’m doing when I’m playing the violin and playing another composition is that I’m creating a particular interpretation that is unique, just as an interpretation of a painter in a still life is unique, and just as interpretation of a computer program is unique.


Once a computer program is written, the benefit of all the work is the final executing program. Yes, you have finished coded program, but it’s the executing coding program that is the benefit. Just as a musician interprets music in a performance, the computer interprets code in its performance.

I’m going to demonstrate this idea; I’m going to play a violin piece here that will demonstrate this idea of interpretation by playing an exercise that I usually start off with when I play. Then I will have a computer do the same thing to make a point here.

Can anyone read music here? Okay, correct if I’m wrong. The music notation here, as well as the code notation you are going to see after this are a series of symbols that were purposely ordered to generate a desired result.

I called out this ‘repeat’ here. It has two vertical bars and a colon. It is not an emoticon. What I’m going to here is to play up to the ‘repeat’ and do a little bit of logic. I have to ask myself, how many times have I played that line, up to the ‘repeat’? If I did it just once, I will repeat and play again. I’ll play the second time and once I get here again, I have to ask myself if I have played it once or twice. Now if I was paying attention, I will remember that I played it twice and then I can go on to the rest. So we have a basic logic structure: if I have played this once, I play it again. If I have played it twice, I move on. I’m going to turn the [mic] off and grab my violin, and play this for you.

**Jon plays selection on violin**

Now let me open up this program that I have put together and let the computer do what I just did. And we’re going to let it do the same thing. And it didn’t just record me.

**Computer plays same selection**

I think it played better; I like its interpretation better. Let’s compare this music with a computer language representation of the piece and repeat.

I highlighted the things I want to point out to you. We have a function called ‘play’. And it takes a variable, a ‘repeat’, which is going to be the number of times it played a particular part. So at the top, it pretty much says, “If repeat is less than two, then you need to play it again.” The second time through, this line makes the program check to see if the ‘repeat’ equals two. If it does, it goes on and plays the rest of the piece. Finally, after it has played the rest of the piece, it goes back to the beginning. Notice at the bottom; there is a function that is called ‘Play’ and it passes in what the current repeat value is. So it actually calls itself. So we have a function that references itself. Does that make sense? Notice how similar the logic is.

When I was playing it, I was thinking if I played once, play it again. If I played it twice, then go through.

Okay, bear with me and we’re going to take it a step further and talk about algebra. I’m not sure if you guys remember functions from school, but the line here is f(x) = 2x + 1. There is something very familiar about this structure to what I just showed you in the program. x is the variable. Think about that being the repeat variable we had previously. And if we pass in a value for x, that actually gets inserted into the expression. It’s an interesting parallel.

Let’s go to art. Remember the ‘Play’ function in the program and how it referenced itself? It was self-referential. That’s what Escher is doing here.

**Presents Escher’s Drawing Hands**

He has a hand drawing a hand, and you just get stuck in this strange loop. I could have written the music program to do that, but we would have been here for a while.

Here is our next self-referencing example. I apologize if this annoys you, because it annoys me.

“The following sentence is false.
The preceding sentence is true.”

If you take these things apart, they stand perfectly fine on their own. But if you bring them together, they get stuck in a strange loop.

I chose to play this music with my violin. I am most comfortable practicing and performing music this way. But if I was a painter, I may choose oil but choose to do a soft charcoal sketch. When it comes to programming, I’ve learned more languages than music or painting. So how do I choose which language to use when I program. Like painting, I may sketch in one language just to have it re-written in another. I might scratch out some code, but it may be coded and implemented in another language later. But the point is to solve the problem the best way I know how.

Paul Graham claims, “A good programming language should, like oil paint, make it easy to change your mind.”

So the message I have from this is to choose the appropriate language that meets the needs and approach in each case, instead of forcing the same language, such as your favorite language or the only one you know, to work in every case.

Creative process is a mean of expression. I really like the following quote.

“You learn to paint mostly by just doing this. Ditto for hacking. Most hackers don’t learn by taking colleges courses in programming. They learn by programming when they are 13.”

I’m going to talk briefly about the process here by asking four questions.
(1) What are the givens?
(2) What is the end product?
(3) What are the special cases I need to consider or not consider?
(4) And then there’s top-down versus bottom-up. Which approach should I take? And that’s what I really want to talk about, which is really fascinating based upon where I’ve come from.

Top down is an approach that requires a complete understanding and design view of a system before any actual interpretation design or coding gets done. I was taught in college that one ought to figure out a program completely on paper before ever going near a computer. I found that I did not program this way. I found that I liked to program sitting in front of a computer and not in front of a sheet of paper. I also had a class at the University of Minnesota. I was trying to take more computer science courses while working. The professor whom I had a lot of respect for said that there were eight steps to programming. I still have these notes. He said step two was to choose an approach: top down. I had to chuckle. Everyone else does it bottom up.

Bottom up approach in contrast, emphasizes assembling the big picture by completing many small pieces that work together. So when you have all these little components done, integrate them so they create the whole. So it’s really just the opposite of top-down. Here’s a quote from Tim Brown, the CEO of Ideo, from his essay, Evolution of an Experience. He’s an industrial designer.

“I believe that while most of us think about design in essentially a top down way, where we architect a complete idea. The most interesting examples of complex design systems actually emerge bottom up.”

Here we have a designer and here we have a programmer talking about the same context. I think that’s a really interesting discovery that I made recently, and it makes perfect sense. Paul Graham says,

“Design begins by asking, who is this for and what do they need from it? A good architect, for example, does not begin by creating a design that he then imposes on the users, but by studying the intended users and figuring out what they need.”

This is a very bottom up approach.

Graham talks about studying the intended users and figuring out what they need. It’s about what they need, and what they want. Another quote from Paul Graham:

“I don’t mean to mean to give the impression that working as a designer is like working like a short-order cook and making whatever the client tells you to. This varies field to field, but I don’t think there’s any field in which the best work is done, by making exactly what the customers tell you to. Clients and users do not always know what they want. Let designers do their job and if they do it well, both parties are going to benefit.

Here’s a set of process examples from both design and development companies. Notice that when I don’t show you who says what, you can’t really tell if they’re from a design or development standpoint. My direct experience with bottom up approach has been working on projects with the deliverables come from identifying the needs of the potential end users through research, working those needs into concepts, and then roughly prototyping them for validation before they go on to be implemented.

So back to the question: How did I go from studying art to developing applications?

Well, actually, I’m still at it.

Thank you very much.
PRIVACY POLICY