6 votes

Is programming science?

There's no doubt computer science is indeed a science, but what about programming itself? Does it fulfill the basic requirements that make something a science? I'm not an academic, just trying to start a conversation.

In many ways, programming is like Math: a means to an end. And Math is a science. Like math, programming has several fields with vastly different ideas of what constitutes programming. Because it is applied logic, programming is also provable and disprovable. There are many disputing hypothesis and, even though absolute truth is a distant dream, it is certain that some sentences are truer than others. Again, like Math, Programming has many practical applications, such as finances and engineering.

Some people consider Math a propaedeutics: not a science in itself, but a discipline that provides fundamentals to actual sciences such as chemistry and physics. The same reasoning could be applied to programming, as nothing more than a tool for computer science. I personally think there's something unique about programming and it's problem-solving methods that can be considered a field of its own.

What you guys and girls think?

8 comments

  1. [2]
    Akir
    Link
    I feel that programming is most commonly used as an art rather than a science. And honestly I say that largely because there are so many open source projects that seem to be motivated by people...

    I feel that programming is most commonly used as an art rather than a science. And honestly I say that largely because there are so many open source projects that seem to be motivated by people who just want to challenge themselves to see if they can do something. I mean, that's basically how Linux started, isn't it? And look how big and important it is today.

    If we were to compare programming to anything else, I would say it is most simelar to poetry. The programmer puts words together in a highly thoughtful and purposeful way, all within the strict rules of form, style, syntax, and grammar, in order to create something that is greater than the sum of it's parts. And just as there are many examples of great poetry, there are also many examples of great programming.

    11 votes
    1. Deimos
      Link Parent
      A relevant quote from The Mythical Man-Month that I've always liked, relating programming to both poetry and magic:

      A relevant quote from The Mythical Man-Month that I've always liked, relating programming to both poetry and magic:

      The programmer, like the poet, works only slightly removed from pure thought-stuff. He builds castles in the air, from air, creating by exertion of the imagination. Few media of creation are so flexible, so easy to polish and rework, so readily capable of realizing grand conceptual structures.

      Yet the program construct, unlike the poet's words, is real in the sense that it moves and works, producing visible outputs separate from the construct itself. It prints results, draws pictures, produces sounds, moves arms. The magic of myth and legend has come true in our time. One types the correct incantation on a keyboard, and a display screen comes to life, showing things that never were nor could be.

      8 votes
  2. alexandria
    Link
    I don't have much time right this moment to write a proper response, but I just want to link to Donald Knuth's musings on Programming As An Art (Not! "the art of computer science" but "the ART of...

    I don't have much time right this moment to write a proper response, but I just want to link to Donald Knuth's musings on Programming As An Art (Not! "the art of computer science" but "the ART of computer science"). Click on "PDF" and it'll send you to the full article (for free). It goes over his thoughts in 1970 over Computer Science As A Science as background, which I found pretty interesting just on their own.

    3 votes
  3. stromm
    Link
    I don't think so. It's a language. Just like English, Spanish, Russian, whatever. It a way of communicating knowledge from one person to another. That modern programming happens to do that through...

    I don't think so. It's a language. Just like English, Spanish, Russian, whatever.

    It a way of communicating knowledge from one person to another. That modern programming happens to do that through converting text to media (audio/image/video), doesn't change the root purpose.

    3 votes
  4. KilledByAPixel
    Link
    Yes, I think so. It is and art and a science. We make theories, do experiments, investigate how things work. We make models and simulations of physical reality. We have had many breakthroughs, new...

    Yes, I think so. It is and art and a science. We make theories, do experiments, investigate how things work. We make models and simulations of physical reality. We have had many breakthroughs, new ideas about how to structure and write code that shake things up.

    I think as time goes on we will see even more of an overlap between computer science and the other sciences. Biology is made of tiny computers like dna. Physics and chemistry are representable as a computer simulations.

    3 votes
  5. cstby
    Link
    Programming is similar to engineering. It's fundamentally a creative act. I would also argue that neither computer science nor mathematics are sciences either. Science is about observing phenomena...

    Programming is similar to engineering. It's fundamentally a creative act.

    I would also argue that neither computer science nor mathematics are sciences either. Science is about observing phenomena and providing theories that explain them.

    3 votes
  6. userexec
    Link
    I don't really have much substantive to add here at the moment, but I'm a full time programmer and my degree is actually in English composition. I found the transition into programming to be a...

    I don't really have much substantive to add here at the moment, but I'm a full time programmer and my degree is actually in English composition. I found the transition into programming to be a surprisingly natural one. There are a nearly infinite number of ways to express what you're trying to express when you're writing a program, and you're drawing off the styles of an existing body of "literature" such as API documentation, others' code, and your own past work. In a way you're telling a story through code about how the user interacts with the computer, and you do so in your own somewhat unique composition style. This is especially true if you use conventions like behavior-driven development.

    1 vote
  7. imperialismus
    Link
    I would consider programming as separate from computer science as primarily engineering. It can certainly be used for art, or science - and some programs, like quines and code golf and certain...

    I would consider programming as separate from computer science as primarily engineering. It can certainly be used for art, or science - and some programs, like quines and code golf and certain other very clever programs, are art in the same way that a diagram of a Rube Goldberg machine are art, or the way that some math can aspire to art.

    1 vote