
Ask HN: Do you think software can be art? - fillskills
Sometimes I see pieces of software that are so brilliant that they evoke emotions in me. e.g. when google maps came out, or when the first iphone came out. Do you consider any software to be art? If so, which one?
======
benrbray
(Peter Norvig's take on the matter, quoted from "Coders at Work" by Peter
Seibel)

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."

~~~
mattxxx
...So you can take some paint, and make a mural or paint your garage. One of
these things is art and the other _probably_ isn't. As a result, it's what you
do with it that makes it art _or not_.

This quote is talking about like what this dude thinks he does; it has no
application to anyone else that identifies as a programmer.

~~~
xmonkee
It's Peter Norvig. He definitely paints murals when he's writing code. If his
code doesn't qualify as art then there's hardly anyone on the planet who's
can.

------
bitL
I don't know how is it for you folks, but for me software is an enabler for a
gazillion of things - whether it is art, science, education or practical tool
for life. Many processes in software development resemble those used in arts
(building cathedrals as an often mentioned example comes to mind), so in the
end software can end up being art by itself. However it can be much more, it
can be all of inspiring art, pragmatic tool, scientific instrument, fun making
gadget, transcending and grouping all of this, and it can devalue everything
as well, depending on what mental imprint it obtained from its creators.

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?"

~~~
zenogais
I was going to say this, glad someone already did. It allows you to express or
produce a variety of things, one of which is art. You might even try to
produce software that is itself art. But software by itself is merely a
material to be worked with.

------
makmanalp
What about things like
[http://underhanded.xcott.com/](http://underhanded.xcott.com/) or
[http://www.ioccc.org/](http://www.ioccc.org/) ? I think both of those take
the act of programming and elevate it into an art form.

Slightly tangential but there's also software that imitates art:

[http://akmanalp.com/ellsworth/](http://akmanalp.com/ellsworth/)

[http://www.wikiart.org/en/alexander-
liberman/beat-1952](http://www.wikiart.org/en/alexander-liberman/beat-1952)

------
bsurmanski
I would say yes, software can be art. Just from a general point of view, video
games are a subset of 'software', and I would consider them 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.

------
markbnj
Art and craft are closely related, but I think software is more craft than
art. If I had to come up with a distinction I might say that craft is art done
for a practical purpose. So software could be art if it was done for no other
reason than an expression of an aesthetic or ideal, but otherwise I would call
it a craft.

------
spot
i am a software artist (yup says so on my business card) and i give this a
hearty "yes". but _not_ in the usual sense of code that is elegant or well
crafted, that's just good engineering. code becomes art when it is made with
the intention of an artist. this is actually quite rare. video games barely
count because most of the artistic content are just 3d models. some do count
though.

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.

~~~
stuaxo
Interesting !

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?

------
MichaelGG
For such questions, Taboo the word things hinge on. Try asking and answering
without using the word "art". I think you'll find it comes down to arguing
about the definition of the word "art", which isn't very useful.

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!

~~~
Artemis2
There are truly systems that are so elegant that they feel natural, just
right. Functional programming patterns are one of these.

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...](http://www.allthingsdistributed.com/files/amazon-dynamo-sosp2007.pdf)

I'd advise you to read _Hacker 's Delight_
([http://www.amazon.com/dp/0321842685](http://www.amazon.com/dp/0321842685)).
It's a tough read, but there's so much to learn in there!

------
panamafrank
Saying 'Can software be art?' is like asking if paint is art or clay. The
issue with this question is you quickly end up lost in some metaphysical
quagmire, there's a lot modern art has explored on this question, take modern
greats such as Olafur Eliasson, or Ai Weiwei, or Rothko. Their work derives no
greatness from the mediums they were made in but the ideas they form in our
minds.

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"

------
hooande
"Art" is a concept that obviously has no one definition. For many people, art
is synonymous with beauty. If they look at it and like it, it's art. I wasn't
personally moved in this way by google maps or the iphone, but I understand
that many people were. So I think the answer to the question posed in the post
title for most people is "Yes, or close enough".

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."

------
anonbanker
I'll just paste this contribution from Carsten Haitzler (rasterman):

    
    
      #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.

~~~
kstrauser
Leave this stuff on reddit. Many of us initially came to HN to avoid things
like this.

------
westoncb
It's a little unclear whether the question being asked is, "are software
creators artists?", versus, "can software be perceived as art by a user?"
Seems like the OP's question is more in line of this second version.

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.

------
hansjorg
[https://www.youtube.com/watch?v=RCh3Q08HMfs](https://www.youtube.com/watch?v=RCh3Q08HMfs)

[https://www.youtube.com/watch?v=jlRoOqRs0bs](https://www.youtube.com/watch?v=jlRoOqRs0bs)

[https://www.youtube.com/watch?v=jB0vBmiTr6o](https://www.youtube.com/watch?v=jB0vBmiTr6o)

------
anigbrowl
What you're talking about is great design, which leverages artistic ideas of
proportionality (in multiple dimensions) to functional ends. Now, depending on
how you do that it could have a significant aesthetic dimension for other
professionals in the same field, but art whose aesthetic effect depends
heavily on insider knowledge is severely limited. Contrast this functional
approach with a piece of software like _Journey_ from That Game Company; the
technicalities are obscured and while it is visually complex, there's nothing
to differentiate it technically from many other videogames on the same
platform that display similar or greater visual complexity. What makes it
aesthetically distinctive is the choice to de-emphasize or completely dispense
with concepts such as a score or time pressure, such that it posits a very
different theoretical economy from most other games, and thus yields a very
different experience for the participant.

------
declan
One of my favorite answers to this question comes from a federal lawsuit that
ended with a ruling that source code is protected by the First Amendment.
Here's an excerpt:

 _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%...](http://louisville.edu/faculty/ddking01/cecs311/cases/Junger%20v%20Daley%20--%20ACLU%20Brief.htm))
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.

------
abathur
Arguments about what exactly art "is" will probably never cease--but I'll
still proffer a definition that helps with your question:

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.

------
nicktal
Yes, I do! I've long held this belief. Especially now when there are so many
platforms, devices, toolsets, designs, and languages you can use. Coding has
converged to an artistic medium in itself. One of the prevailing
characteristics of an artistic medium is boundless permutations to express
oneself. Think about letters and words on a page for a poem or paint colors
and strokes on canvas. I wrote about this at length in this post awhile ago,
which has a deliberately tongue-in-cheek title:
[https://medium.com/@eastbeast/i-am-an-artist-and-tech-is-
my-...](https://medium.com/@eastbeast/i-am-an-artist-and-tech-is-my-medium-
ba02b6d2da4c)

------
rndn
Yes, of course. The term art is so broad that almost anything humans do can be
art. The art of programming is, however, very esoteric and obscure so that
your audience is very small. Few people care or are able to care about
programming deeply enough so that it has an aesthetic value for them. I
wouldn't be surprised if outsiders even regard it as something unpleasant as
they are uneasy with the complexity, on he other hand they might, of course,
consider interface design as art.

------
indrax
Suppose I write a cellular automaton in which after some complex dance all the
white cells are turned dark. This could clearly be art.

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.

~~~
probably_wrong
> Suppose that I write the software to implement this CA, but not display it,
> just jostle the memory locations. That is still 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)

------
zpoley
Code is like clay. An application is a living, evolving sculpture.

------
DanielBMarkham
Spent some time thinking about this.

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.

------
tomjen3
Art exist to either teach us something or make us feel something. In that
regard I think plenty of games could be considered art, not just because of
the graphics. This war of mine (where you play a group of civilians caught in
a war zone) makes you feel something and connect with humans in a very
different way when you are done with it.

On the other hand most of the software we make is a much more engineering and
craft.

------
defenestration
Yeah, I know that feeling. For me medium.com is art. It's crafted so
beautifully, that it makes me smile. They care about the smallest details, for
example crafting link underlines: [https://medium.com/designing-
medium/crafting-link-underlines...](https://medium.com/designing-
medium/crafting-link-underlines-on-medium-7c03a9274f9)

------
zmitri
Personally I believe anything you decide to call art is art.

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.

------
rbrogan
IMO, art involves intention and conveys something. I do not know what to call
what it conveys, but it comes from the artist. It is not accidental. So, a
piece of software can be beautiful but not art. But software (e.g. games) can
convey something and can be art.

------
platz
I think people devalue art in many cases when they say, 'oh this code is so
artful, it is full of art'

Could it make you cry?

Beauty and art are different things.

There are more beautiful things in the world than artful things.

~~~
kardashev
I have read code that has made me cry... from pain.

------
sferoze
Is a paintbrush art? I would say it's a tool that can be used to create art.
Is everything made with a paintbrush art? No, not everything made with a
paintbrush is art.

------
foolrush
_sigh_

Replace the word “art” with “communication.”

Art exists in the set of languages. Art is, language. Therefore, the answer is
unequivocally yes.

------
paseante
Of course it can, everything can be art, specially something written with so
much intimacy as software.

------
mattdennewitz
Absolutely, without a doubt. It's an expression of imagination and creativity.

------
devanti
If there is design, then there is art. So yes, a certain part of it is
artistic.

------
marczellm
The old website absurd.org. Unfortunately it doesn't exist now.

------
mattxxx
Yes. _Anything_ can be art, but I like beautiful software too.

------
haidrali
No there is nothing to be artistic in Software there is only LOGIC

------
pnathan
Presentation, or source code? They are two different things.

~~~
analog31
I think possibly both, though the two could appeal to different audiences. Of
course the source code has to be revealed, if it is to be _appreciated_ as
art.

------
smegel
I think more of the latter in Arts&Crafts.

------
tomwhipple
What is art anyway?

------
joaofranco
programming is like handicraft. design (web/ux/ui) is like a painting.

software is like a t-shirt or a vase with a nice picture.

------
rguzman
Yes.

------
ranpra
yes, it is an art.

------
ranpra
yes, It is an art.

------
osw
If it's flow, it is art.

[http://zedshaw.com/2014/10/21/if-its-flow-its-
art/](http://zedshaw.com/2014/10/21/if-its-flow-its-art/)

