Seibel: "As a programmer, do you consider yourself a scientist, an engineer, an artist, or a craftsman?"
Norvig: "Well, I know when you compare the various titles of books and so on, I always thought the "craft" was the right answer. So I thought art was a little pretentious because the purpose of art is to be beautiful or to have an emotional contact or emotional impact, and I don't feel like that's anything that I try to do... I think craft is really the right word for it. You can make a chair, and it's good looking, but it's mostly functional--it's a chair."
This quote is talking about like what this dude thinks he does; it has no application to anyone else that identifies as a programmer.
Ernest Hemingway to Irving Penn: "Your photos are really good. What camera do you use?"
Irving Penn to Ernest Hemingway: "Your novels are excellent. What typewriter do you use?"
Slightly tangential but there's also software that imitates art:
But if you decide to ignore games, as you mentioned things like google maps can evoke awe and beauty. I would call that art.
as for examples, I find compilers to be beautiful. I love the way a well designed grammar comes together and the way that we can read a conforming program and turn it into a new program.
the most true software art is generative art: algorithms that produce abstract visuals from code only (though some take images or video and transform them).
the first group of arists that did this that i am aware of called themselves the "algorists" and they worked in the mid 70s. and before that there was manfred mohr.
i believe i am the first open source artist, having released generative art code under the GPL with open source as part of the explicit concept in 1992. if you know of anything earlier (or just anything really early) i would love to hear about it.
I've noticed that finding software isn't too much of a problem, but getting stuff like tilable images + materials or video seems quite tricky - how do you get round that, or do you just generate everything algorithmically / use electric sheep for it?
Of course, software and algorithms can be inspiring and fantastic. Who cares about arbitrary clarifications?
I particularly loved the C-Store (spawned Vertica) and H-Store (spawned VoltDB) papers. Clear ideas, demonstrated well. There's also a paper and code on using SIMD to implement fast integer decompression that I found pretty cool.
Or some of the code used in old games for performance, like stuff Carmack did. Heck, even learning a new programming style can be impressive.
I recall the distinct feeling of awe when I first understood the F# pipe operator:
let (|>) x f = f x
So simple, but requires partial application to work, and enables so much.Or, since we're on this site, look into the Y Combinator. Getting that for the first time was a thrill!
Additionally to the papers you mentioned, there is the paper Amazon published on Dynamo, which also spawned Cassandra and Riak, marvels of modern engineering. Here is a link: http://www.allthingsdistributed.com/files/amazon-dynamo-sosp...
I'd advise you to read Hacker's Delight (http://www.amazon.com/dp/0321842685). It's a tough read, but there's so much to learn in there!
The 'rule of thumb' when it comes to deciding what is art and what is just design, is does it have a use? To borrow a quote from wikipedia on Duchamps 'Fountain':
"Whether Mr Mutt made the fountain with his own hands or not has no importance. He CHOSE it. He took an article of life, placed it so that its useful significance disappeared under the new title and point of view – created a new thought for that object"
Another function that can define art, as opposed to aesthetic beauty, is causing people to see the world in a new way. Some of the greatest art take something familiar and causes people to see it in a new way, or takes common tools and uses them in a way that is somehow surprising or unexpected (ie, the Mona Lisa or Beethoven's Fifth Symphony). I have seen and been a part of software that delighted people. I've seen simple web utilities inexplicably bring smiles to peoples' faces and moments of joy into their lives. I'll spend the rest of my life trying to do that again, to recapture that glimpse of magic. And I probably won't even come close. If that isn't art, then I don't know what is.
Art can have many forms, it's a loosely defined term by intention. But good art does have a definition. Sometimes software and hardware can elevate to reach that height, but most of it does not. I wish I could think of more examples of artistic technology products, but nothing really jumps out at the moment. To quote the Supreme Court when answering a similar question, "I know it when I see it."
#include <stdio.h>
#define blowjob sex
#define sex int
#define joint char
#define reefer joint
#define froob(y) sizeof(y)
#define smoke printf
#define on_the_beach main
#define suckitin(puff) {sex l;l=strlen(puff);memfrob(puff,l);}
#define bacon 0xf
#define eggs 0x3
#define frubfrub(x) scanf("%i",&x)
sex on_the_beach(sex everywhere, joint **is_good){sex *blum;joint *blimblim,
*vendu, buttox;joint ganja[]="c\012BK\\O\012\017C\012H_^^ER\012DE]\040\000";
reefer pot[]="bE]\012GKDS\012H_^^ER\012NE\012SE_\012BK\\O\012\040\000";
suckitin(pot);smoke(pot);frubfrub(pot);suckitin(ganja);blimblim=(joint *)
&buttox;blimblim+=froob(sex);vendu=blimblim;blimblim-=vendu-(joint *)
&buttox;*(vendu-froob(sex))+=(((buttox<<1)|bacon))&eggs;blum=(sex *)blimblim;
smoke(ganja,(*blum)&eggs);}
it even compiles. if you don't consider it art, it's definitely comedy.We should probably refine the question further to: whether there's much out there capable of it at the moment, versus whether it's possible in principle. It's clearly possible in principle, if you concede that it's a medium that can express visual and auditory info with sufficient richness for the creation of art (and of course with a little imagination you can see visual/auditory modes are a small subset of what's possible in principle). As for what's out there at the moment, I'm confident saying my deepest experiences of artistic feeling have been in using software; and I hear similar echoed by others.
As far as 'what it is' as a human activity, my feeling is it's kinda like a magnet with one pole art and the other engineering/craft.
Programs written in source code also share many of the linguistic elements of texts written in natural languages, like German or French... For First Amendment purposes, the use of language is highly significant. Languages are made up of conventions, regular ways of expressing and communicating thoughts and ideas shared by a group of speakers...
Language can be technical, and even arcane, but that does not make it any less like language. A native speaker of English, untrained in medicine, might have difficulty understanding the discussion of a cancer patient's progress. The vocabulary is different even if the grammar is not. Musicians use artificial notation for writing and reading music. Mathematicians and scientists do the same to express concepts important in their fields, with grammar and other conventions that may be wholly incomprehensible to the uninitiated...
For every shared language, natural or artificial, however, there is a community of speakers and listeners (or readers) for whom the language is both comprehensible and for which the language is its conventional form of communication. To belong to a community is to speak its language...
That's from a brief submitted by attorneys for the late Peter Junger (http://louisville.edu/faculty/ddking01/cecs311/cases/Junger%...) in an effort to attack FedGov encryption export controls.
If source code can be expressive, and it is, then it can be art. That doesn't mean that all code is art, of course -- I've written my share of single-use utilities that aren't -- but some subset does deserve that title.
Art is something--a sort of significance--we experience, and not really something we make. When we say we're "making art", we're making an object or giving a performance that we hope will induce others to have the experience of art. In reality, "making art" is an interpretative process; art, like love, is an experience--not an object.
The point is that software most certainly induces people to have the art-experience, both intentionally and unintentionally. It's probably less common for source code to induce the art-experience (intentionally or not), but I suspect this too happens.
Suppose that I write the software to implement this CA, but not display it, just jostle the memory locations. That is still art.
Suppose the rules are such that it is clear that all the on cells will be turned off, with some perhaps complex interactions in between. Then you don't need to run the code to see the art, just read the source.
I think any implementation of Towers of Hanoi is art.
I'm not entirely sure that's true. I get the feeling that art has to be perceived to be considered so, or otherwise we'd say that a painter thinking about a painting is art, even if he never actually paints it.
(note that I have no doubt that someone somewhere will attempt to do this as an art project, but then we'd have to discuss what "art" actually is)
Yes.
All art has some degree of engineering and science behind it. Painters use light and chemistry, musicians use acoustics and materials science, and so on. Technology development is no different. I think what happens with us is that there is so much science and engineering that we forget that everything we create both says something about ourselves and has an emotional impact on another human somewhere.
Technology development is most definitely an art form.
On the other hand most of the software we make is a much more engineering and craft.
I appreciate what you are saying with regards to brilliance, but experiences and emotional responses to software, code, products and anything else really don't necessitate art -- the act of declaring it art definitely does though.
Could it make you cry?
Beauty and art are different things.
There are more beautiful things in the world than artful things.
Replace the word “art” with “communication.”
Art exists in the set of languages. Art is, language. Therefore, the answer is unequivocally yes.
software is like a t-shirt or a vase with a nice picture.