Can software programming be "art"?

Yeah, that’s kind of what I was thinking. But you are right; I think that some games may come closest to being similar to the angst-ridden emotion-laden heart-rending artsy-fartsy “starving artist” kinds of things I’m talking about. But I don’t know if they can quite compare, (since that “personal expression/my heart on my sleeve/my blood in the paint” element probably isn’t there. Well, most likely isn’t there).

And thanks for sharing your expressive code! Man! That brought a tear to my eye!

AmbushBug, that is very interesting, all the stuff you shared. And please. Don’t cut off any ears. It’s been done. :smiley:

To me, programming is like commissioned art. The client gives you a vague idea of what they want, you develop something, then they keep asking you to tweak it, then you bang your head against the wall, and finally by the time you want to kill each other, you say “Take it or leave it” and they say, “Fine”.

I mostly dislike programming, I’m not a whiz kid at it, and yet people keep giving me money to do it. What am I supposed to do? (P.S., I AM moving towards another way to make money)

So my opinion is that while it allows you to be a creative problem solver, to me, it involves none of the emotion (business programming, that is) that playing music involves. There’s some satisfaction when a client likes the work, and the program does what you want it to, but there’s too much banging of the head against the wall for me, and having to please other people for it to be like art.

To me, programming is like commissioned art. The client gives you a vague idea of what they want, you develop something, then they keep asking you to tweak it, then you bang your head against the wall, and finally by the time you want to kill each other, you say “Take it or leave it” and they say, “Fine”.

I mostly dislike programming, I’m not a whiz kid at it, and yet people keep giving me money to do it. What am I supposed to do? (P.S., I AM moving towards another way to make money)

So my opinion is that while it allows you to be a creative problem solver, to me, it involves none of the emotion (business programming, that is) that playing music involves. There’s some satisfaction when a client likes the work, and the program does what you want it to, but there’s too much banging of the head against the wall for me, and having to please other people for it to be like art.

I also agree with Achernar. Personally, I have never written any Van Gogh code (although I’ve written a few thousand lines of Picasso in my time :D) and have never thought of programming as a way to express emotion. There’s a task I want done, I write a program for it.

But then again I’ve also never been moved by a poem, or by song lyrics (by a melody of course, but never a lyric) so some people might disagree with me.

It all depends on your definition of “art”…some people, myself included, can see inherent beauty in software code or a turbine just as much as in a painting or a sunset.
Ranchoth
(The people who can’t see beauty in technology are called, affectionately, “Troglodytic phillistine luddites who should be shackled to an oar,” by my people. :smiley: :wink: )

Not only is programming an art form, but it’s the only art form capable of fighting back. :smiley:

I like what ultrafilter said. The only time sculptures crash is when they fall off the pedestal.

I’ll second the “it can be art” motion. My day job is business programming (16 years and counting) and, while it can be satisfying to see a project successfully completed, it definitely feels like artisanship rather than artistry.
In my spare time, I’m writing a computer game. My heart and soul go into it, and it feels like artistry to me. However, my 16+ years of commercial experience also influence it: I regard these the way I believe a painter would regard his/her draughtsmanship - necessary, but not sufficient to create art.

(A BBC radio programme ‘discussed’ this issue a few months ago. They had a nerdish gamer who claimed that it must be art because something-or-other about the number of polygons drawn per second. Huh? In the blue corner was Brian Sewell, notoriously snobbish London art critic. He claimed he’d once played some ghastly video game at a nephew’s house, and it gave him the most awful headache, so it couldn’t be art. A very amusing debate, but hardly a meeting of minds)

I looked at the bookshelf of one of my computer buddies. The two books he had side by side: “The Art of Programming” and “The Science of Debugging”.

I definitely think it can be art.

Think of it this way, every time someone puts a pen to paper it isn’t necessarily art. Most often it’s the use of a tool to accomplish a task, say writing a memo or signing a check. Every once in a while though you get a beautiful sketch.

Programming is the same way. Most of it is purely utilitarian, but every once in a while you get something which is a work of beauty.

I think the problem is that to the general public it’s just not accessible. It’s very difficult for the majority of people to see the beauty in a piece of code. If you’ve never done it you really have a hard time appreciating it.

But then, very little painting is similar to van Gogh, either. It’s Sturgeon’s Law, all over again.

Now, certainly, there is some programming (perhaps even the majority of it) that isn’t art. But then, there’s photography that isn’t art, too. But some programming most certainly is art. Look at Google, for instance: There’s some mighty artistic programming going on behind the scenes, there. And you don’t need to be a programmer to appreciate it, either. I don’t have access to any of the Google source code, but I’m still frequently amazed by how exactly it understands what I’m looking for. It’s sort of a reverse art, I suppose: Most art is notable for how well it speaks to its audience, whereas Google is notable for how well it listens.

And speaking as a programmer, creating code causes much the same emotion in me as creating a woodcarving or a Halloween costume or a Christmas ornament. I’m making something, quite possibly something that’s never been made before, at least not quite in that way.

I think there can be creative programming, mainly because its still a language even if its a computer language. But programming is heavily business oriented these days, which is somewhat sad. Everyone working on all those business databases day after day.

As some sillier ideas, people have written programs that have the function of reproducing their exact source code.

There are also programs like Eliza, Eliza pretended to be a psychologist by using some tricks and questioning a lot of what the user typed.

Programming is art. If you don’t think so then you don’t care enough about your code.

Anything that can be programmed can be done more than one way. That alone means there’s always going to be a more ugly way, or a more beautiful way. There more complicated the task, the more beautiful (or ugly) it can become.

If you are really patient, you can even do silly things like this in code:

Not there is any point to this example.

class haiku {
public static HaikuPoem
poem ; }

If you read that out its a haiku

class haiku left curly
public static HaikuPoem
poem semicolon right curly

Horseflesh: Using a Variant to hold a simple string value is quite an artistic way to comment on the shift from the tight, hand-optimized, performance-focused code of the 70s to the abstract, machine-optimized, ease-of-programming-focused code of the 90s and today.

What will the future hold? Your next statement suggests an “infinite loop” of code bloat. There’s an implication that we can escape from the loop someday, although it seems impossible from this vantage point - perhaps some other process will intervene, change our values right before our eyes, and break the cycle.

A thought-provoking presentation of the past and future of programming, expressed in only six lines. Kudos! :wink:

Hey, somebody finally got it!

Yes, that was my intent in the code example believe it or not. I purposely used Variant to suggest that things might not always be this way (a simple string). The supposed infinite loop was another way of saying “if I let this go long enough, some random bits may eventually creep in and finally set the variable (me) to Satisfied.” Or I can just Ctrl+Break and get on with my life.