Is programming art?
-
Programmers exhibit some combination of artistry and craftsmanship, as well as a dash of "mad scientist" persona and modus operandi; one must also be as tenacious as a bulldog that has just caught a porchclimber by the kneecap. Said otherwise, a good coder needs to be creative, astute, masterful, and hard-working. I wrote along a similar line here: What's in a Name? On Shakespeare, Lincoln, Cream, and European Starlings (and how they relate to "Software Developers")[^]
-
It is a creative and maybe even an expressive activity, but that doesn't make it art.
-
Programmers exhibit some combination of artistry and craftsmanship, as well as a dash of "mad scientist" persona and modus operandi; one must also be as tenacious as a bulldog that has just caught a porchclimber by the kneecap. Said otherwise, a good coder needs to be creative, astute, masterful, and hard-working. I wrote along a similar line here: What's in a Name? On Shakespeare, Lincoln, Cream, and European Starlings (and how they relate to "Software Developers")[^]
B. Clay Shannon wrote:
I'd rather have expected a statement from you on how they relate to duck-billed Platypus' ;)
If the brain were so simple we could understand it, we would be so simple we couldn't. — Lyall Watson
-
I use to sort of believe that, but really had doubts. Now I know for certain. It is not art and it is absolutely science. What changed my mind? Well studying actually. I studied design practices and architectural principles. I studied different fields of computer science and found where they are similar and different. I learned and learned. Then I realized something. Often those that say it is art do so as a scapegoat.
Kent Sharkey wrote:
You know it when you see it
It sort of comes down to that. With that, I would use a different quote
Quote: Einstein
If you can't explain it simply, you don't understand it well enough.
Computer Science is hard. Some get it faster than others and some just never get it at all. Some get half way and then plateau and all of this is fine. But it is in no way art. Don't get me wrong, syntax has style. Some code looks great. Some looks gawd awful terrible and makes me want to take a shower after reviewing or having to work with it. This is true in any science field though. Have you not ever driven through a city and wanted to hunt down the City planner for the mess that they created? Have you not ever wondered why your fancy new device has the power button so close to the "OK" button? This is what we call User Experience and it exists across everything we use, software, mechanics, electronics etc. This too is NOT an art. There are people who get it and those that don't. That does not make it art. It may mean those that "get it" really don't understand it 100% yet (Einstein's quote) but they do understand the science of it, unfortunately they just can not teach it to others very easily. Art has really no constraints. If I want to put up a giant white canvas and call it art, so be it. Eye of the beholder. However, if I go to my manager and say yes I know you wanted FeatureA and it needed to meet RequirementB, but I was just not "feeling it" and think we should do it this way I would be quickly out on the street. It is not art and this idea that keeps coming back that it is is propagated by those that are getting a glimpse of the actual science but are too lazy to keep digging to master it so they can explain/teach WHY A is better than B. So stop being lazy. Stop using "art" as a scapegoat. If you can not explain to your colleague why your code is better than theirs, maybe your code is in fact not better. You have yet to master that skill.
Xaotiq wrote:
Often those that say it is art do so as a scapegoat.
I agree with you. More Objective Any finite system will be more closely related to science. We use computer languages which are finite to solve a limited, finite problem set. There are ways to measure the goodness/badness of the solution and even though numerous solutions will be reasonably equal, it does not mean there is no (mostly) objective answer. More Subjective Art however, is as close to infinite as possible in this finite universe. As soon as you say you've solved art, along comes another possibility simply because you can redefine it to be something else. Of course, we can transform anything into a subjective view or make it more subjective. Thought Experiment How about this one? Suppose I give you problem that is to be solved that is quite limited. You are to solve the puzzle by filling in the blanks (underscores with either a or b). When both are the same letter, then you win. [_ _] [a b] lose [a a] win [b a] lose [b b] win It is an extremely limited system and difficult to put in the art category. We can write an app to do it calculate the answer, etc. Our Minds View the Finite System Easily No one would consider the program which is written to solve that as art. Because our minds can easily see the finite system behind it. Limited Thinking However, with a large system -- though still finite -- suddenly the same people will attempt to transform it into "art". That's limited thinking. Just because the problem set is large doesn't mean it has transformed to art. Transformation Into Art However, I could reform the entire thing as art and tell you that there is hidden meaning when you render the answer as [a b] you are describing the loneliness felt by all humans as they recognize that they are a when others are b.
-
Is there an echo in the room??? Marc
Imperative to Functional Programming Succinctly Contributors Wanted for Higher Order Programming Project!
-
DaedTech:
The audience for your code is not the user (that’s the audience for the UI). The audience is the CPU, but much more so, its the next developer who needs to edit your code, or even a future you.
Yes and that is the key point.
When a
DataSet.Tables.Count != 0
is BAD ! Wonde Tadesse -
Yes and no! Art is in the eye of the beholder. If I think a solution to a problem is beautiful I may consider it art yet someone else just as a tool and a means to an end. For some maybe the end result when all that code comes together is beautiful and consider that art. I don't think you should be to strict in your views and allow yourself to appreciate the code and what it does especially if you like it but in a teaching environment you shouldn't put too much focus on the artsy aspect, just show that it can be beautiful but try to foster increased learning.
-
I use to sort of believe that, but really had doubts. Now I know for certain. It is not art and it is absolutely science. What changed my mind? Well studying actually. I studied design practices and architectural principles. I studied different fields of computer science and found where they are similar and different. I learned and learned. Then I realized something. Often those that say it is art do so as a scapegoat.
Kent Sharkey wrote:
You know it when you see it
It sort of comes down to that. With that, I would use a different quote
Quote: Einstein
If you can't explain it simply, you don't understand it well enough.
Computer Science is hard. Some get it faster than others and some just never get it at all. Some get half way and then plateau and all of this is fine. But it is in no way art. Don't get me wrong, syntax has style. Some code looks great. Some looks gawd awful terrible and makes me want to take a shower after reviewing or having to work with it. This is true in any science field though. Have you not ever driven through a city and wanted to hunt down the City planner for the mess that they created? Have you not ever wondered why your fancy new device has the power button so close to the "OK" button? This is what we call User Experience and it exists across everything we use, software, mechanics, electronics etc. This too is NOT an art. There are people who get it and those that don't. That does not make it art. It may mean those that "get it" really don't understand it 100% yet (Einstein's quote) but they do understand the science of it, unfortunately they just can not teach it to others very easily. Art has really no constraints. If I want to put up a giant white canvas and call it art, so be it. Eye of the beholder. However, if I go to my manager and say yes I know you wanted FeatureA and it needed to meet RequirementB, but I was just not "feeling it" and think we should do it this way I would be quickly out on the street. It is not art and this idea that keeps coming back that it is is propagated by those that are getting a glimpse of the actual science but are too lazy to keep digging to master it so they can explain/teach WHY A is better than B. So stop being lazy. Stop using "art" as a scapegoat. If you can not explain to your colleague why your code is better than theirs, maybe your code is in fact not better. You have yet to master that skill.
Quote:
If I want to put up a giant white canvas and call it art, so be it
How will you explain to the audience ? Oh there is creamy white on that corner, I used smoke white in the middle ... Believe me, you'll end up admiring your art alone same to your code.
-
Quote:
If I want to put up a giant white canvas and call it art, so be it
How will you explain to the audience ? Oh there is creamy white on that corner, I used smoke white in the middle ... Believe me, you'll end up admiring your art alone same to your code.
Chrris Dale wrote:
How will you explain to the audience ? Oh there is creamy white on that corner, I used smoke white in the middle ...
THat is the point if art in many cases. I picked this particular example because it is exactly what happens in Dare Devil. Not sure if you understand the topic if you are arguing that someone needs to explain "Art". That is the point. People say art you "get it or you don't". It does not need to be justified (unless you are selling it or something). It just simply is art by the eye of the beholder. This is simply not true for software.
Computers have been intelligent for a long time now. It just so happens that the program writers are about as effective as a room full of monkeys trying to crank out a copy of Hamlet. The interesting thing about software is it can not reproduce, until it can.
-
Chrris Dale wrote:
How will you explain to the audience ? Oh there is creamy white on that corner, I used smoke white in the middle ...
THat is the point if art in many cases. I picked this particular example because it is exactly what happens in Dare Devil. Not sure if you understand the topic if you are arguing that someone needs to explain "Art". That is the point. People say art you "get it or you don't". It does not need to be justified (unless you are selling it or something). It just simply is art by the eye of the beholder. This is simply not true for software.
Computers have been intelligent for a long time now. It just so happens that the program writers are about as effective as a room full of monkeys trying to crank out a copy of Hamlet. The interesting thing about software is it can not reproduce, until it can.
If it does need to be justified, then it's not an Art to me. You have to have an audience to make sure it is. Else you're some kind of mentally ill(if so you need help) person who claim it as an Art. Same has to go with your code. Cheers.
-
If it does need to be justified, then it's not an Art to me. You have to have an audience to make sure it is. Else you're some kind of mentally ill(if so you need help) person who claim it as an Art. Same has to go with your code. Cheers.
Chrris Dale wrote:
If it does need to be justified, then it's not an Art to me.
Don't take this the wrong way, but I doubt the majority of "artists" feel they need to justify it to you. In fact, many artists don't feel they need to justify their art to anyone. Typically it is made for themselves. If someone else finds interest in their art (for even different reasons), then they become a prosperous artist.
Computers have been intelligent for a long time now. It just so happens that the program writers are about as effective as a room full of monkeys trying to crank out a copy of Hamlet. The interesting thing about software is it can not reproduce, until it can.