Slashdot Mirror


Is Programming Art?

chromatic writes "A constant question for software developers is 'What is the nature of programming?' Is it art or science? Does creativity or engineering lead the design and implementation of a program? John Littler talked to several well-known and well-respected programmers (including Guido van Rossum, Andy Hunt, Bjarne Stroustrup, Paul Graham, and Richard Stallman) to find their answers; he shares their thoughts and his own in Art and Computer Programming." From the article: "What the heck is art anyway, at least as most people understand it? What do people mean when they say 'art'? A straw poll showed a fair degree of consensus--art is craft plus a special degree of inspiration. This pretty much explains immediately why only art students and art critics at a certain sort of paper favor conceptual art. Conceptual art, of course, often lacks a craft component as people usually understand the term."

10 of 462 comments (clear)

  1. Not a fine art by fembots · · Score: 5, Insightful

    I think Richard Stallman put it quite nicely:

    "I would describe programming as a craft, which is a kind of art, but not a fine art. Craft means making useful objects with perhaps decorative touches. Fine art means making things purely for their beauty."

    When you have to take functionality into account, it often kills the artistic side of the creation.

    1. Re:Not a fine art by SIGALRM · · Score: 5, Insightful

      Since programming is an art, we ought to be able to classify types of programmers. Here is a start;

      The Picasso programmer: As a whole the system works, but each piece is a warped view of reality.

      The Jackson Pollack programmer: Throws code at the system, trying to see what works.

      The Georges Seurat programmer: When you step back from the system, you can see the overall pattern, but close up each piece is totally distinct from all of the others. (Actually, this is a pretty good description of OO design).

      The Michalangelo programmer: Has a grand, sweeping view of what the system should do, but each piece is done in such meticulous detail that it takes years to finish anything.

      --
      Sigs cause cancer.
    2. Re:Not a fine art by ShaniaTwain · · Score: 5, Insightful

      When you have to take functionality into account, it often kills the artistic side of the creation.

      That would mean that architecture, furniture design, etc lacks in the artistic side? I dont think this is the case at all - giving something functionality doesnt remove the artistic side, they complement each other and are not mutualy exclusive.

    3. Re:Not a fine art by Waffle+Iron · · Score: 5, Funny

      Unfortunately, most software on the market seems to have been written by the "Dogs Playing Poker" programmers.

    4. Re:Not a fine art by squidfood · · Score: 5, Funny
      Unfortunately, most software on the market seems to have been written by the "Dogs Playing Poker" programmers.

      And there's a market for that. Hence, Visual Basic.

    5. Re:Not a fine art by lskutt · · Score: 5, Interesting

      I agree, but not completely. Paraphrasing the czech theorist Jan Mukarovsky[1]: art is when the aesthetic function is greater than all other functions.

      Therefore, I would conclude that programming per se is not art, but that it very well can be - if intended. Consider the IOCCC. While all competition entries do perform some kind of practical function, the main purpose of each one is to be elegant, beautiful, ingenious etc.; properties which we usually associate with art.[2]

      [1] Mukarovsky, Jan, "Aesthetic Function, Norm, and Value as Social Facts.", 1936.
      [2] Note to self: I need to learn english grammar and spelling.

  2. Well... by Donniedarkness · · Score: 5, Funny

    Programmers do meet one of the requirements that you have to meet to be considered an artist: They make no money.

    --
    Earn a % of cash back from Newegg, Tiger Direct, Walmart.com, and more: http://www.mrrebates.com?refid=458505
  3. It's engineering by Anonymous Coward · · Score: 5, Insightful

    Same as usual, a bridge can be beautiful to look at, beautiful in how it copes with it's load etc, same as code, it's just people don't like looking at code as engineering for some reason.

    1. Re:It's engineering by BenJeremy · · Score: 5, Interesting

      Well, to some degree, engineering can be art.

      Consider great works of architecture... certainly, the simple task of building a bridge, or some building can result in the most straight-forward, brute-force application of a solution, but the results would not be as elegant or noteworthy.

      Similarly, code can be kludged to hell, lacking any elegance and as a result, impossible to enhance or even maintain... or a software engineer could architect a system that is elegant and even mostly reusable (or even better build such a system out of a large library of code already written).

      Unfortunately, the difference is lost amongst probably 80% of the "programmers"
      out there, who have more of an attitude of "get 'r done" and "if it ain't broke...". We talk about patterns, algorithms, processes to developing solid applications and systems, but end up dealing with managers or clients who couldn't give a rat's ass about it until a quality audit is announced.

      I know a handful of very talented engineers who can design "on the fly" - elegant design work, and as a bonus, they know the engineering side, as well. Put the two together, the SCIENCE of applying basic engineering principles, along with the ART of intuitively understanding the best flow of an application, and you've got solid code.

      To put it another way, I've seen guys who know the process side of software engineering inside and out - but couldn't code their way out of a paper bag, and certainly cannot architect a real software system. They know the science, but lack the artistry (i.e the creative thinking).

  4. CS is science. Design is art by AuMatar · · Score: 5, Insightful

    Computer science- the concepts of bits and bytes and memory addresses is a science. There is a right and wrong answer for pretty much everything. Its researchable and falsifiable.

    The design of a computer program is an art. There is no defined standard for what is or is not good design, its not falsifiable. And its not something that can be taught by rote in a college course. Picking the right design for your specifications and requirements is an art, and one that too few people really understand.

    --
    I still have more fans than freaks. WTF is wrong with you people?