Is programming art?

(I'm a high school student confused by this concept)

I know this isn't about ruby, but I don't know where I should ask the
question.
And... after all, ruby is a language which more often be described by "art"
than any other language I know.
Many people call Matsumoto "great designer". I know programming is related
to design. But is it "art"?

Paul Graham said programming is like painting in "Hackers and Painters", but
I'm very confused.
In art field, the masterpieces would be honored... forever.
The sculptures made by ancient Greeks still stand.
Tang poetry was recited by Chinese users until now.
Da Vinci's painting like Mona Lisa have been classic for 500 years.
How about programs? After five hundred years, our descendants will remember
mailing list, Ruby, or even Linux?
If a craft can't stand test of history, still it is art?

If programming is neither art nor manufacturing, what is it?

···

--
Lai, Yu-Hsuan

The creation of software aspires to be a science or at least more like
engineering but it is truly a craft. The software takes shape under
the hands of the coder at the exact moment of creation such as when
the painter creates the painting. Such planning as may be done in
advance can be swept aside in a moment of inspiration with the brush
in hand, the whole canvas can be scrapped because it does not look
right to the artist despite an observer seeing no fault with it.

It is the same with software.

However software, unlike painting or sculpture, is a thing of utility
and thus in a constant state of flux. It is rewritten continuously and
when it no longer has utility it is scrapped. Da Vinci did not return
to the Mona Lisa and say "I think I should really do this in
charcoal", Michelangelo did not return to David and say "his right
hand would look better on his hip, perhaps he should have a more
contemporary haircut".

True works of art have no utility and have a final form.

Software exists solely for it's utility and has no final form to stand
on a pedestal or have learned articles written about.

The the creation of software is a craft/art but the final product is
just that, a product. Some forks are elegant and stylish, others are
ugly and utilitarian but we choose that which functions better as a
fork over that which does not. Beautiful software that does nothing is
soon discarded.

The creation of software is a craft aspiring to be an art but the
result is not art, just utility.

YMMV :slight_smile:

There are diverse opinions about the status of computing. Also it can
described as science. The next are two articles on that line.

* Is Computer Science Science? , Peter Denning, 2005.
* Computing is a natural science , Peter Denning, 2007.

Maybe the categories of art, science or engineering are related with
the methods that you use.

Daniel

Excerpts from Yu-Hsuan Lai's message of Fri Dec 17 06:51:30 -0300 2010:

···

(I'm a high school student confused by this concept)

I know this isn't about ruby, but I don't know where I should ask the
question.
And... after all, ruby is a language which more often be described by "art"
than any other language I know.
Many people call Matsumoto "great designer". I know programming is related
to design. But is it "art"?

Paul Graham said programming is like painting in "Hackers and Painters", but
I'm very confused.
In art field, the masterpieces would be honored... forever.
The sculptures made by ancient Greeks still stand.
Tang poetry was recited by Chinese users until now.
Da Vinci's painting like Mona Lisa have been classic for 500 years.
How about programs? After five hundred years, our descendants will remember
mailing list, Ruby, or even Linux?
If a craft can't stand test of history, still it is art?

If programming is neither art nor manufacturing, what is it?

I know programming is related
to design. But is it "art"?

In the sense that anything can be.

In art field, the masterpieces would be honored... forever.
The sculptures made by ancient Greeks still stand.
Tang poetry was recited by Chinese users until now.
Da Vinci's painting like Mona Lisa have been classic for 500 years.

Programming, in its current form, has been around for, what, 50 years? Give it
time to stabilize -- and time for true masterpieces to appear.

What's more, it's a

How about programs? After five hundred years, our descendants will remember
mailing list, Ruby, or even Linux?

It's possible that these will leave a living legacy. The Linux we use today is
very different than the Linux that Linus wrote for want of a terminal emulator
-- I'd be surprised if a single line of code is the same. Yet in a sense, it
might be considered the same, in the sense that you are still the same person
you were ten years ago -- likely not a single cell in your body now was in
your body then, and it's possible all of your atoms have been replaced, but
you're still you, are you not?

Even failing that, while very few people use anything that's directly
descended from the original AT&T Unix, we do still use systems based on and
inspired by that design. I would imagine that in five hundred years, if we're
still using earthbound networks, they'll probably still be running something
very like IP, and I'd even bet that it'll still be IPv6. I would also imagine
that many of the ideas inspired by Unix would be alive and well, and likely
even some code that once lived inside Linux.

And there are some things which seem genuinely timeless -- for instance,
sorting is very nearly a solved problem, and five hundred years from now,
they'll probably still be using something like quicksort, merge sort, etc.
There are real, mathematical constraints on making sorting much better, and
there are only so many ways to implement the existing algorithms. Even things
like "copy" can have some poetry to them; I imagine as long as C is around,
this snippet will survive, even though I doubt anyone actually recommends
programming this way:

void strcpy(char *a, char *b) {
  while(*a++ = *b++);
}

As a community, we even have our heroes and our memorable quotes. Like him or
not, who can forget Dijkstra saying "Beware of bugs in the above code; I have
only proved it correct, not tried it." I'm going to remember that for the rest
of my life, even if I never see the actual code he was talking about.

Even failing that, I'd have to answer:

If a craft can't stand test of history, still it is art?

Yes, of course.

What do you mean when you say "art"? Do you mean the same thing Roger Ebert
meant when he loudly declared, "Video games can never be art"? Responding to
the backlash, he tried to say that they could never be "fine" art, whatever
that means.

If someone sketches something beautiful to give to his girlfriend on
Valentine's day, and she never shows it to another soul, would you say that is
not art?

Absurd. The question of whether something is or is not art shouldn't depend on
how many people have heard of it, or for how long, at least if the word "art"
is to have any meaning other than "popular".

If programming is neither art nor manufacturing, what is it?

It's both, though closer to engineering than manufacturing.

···

On Friday, December 17, 2010 03:51:30 am Yu-Hsuan Lai wrote:

In my opinion, 99.9% programming isn't art.

The primary purpose of art is to communicate ideas between people, often
times ineffable ideas that can't be put into language. Art is not intended
to be utilitarian and typically has no intrinsic useful function in an of
itself.

The primary purpose of programming is to accomplish a utilitarian function
by providing a set of instructions to a computer. Rather than being
ineffable, the instructions are given in very precise language.

Ruby has a very flexible syntax that lets people do things solely for
aesthetic value, even things that might slow down your code or make it
harder to work with. I've often heard people refer to these sorts of things
as "poetic" and I like doing them myself. They make no sense when the
program is interpreted by a computer, only a human reader. I'd consider that
sort of thing artistic.

People who write entries for obfuscated code contents often times do fun
things with the formatting, making their obfuscated code into pictures and
shapes. This is particularly interesting with "quines", programs that can
output their own source code.

As a response to Paul Graham's "Hackers and Painters" essay, I particularly
enjoyed this essay by an artist/programmer, called "Dabblers and Blowhards":

http://www.idlewords.com/2005/04/dabblers_and_blowhards.htm

···

On Fri, Dec 17, 2010 at 2:51 AM, Yu-Hsuan Lai <raincolee@gmail.com> wrote:

And... after all, ruby is a language which more often be described by "art"
than any other language I know.
Many people call Matsumoto "great designer". I know programming is related
to design. But is it "art"?

--
Tony Arcieri
Medioh! Kudelski

Art generally speaking is there to decorate our environment (visually,
aurally etc). That's why people buy it.

You classify something as art if it has some characteristics that you,
or someone in the room, decides makes it art ie you can't really define
art. You learn the "That is art" reaction from others.

Software just doesn't fall into this category.

Also art tends to mean done in a way that is not the normal,
straightforward, obvious, simple way. Art tries to distort, abstract,
defy physics - generally create something out of the ordinary.

Software can be aesthetically pleasing either functionally or the way
its
written but that's not normally art. It is engineering - creating
functional things in the most sensible way (not amusing, challenging etc
etc). Adding elegance and beauty is not the same as art.

···

--
Posted via http://www.ruby-forum.com/.

Yu-Hsuan Lai wrote in post #969025:

(I'm a high school student confused by this concept)

Start with an easier question:

What is art?

···

--
Posted via http://www.ruby-forum.com/\.

True works of art have no utility and have a final form.

Warning: I'm going to use some onanism to attempt to demonstrate
a point. This is because writing silly, and often useless, pieces of
software is my hobby!

Here is a specimen. It's a zoom into a fractal exclamation mark.

So that's a bit of a strange program that generates fairly strange
(or crap) art.

I'm trying to show is that the relationship between
utility and art is not as simple as XOR.

* The program makes art.

* The art is useless.

* Is the program useless? On the other hand, could I really argue that
  it's useful?

* If the program was used as part of a particularly pretentious
installation, would it then become part of the art, or would only its
output be art?

* Importantly, would you shoot the person who arranged the exhibit?

Johnny

There are diverse opinions about the status of computing. Also it can
described as science. The next are two articles on that line.

* Is Computer Science Science? , Peter Denning, 2005.
* Computing is a natural science , Peter Denning, 2007.

Remember to look at Knuth's "Computer Programming as an Art" from 1974 which starts out by looking at the meaning of art... It's printed in the book Literate Programming (worth a read in its own right) and the article's on line http://fresh.homeunix.net/~luke/misc/knuth-turingaward.pdf

Mike

···

On Dec 17, 2010, at 6:56 AM, Daniel Hernández wrote:

Maybe the categories of art, science or engineering are related with
the methods that you use.

Daniel

Excerpts from Yu-Hsuan Lai's message of Fri Dec 17 06:51:30 -0300 2010:

(I'm a high school student confused by this concept)

I know this isn't about ruby, but I don't know where I should ask the
question.
And... after all, ruby is a language which more often be described by "art"
than any other language I know.
Many people call Matsumoto "great designer". I know programming is related
to design. But is it "art"?

Paul Graham said programming is like painting in "Hackers and Painters", but
I'm very confused.
In art field, the masterpieces would be honored... forever.
The sculptures made by ancient Greeks still stand.
Tang poetry was recited by Chinese users until now.
Da Vinci's painting like Mona Lisa have been classic for 500 years.
How about programs? After five hundred years, our descendants will remember
mailing list, Ruby, or even Linux?
If a craft can't stand test of history, still it is art?

If programming is neither art nor manufacturing, what is it?

--

Mike Stok <mike@stok.ca>
http://www.stok.ca/~mike/

The "`Stok' disclaimers" apply.

...except I apparently forgot that was Knuth, not Dijkstra. Must have Dijkstra
on the brain lately. Sorry about that...

···

On Friday, December 17, 2010 11:29:06 am David Masover wrote:

As a community, we even have our heroes and our memorable quotes. Like him
or not, who can forget Dijkstra saying "Beware of bugs in the above code;
I have only proved it correct, not tried it."

The same question could be asked about painting. Is painting art?

Painting a wall white probably wouldn't be considered art, where painting a
picture of fruit on a table would be considered art.

···

On Fri, Dec 17, 2010 at 10:45 AM, Tony Arcieri <tony.arcieri@medioh.com>wrote:

On Fri, Dec 17, 2010 at 2:51 AM, Yu-Hsuan Lai <raincolee@gmail.com> wrote:

> And... after all, ruby is a language which more often be described by
"art"
> than any other language I know.
> Many people call Matsumoto "great designer". I know programming is
related
> to design. But is it "art"?

In my opinion, 99.9% programming isn't art.

The primary purpose of art is to communicate ideas between people, often
times ineffable ideas that can't be put into language. Art is not intended
to be utilitarian and typically has no intrinsic useful function in an of
itself.

The primary purpose of programming is to accomplish a utilitarian function
by providing a set of instructions to a computer. Rather than being
ineffable, the instructions are given in very precise language.

Ruby has a very flexible syntax that lets people do things solely for
aesthetic value, even things that might slow down your code or make it
harder to work with. I've often heard people refer to these sorts of things
as "poetic" and I like doing them myself. They make no sense when the
program is interpreted by a computer, only a human reader. I'd consider
that
sort of thing artistic.

People who write entries for obfuscated code contents often times do fun
things with the formatting, making their obfuscated code into pictures and
shapes. This is particularly interesting with "quines", programs that can
output their own source code.

As a response to Paul Graham's "Hackers and Painters" essay, I particularly
enjoyed this essay by an artist/programmer, called "Dabblers and
Blowhards":

Dabblers And Blowhards (Idle Words)

--
Tony Arcieri
Medioh! Kudelski

People who write entries for obfuscated code contents often times do
fun things with the formatting, making their obfuscated code into
pictures and shapes. This is particularly interesting with "quines",
programs that can output their own source code.

In case anyone here is a obsfucated programming virgin, here is
(a personal favourite) example of obsfucated code:

http://www.ioccc.org/1996/schweikh1.c

(Here is an archive of such insanity - you'd need the Makefile to
use the above)
http://www.ioccc.org/years.html

As a response to Paul Graham's "Hackers and Painters" essay, I
particularly enjoyed this essay by an artist/programmer, called
"Dabblers and Blowhards":

Dabblers And Blowhards (Idle Words)

That's brilliant!

Though I'm still set on thinking a fractal generator constitutes art.
The fractal on the screen is art, and the program is a description of
how to construct the fractal's geometry.

In any case, as that essay points out:
maths isn't going to get me laid.

You imply that our programming craft is too young to be art. But programming
is growing more quickly than other industries(or sciences). Maybe fifty
years is not short?

Quick sort and merge sort and so on is algorithms rather than programming.
Algorithms are mathematics and mathematics are immutable. Even we have
non-Euclidean geometry, every student learns Pythagorean theorem first. But
still CS students learn Fortran? Some of them even don't want C language.
(I have learned C and like it, of course.)

Now my opinion is like the essay Arcieri posted.

···

On Sat, Dec 18, 2010 at 1:29 AM, David Masover <ninja@slaphack.com> wrote:

On Friday, December 17, 2010 03:51:30 am Yu-Hsuan Lai wrote:
> I know programming is related
> to design. But is it "art"?

In the sense that anything can be.

> In art field, the masterpieces would be honored... forever.
> The sculptures made by ancient Greeks still stand.
> Tang poetry was recited by Chinese users until now.
> Da Vinci's painting like Mona Lisa have been classic for 500 years.

Programming, in its current form, has been around for, what, 50 years? Give
it
time to stabilize -- and time for true masterpieces to appear.

What's more, it's a
> How about programs? After five hundred years, our descendants will
remember

mailing list, Ruby, or even Linux?

It's possible that these will leave a living legacy. The Linux we use today
is
very different than the Linux that Linus wrote for want of a terminal
emulator
-- I'd be surprised if a single line of code is the same. Yet in a sense,
it
might be considered the same, in the sense that you are still the same
person
you were ten years ago -- likely not a single cell in your body now was in
your body then, and it's possible all of your atoms have been replaced, but
you're still you, are you not?

Even failing that, while very few people use anything that's directly
descended from the original AT&T Unix, we do still use systems based on and
inspired by that design. I would imagine that in five hundred years, if
we're
still using earthbound networks, they'll probably still be running
something
very like IP, and I'd even bet that it'll still be IPv6. I would also
imagine
that many of the ideas inspired by Unix would be alive and well, and likely
even some code that once lived inside Linux.

And there are some things which seem genuinely timeless -- for instance,
sorting is very nearly a solved problem, and five hundred years from now,
they'll probably still be using something like quicksort, merge sort, etc.
There are real, mathematical constraints on making sorting much better, and
there are only so many ways to implement the existing algorithms. Even
things
like "copy" can have some poetry to them; I imagine as long as C is around,
this snippet will survive, even though I doubt anyone actually recommends
programming this way:

void strcpy(char *a, char *b) {
while(*a++ = *b++);
}

As a community, we even have our heroes and our memorable quotes. Like him
or
not, who can forget Dijkstra saying "Beware of bugs in the above code; I
have
only proved it correct, not tried it." I'm going to remember that for the
rest
of my life, even if I never see the actual code he was talking about.

Even failing that, I'd have to answer:

> If a craft can't stand test of history, still it is art?

Yes, of course.

What do you mean when you say "art"? Do you mean the same thing Roger Ebert
meant when he loudly declared, "Video games can never be art"? Responding
to
the backlash, he tried to say that they could never be "fine" art, whatever
that means.

If someone sketches something beautiful to give to his girlfriend on
Valentine's day, and she never shows it to another soul, would you say that
is
not art?

Absurd. The question of whether something is or is not art shouldn't depend
on
how many people have heard of it, or for how long, at least if the word
"art"
is to have any meaning other than "popular".

> If programming is neither art nor manufacturing, what is it?

It's both, though closer to engineering than manufacturing.

--
Lai, Yu-Hsuan

(2010/12/19 4:07), Adam Ms. wrote:

Start with an easier question:

What is art?

Yeah, I know this is THE right way for original poster to find his answer, but
anybody who asks someone if something is art or not do not see the world as
you and I do, so a bit more explanation is desirable.

Why the definition of art is important in this context is that, if you define
art as what is written in a dictionary, anything computer-related are 100.0%
non-art. And we do not believe so. That is the key point; the OP is asking
if programming is art "in some sense", and the sense is something that extends
the definition of art from a mare tableau adoring a museum wall. So, in
principle, when someone believes that a programming is art, that person
believes some different definition of art. This is why the question "what is
art". To define art automatically distinguishes if programming is art or not.

I gave one definition earlier, but there's another definition that's also
interesting, which is the one Knuth uses, the classical definition:

Art is that which is not science

That is to say, things that could not be made into sciences were relegated
to art. This is the context for the title "The Art of Computer Programming"

···

On Sat, Dec 18, 2010 at 12:07 PM, Adam Ms. <e148759@bsnow.net> wrote:

Start with an easier question:

What is art?

--
Tony Arcieri
Medioh! Kudelski

There is a distinction between being useless and having no utility. I
content that art has no utility in that it does not have "the quality
of being of practical use" (the meaning of the word utility). That
does not mean that it is useless.

A program that does nothing or does what it is expected to do wrong (a
calculator that cannot add up) has no utility. I have a program that
generates long strings of random characters that I use for passwords,
this has utility. If at some point in the future when security is
enabled via retinal scans and passwords are no longer in use then my
program ceases to have utility.

Art of itself never had utility.

A programmer works / creates more like a painter / sculptor than an
engineer but the result of the labours is not art but something that
has utility. Painters and sculptors do not create things of utility
unless you consider using Michelangelo's David as a hat stand :slight_smile:

Is art useless? That is another question and not one that I was
addressing. Given that in around 6 billion years the sun will turn
into a Red Giant and all life on Earth will be eradicated then you
could view all human endeavour as useless :frowning:

···

On 17 December 2010 11:53, John Morrice <spoon@killersmurf.com> wrote:

True works of art have no utility and have a final form.

I'm trying to show is that the relationship between
utility and art is not as simple as XOR.

* The program makes art.

* The art is useless.

It depends what you're painting (but you already answered your own
question...)

···

On Fri, Dec 17, 2010 at 11:54 AM, Brian Jolly <brian@brianjolly.com> wrote:

The same question could be asked about painting. Is painting art?

--
Tony Arcieri
Medioh! Kudelski

Though I'm still set on thinking a fractal generator constitutes art.
The fractal on the screen is art, and the program is a description of
how to construct the fractal's geometry.

In case anyone is interested, here is an argument which shows
my reasoning there to be faulty:

A circle painted on canvas is art.

class Circle

attr_accessor :x, :y, :radius

end

isn't art.

Therefore a (non-obsfucated) fractal generator isn't art.

I think most individuals exist in both worlds. If you are repeating exactly
what your buddy did, then this is production, not art. If you are refining
your buddies protocol, then this the art of refinement. If you say, "I am
going to create something amazing!" this is a purer art.

···

On Sat, Dec 18, 2010 at 3:32 PM, Urabe Shyouhei <shyouhei@ruby-lang.org>wrote:

(2010/12/19 4:07), Adam Ms. wrote:
> Start with an easier question:
>
> What is art?

Yeah, I know this is THE right way for original poster to find his answer,
but
anybody who asks someone if something is art or not do not see the world as
you and I do, so a bit more explanation is desirable.

Why the definition of art is important in this context is that, if you
define
art as what is written in a dictionary, anything computer-related are
100.0%
non-art. And we do not believe so. That is the key point; the OP is
asking
if programming is art "in some sense", and the sense is something that
extends
the definition of art from a mare tableau adoring a museum wall. So, in
principle, when someone believes that a programming is art, that person
believes some different definition of art. This is why the question "what
is
art". To define art automatically distinguishes if programming is art or
not.

You imply that our programming craft is too young to be art.

No, that's not what I'm saying at all. I'm saying it's too young to be
_recognized_ as art.

For instance, video games are certainly not too young to be art, and people
are even starting to recognize them as art, but we still have Roger Ebert
loudly claiming first that it cannot be "art", then that it cannot be "fine
art", and finally backing off and admitting that he might not have any right
to say one way or the other without at least playing a single game.

But
programming is growing more quickly than other industries(or sciences).
Maybe fifty years is not short?

Well, first, most great art isn't recognized within the artists' lifetime, and
fifty years is a bit too short for, say, _why to die (or disappear) and then
be recognized by later generations as a genius, unappreciated in his time.

Quick sort and merge sort and so on is algorithms rather than programming.

What? How are algorithms not programming?

Algorithms are mathematics and mathematics are immutable.

By that logic, _all_ programs are also mathematics, and this has also been
proven -- every program can be reduced to a mathematical expression. Is that
what you meant?

But then, I also remember my Calculus teacher talking about how integration is
more an art than a science, so maybe that's not such a bad thing...

In any case, if programs are more than just math, then algorithms must be,
also. They are step-by-step instructions, the abstract form of a program
before we translate that algorithm into a particular programming language. In
that sense, my morning routine -- wake up, drink protein shake and caffinated
pseudo-energy-drink, work out, shower, brush teeth, shave, then get to where I
need to be -- could be seen as an algorithm.

Even more so if we consider it to be a number of rules -- for instance, if I
am running late enough, I may skip everything but the caffeine in order to get
there on time. If I am on vacation, I may not set my alarm, I may just sleep
till I feel like getting up. Now we're getting closer to an actual algorithm
-- if I worked at it, I'm sure I could come up with a reasonable flowchart for
how I wake up.

Nothing about it is "immutable", either. Sure, if I changed one aspect of my
morning routine -- say I decide to drink tea instead, cut back on the caffeine
-- it wouldn't be the same routine it was before. But nothing about it is
"immutable". I can certainly take existing algorithms, adapt them, and come up
with new versions -- one trivial optimization of QuickSort, for instance, is
to drop to insertion sort when the partitions get small enough. It's not
exactly the same QuickSort, but I don't think anyone would try to claim it's
not QuickSort.

Even we have
non-Euclidean geometry, every student learns Pythagorean theorem first. But
still CS students learn Fortran? Some of them even don't want C language.

I'm not sure how this is relevant.

Now my opinion is like the essay Arcieri posted.

It was interesting, and maybe I've lost a bit of respect for Paul Graham, but
I do still think programming can be art. Maybe most of it isn't, but then most
writing isn't art either. Certainly, no one would argue that we can't have
things like poetry, or even beautiful enough prose that the language itself is
art. But I am by no means claiming that what I'm writing here is art, either.

···

On Friday, December 17, 2010 08:00:25 pm Yu-Hsuan Lai wrote: