Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. The Lounge
  3. Is programming an art or a science?

Is programming an art or a science?

Scheduled Pinned Locked Moved The Lounge
visual-studiodesignhelptutorialquestion
95 Posts 20 Posters 2 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • T Taka Muraoka

    Marc Clifton wrote: I liked Chris Losinger's term "craft". Yes, I've always loved the term "craftsman", with its implications of the love we have for our work, the effort we put in over and above just getting something to work and pushing it out the door. I've had people question me why I bother making my comments look nice and lay out my code the way I do - what a total waste of time! But I give a damn about how my code looks, even if doesn't make a difference to how it runs. I make the analogy between when you're out looking to buy a car. If it's dirty and the engine is covered in oil then the chances of the owner having taken care of it and it being in good condition mechanically are not good. I also like the connection with tools. A master carpenter will have the best tools he can afford, is very proud of them and takes care of them. I think the best sign that you've make a good hire is when the new guy spends the first few hours on his first day installing his toolset :-)


    I'd wear a miniskirt and pimp myself for an extra ten grand a year. - David Wulff

    M Offline
    M Offline
    Marc Clifton
    wrote on last edited by
    #59

    best sign that you've make a good hire is when the new guy spends the first few hours on his first day installing his toolset That might make a good interview question: "what tools do you need to best perform your job?" (not that you'll get them!!!) Yes, I've always loved the term "craftsman" Aye, but here's the difference between architecture and programming. A building eventually gets completed. Software never does. Do you have those bumper stickers Down Under that say things like "Teachers never die, they just get new students"? How about: "programmers never die, they just get refactored". zing! Marc Help! I'm an AI running around in someone's f*cked up universe simulator.

    T 1 Reply Last reply
    0
    • K KaRl

      Marc Clifton wrote: Why can't it be more scientific??? Because we aren't Vulcans :-D Logic is a tool we use, but we aren't logic beings (open any newspaper if you don't believe me ;)) Marc Clifton wrote: We would have better designs, better implementation Perhaps not? I think that intuition is an important part of my creativity, and there's something outside the conceptual field :)


      Ohé Partisans, Ouvriers et Paysans C'est l'alarme! Le Chant des Partisans

      M Offline
      M Offline
      Marc Clifton
      wrote on last edited by
      #60

      we aren't logic beings Yup! I think that intuition is an important part of my creativity But I'd have more time for intuition and creativity if I spent less time struggling with design issues that I should be handling more logically. Does that make sense? Marc Help! I'm an AI running around in someone's f*cked up universe simulator.

      K 1 Reply Last reply
      0
      • M Marc Clifton

        I can see you now, jumping up and down saying "but isn't this obvious?!?!". Only if it were... Argh. Is it that obvious? we should be writing our code more beautifully Actually, I've found that aesthetic quality relates pretty directly with functional quality. The uglier the code, the buggier. Every once in a while I take a step back and actually do a global search and replace to change a function name because what it does has mutated, or rearrange the code so that it looks nicer. I used to go nutso when the "approved" indenting style would change. Remember:

        int foo() {
        return yuck;
        }

        became (or maybe not):

        int foo()
        {
        for (int i=0; i<10; i++)
        {
        yuck=yuck+moreYuck;
        }
        return yuck;
        }

        and finally:

        int foo()
        {
        return whatIuseNow;
        }

        But what REALLY drives me nutso now is the difference in capitalization of the first letter standards. And don't even mention Hungarian notation. Ugh, how did I digress to code formatting??? I nearly cried when I came upon this site. Click on the "Principles Of Agile Software" at the bottom of the page. Oh, how I wish we could even come close to this ideal. http://agilemanifesto.org/[^] I'm a signatory! (well, anyone can be a signatory). Marc Help! I'm an AI running around in someone's f*cked up universe simulator.

        T Offline
        T Offline
        Taka Muraoka
        wrote on last edited by
        #61

        Marc Clifton wrote: I nearly cried when I came upon this site. Bizarre! They've added a nice background since I last saw it but I still think it's a crock! The whole Agile/Extreme Programming thing, that is. If they'd called it the Iterative Programming In Pairs methodology, I don't think any of us would be sitting around now discussing it! But give it a cool name and it'll take the development world by storm. One thing I really don't like about XP is how it has been so totally abused by people who don't understand the principles behind it. "Oh, we're not doing any design or planning or anything like that because we're Agile - our code will magically adapt to changing requirements. We're so Extreme!" Refactoring is good, IMO, because it is a specific, practical recommendation of things to do. If you look at the things that XP recommend you do, they are: (*) Pair programming. I can see some value here but I am extremely doubtful whether the benefits are worth effectively halving your available development resources. (*) Iterative programming. Yes. A Good Thing. But you have to have a LOT of experience to come up with good, flexible designs, you have to be willing to throw stuff away and redo them as you learn more about the problem (i.e. refactor) and it's just too easy to abuse the concept. Having said that, I have to admit to not having done a really in-depth study of XP but this is how I understand it. Any care to set me straight? :-)


        I'd wear a miniskirt and pimp myself for an extra ten grand a year. - David Wulff
        Awasu[^]: A free RSS reader with support for Code Project.

        M 1 Reply Last reply
        0
        • J Jon Rista

          Its probably possible to craft an AI that could generate code for you. But there are two things about that that should be noted. First, and AI can never be more creative than the rules it follows. And two, it takes creativity to craft the AI in the first place. ;) I personally enjoy scraping together a program from absolute nothing. The last month I've been rewriting many of Microsofts controls found in the .NET framework, adding features they lack, etc. What fun is there in having a machine program for you? Or, for that matter, having a billion dollar company write more than half your classes for you? ;) I would rather enjoy the time writing that 80-90% of code, and then enjoy the rest even more because I'd know I'm nearing my goal.

          M Offline
          M Offline
          Marc Clifton
          wrote on last edited by
          #62

          The last month I've been rewriting many of Microsofts controls found in the .NET framework, adding features they lack, etc. Oooh! Care to share??? I've been so frustrated with the .NET controls (and so have others) that I have an offline discussion going on about rewriting the whole System.Windows.Forms namespace! I would rather enjoy the time writing that 80-90% of code I agree, but at some point I find that I would rather have a set of rules to follow so I can get through some of the boring/repetitive/shouldn't need to think about it coding stuff faster, so I can get on with the more interesting stuff! Marc Help! I'm an AI running around in someone's f*cked up universe simulator.

          J 1 Reply Last reply
          0
          • J Jon Rista

            Its probably possible to craft an AI that could generate code for you. But there are two things about that that should be noted. First, and AI can never be more creative than the rules it follows. And two, it takes creativity to craft the AI in the first place. ;) I personally enjoy scraping together a program from absolute nothing. The last month I've been rewriting many of Microsofts controls found in the .NET framework, adding features they lack, etc. What fun is there in having a machine program for you? Or, for that matter, having a billion dollar company write more than half your classes for you? ;) I would rather enjoy the time writing that 80-90% of code, and then enjoy the rest even more because I'd know I'm nearing my goal.

            M Offline
            M Offline
            Marc Clifton
            wrote on last edited by
            #63

            The last month I've been rewriting many of Microsofts controls found in the .NET framework, adding features they lack, etc. Oooh! Care to share??? I've been so frustrated with the .NET controls (and so have others) that I have an offline discussion going on about rewriting the whole System.Windows.Forms namespace! I would rather enjoy the time writing that 80-90% of code I agree, but at some point I find that I would rather have a set of rules to follow so I can get through some of the boring/repetitive/shouldn't need to think about it coding stuff faster, so I can get on with the more interesting stuff! Marc Help! I'm an AI running around in someone's f*cked up universe simulator.

            1 Reply Last reply
            0
            • J Jon Rista

              Its probably possible to craft an AI that could generate code for you. But there are two things about that that should be noted. First, and AI can never be more creative than the rules it follows. And two, it takes creativity to craft the AI in the first place. ;) I personally enjoy scraping together a program from absolute nothing. The last month I've been rewriting many of Microsofts controls found in the .NET framework, adding features they lack, etc. What fun is there in having a machine program for you? Or, for that matter, having a billion dollar company write more than half your classes for you? ;) I would rather enjoy the time writing that 80-90% of code, and then enjoy the rest even more because I'd know I'm nearing my goal.

              M Offline
              M Offline
              Marc Clifton
              wrote on last edited by
              #64

              The last month I've been rewriting many of Microsofts controls found in the .NET framework, adding features they lack, etc. Oooh! Care to share??? I've been so frustrated with the .NET controls (and so have others) that I have an offline discussion going on about rewriting the whole System.Windows.Forms namespace! I would rather enjoy the time writing that 80-90% of code I agree, but at some point I find that I would rather have a set of rules to follow so I can get through some of the boring/repetitive/shouldn't need to think about it coding stuff faster, so I can get on with the more interesting stuff! Marc Help! I'm an AI running around in someone's f*cked up universe simulator.

              1 Reply Last reply
              0
              • M Marc Clifton

                best sign that you've make a good hire is when the new guy spends the first few hours on his first day installing his toolset That might make a good interview question: "what tools do you need to best perform your job?" (not that you'll get them!!!) Yes, I've always loved the term "craftsman" Aye, but here's the difference between architecture and programming. A building eventually gets completed. Software never does. Do you have those bumper stickers Down Under that say things like "Teachers never die, they just get new students"? How about: "programmers never die, they just get refactored". zing! Marc Help! I'm an AI running around in someone's f*cked up universe simulator.

                T Offline
                T Offline
                Taka Muraoka
                wrote on last edited by
                #65

                Marc Clifton wrote: Aye, but here's the difference between architecture and programming. A building eventually gets completed. Software never does. I don't know about that. I could imagine an architect who had built his own house constantly tinkering with it years after the builders had left. Most buildings get finished because there's a business reason for doing so and a finish line gets drawn that you cross. Same as software.


                I'd wear a miniskirt and pimp myself for an extra ten grand a year. - David Wulff
                Awasu[^]: A free RSS reader with support for Code Project.

                M 1 Reply Last reply
                0
                • B brianwelsch

                  Marc Clifton wrote: I always thought there was a lot of "art" in the laying of circuit boards This is certainly true. I didn't even think of it that way. I was thinking of instructions more so. With out added layers of abstraction found in higher languages, there is less room creative solutions. I'm not convinced of that though, the more I think about it. :~ BW "I'm coming with you! I got you fired, it's the least I can do. Well, the least I could do is absolutely nothing, but I'll go you one better and come along!" - Homer J. Simpson

                  M Offline
                  M Offline
                  Marc Clifton
                  wrote on last edited by
                  #66

                  I was thinking of instructions more so As in "assembly code"? I remember the 6502 days when we used to test out illegal opcodes to see what they did. Tons of fun, then Intel comes along and executes an illegal instruction interrupt. Took all the fun out of it. Marc Help! I'm an AI running around in someone's f*cked up universe simulator.

                  1 Reply Last reply
                  0
                  • N Nemanja Trifunovic

                    Yes, it can be "artistic", but it still does not mean it is an art. Cooking can also be artistic, but it is a skill, not an art.

                    M Offline
                    M Offline
                    Marc Clifton
                    wrote on last edited by
                    #67

                    OK. That was wierd. The message on the board is rather different than the message in my email: Yeah, you're right. Actually, I think that "problem solving" is more part of the design. Did you change your message? Cooking can also be artistic, but it is a skill, not an art. I always thought cooking was artistic. I love cooking. The "art" of it for me is mixing different herbs, etc. Marc Help! I'm an AI running around in someone's f*cked up universe simulator.

                    1 Reply Last reply
                    0
                    • K Konstantin Vasserman

                      I think programming as well as any other thing that people do can be anything in spectrum from nothing to art. It doesn't matter what other people think about it. What matters is what you put into it. If you only apply your physical energy into something - it is work. If you apply your physical energy as well as your thought - it is craftsmanship. If in addition to the above you apply your feelings - it is an art. From the more technical point of view, according to Webster dictionary definitions of words "art" and "science" it is most definitely an art and pretty much is a science as well... :)

                      M Offline
                      M Offline
                      Marc Clifton
                      wrote on last edited by
                      #68

                      It doesn't matter what other people think about it Does this hold true in a team environment? If you apply your physical energy as well as your thought - it is craftsmanship. If in addition to the above you apply your feelings - it is an art. That is a very elegant way of putting it. Thank you for that insight! Marc Help! I'm an AI running around in someone's f*cked up universe simulator.

                      K 1 Reply Last reply
                      0
                      • T Taka Muraoka

                        Marc Clifton wrote: I nearly cried when I came upon this site. Bizarre! They've added a nice background since I last saw it but I still think it's a crock! The whole Agile/Extreme Programming thing, that is. If they'd called it the Iterative Programming In Pairs methodology, I don't think any of us would be sitting around now discussing it! But give it a cool name and it'll take the development world by storm. One thing I really don't like about XP is how it has been so totally abused by people who don't understand the principles behind it. "Oh, we're not doing any design or planning or anything like that because we're Agile - our code will magically adapt to changing requirements. We're so Extreme!" Refactoring is good, IMO, because it is a specific, practical recommendation of things to do. If you look at the things that XP recommend you do, they are: (*) Pair programming. I can see some value here but I am extremely doubtful whether the benefits are worth effectively halving your available development resources. (*) Iterative programming. Yes. A Good Thing. But you have to have a LOT of experience to come up with good, flexible designs, you have to be willing to throw stuff away and redo them as you learn more about the problem (i.e. refactor) and it's just too easy to abuse the concept. Having said that, I have to admit to not having done a really in-depth study of XP but this is how I understand it. Any care to set me straight? :-)


                        I'd wear a miniskirt and pimp myself for an extra ten grand a year. - David Wulff
                        Awasu[^]: A free RSS reader with support for Code Project.

                        M Offline
                        M Offline
                        Marc Clifton
                        wrote on last edited by
                        #69

                        I must say I was very disappointed to see that the concept of Agile Programming got mutated into Extreme Programming. And I think XP is a load of crap. Marc Help! I'm an AI running around in someone's f*cked up universe simulator.

                        T 1 Reply Last reply
                        0
                        • M Marc Clifton

                          I must say I was very disappointed to see that the concept of Agile Programming got mutated into Extreme Programming. And I think XP is a load of crap. Marc Help! I'm an AI running around in someone's f*cked up universe simulator.

                          T Offline
                          T Offline
                          Taka Muraoka
                          wrote on last edited by
                          #70

                          Marc Clifton wrote: I must say I was very disappointed to see that the concept of Agile Programming got mutated into Extreme Programming. Oh? I thought they were the same thing. What's the difference? Marc Clifton wrote: And I think XP is a load of crap. Somehow, just somehow, I thought you might :laugh: At least we're agreed on that.


                          I'd wear a miniskirt and pimp myself for an extra ten grand a year. - David Wulff
                          Awasu[^]: A free RSS reader with support for Code Project.

                          M 1 Reply Last reply
                          0
                          • T Taka Muraoka

                            Marc Clifton wrote: Aye, but here's the difference between architecture and programming. A building eventually gets completed. Software never does. I don't know about that. I could imagine an architect who had built his own house constantly tinkering with it years after the builders had left. Most buildings get finished because there's a business reason for doing so and a finish line gets drawn that you cross. Same as software.


                            I'd wear a miniskirt and pimp myself for an extra ten grand a year. - David Wulff
                            Awasu[^]: A free RSS reader with support for Code Project.

                            M Offline
                            M Offline
                            Marc Clifton
                            wrote on last edited by
                            #71

                            ...there's a business reason for doing so and a finish line gets drawn that you cross. Same as software. Ugh, not with my clients. But then, my clients tend to be engineers, and their projects never end. Plus, I tend not to work in industries that actually develop products. I usually program what could loosely be called "productivity enhancement" tools. Marc Help! I'm an AI running around in someone's f*cked up universe simulator.

                            1 Reply Last reply
                            0
                            • T Taka Muraoka

                              Marc Clifton wrote: I must say I was very disappointed to see that the concept of Agile Programming got mutated into Extreme Programming. Oh? I thought they were the same thing. What's the difference? Marc Clifton wrote: And I think XP is a load of crap. Somehow, just somehow, I thought you might :laugh: At least we're agreed on that.


                              I'd wear a miniskirt and pimp myself for an extra ten grand a year. - David Wulff
                              Awasu[^]: A free RSS reader with support for Code Project.

                              M Offline
                              M Offline
                              Marc Clifton
                              wrote on last edited by
                              #72

                              What's the difference? Intent vs. implementation? Marc Help! I'm an AI running around in someone's f*cked up universe simulator.

                              T 1 Reply Last reply
                              0
                              • M Marc Clifton

                                What's the difference? Intent vs. implementation? Marc Help! I'm an AI running around in someone's f*cked up universe simulator.

                                T Offline
                                T Offline
                                Taka Muraoka
                                wrote on last edited by
                                #73

                                Ah. A "the road to hell is paved with good intentions" sort of thing :-)


                                I'd wear a miniskirt and pimp myself for an extra ten grand a year. - David Wulff
                                Awasu[^]: A free RSS reader with support for Code Project.

                                M 1 Reply Last reply
                                0
                                • T Taka Muraoka

                                  Ah. A "the road to hell is paved with good intentions" sort of thing :-)


                                  I'd wear a miniskirt and pimp myself for an extra ten grand a year. - David Wulff
                                  Awasu[^]: A free RSS reader with support for Code Project.

                                  M Offline
                                  M Offline
                                  Marc Clifton
                                  wrote on last edited by
                                  #74

                                  :laugh: And you wonder why I posted those two questions??? Because I find it a living hell to work with other programmers. And, with rare exception, they find it a living hell to work with me. But we're full of good intentions. And I work best on my own, it would seem. Boatyard owners are as bad as engineers. I walked into my client's office this morning and he practically launched himself at me with feature requests (he had a 4 day holiday to think of things). Well, it's nice to be busy, especially as the gift giving season approaches! Well, time to put my son to bed. Have a good rest of the day. I suppose you'll actually get work done now! :laugh: Marc Help! I'm an AI running around in someone's f*cked up universe simulator.

                                  1 Reply Last reply
                                  0
                                  • M Marc Clifton

                                    It doesn't matter what other people think about it Does this hold true in a team environment? If you apply your physical energy as well as your thought - it is craftsmanship. If in addition to the above you apply your feelings - it is an art. That is a very elegant way of putting it. Thank you for that insight! Marc Help! I'm an AI running around in someone's f*cked up universe simulator.

                                    K Offline
                                    K Offline
                                    Konstantin Vasserman
                                    wrote on last edited by
                                    #75

                                    Marc Clifton wrote: Does this hold true in a team environment? Well, as far as this question concern - it doesn't matter even in the team environment. Treating what you do as an art bears no relevance on your "performance" as an artist or on your relationship with the rest of the team. Marc Clifton wrote: That is a very elegant way of putting it. Thank you.

                                    1 Reply Last reply
                                    0
                                    • J joan_fl

                                      Nitron wrote: What about the UI?!?! "If it has a nicer splash screen, it's gotta run better!" (Right? ) Or are you one of those form follows function types... Oh no.. not the UI.. Though UI sells, I was referring to the format of the code.;P

                                      N Offline
                                      N Offline
                                      Nitron
                                      wrote on last edited by
                                      #76

                                      joan_fl wrote: Oh no.. not the UI.. Though UI sells, I was referring to the format of the code. Is that not part of 'programming', or is it more just human factors and human-machine interface, with 'programming' being merely the code? :confused: IMO, if you give anyone a straight-forward truth table and an interface and say "here, code this", that requires little effort (creatively speaking). I'm just giving you a hard time, I get your idea. I just know I spend only about 10% of my time typing code and the other 90% figuring how to best present the functions to the user. :rolleyes: - Nitron


                                      "Those that say a task is impossible shouldn't interrupt the ones who are doing it." - Chinese Proverb

                                      J 1 Reply Last reply
                                      0
                                      • N Nitron

                                        joan_fl wrote: Oh no.. not the UI.. Though UI sells, I was referring to the format of the code. Is that not part of 'programming', or is it more just human factors and human-machine interface, with 'programming' being merely the code? :confused: IMO, if you give anyone a straight-forward truth table and an interface and say "here, code this", that requires little effort (creatively speaking). I'm just giving you a hard time, I get your idea. I just know I spend only about 10% of my time typing code and the other 90% figuring how to best present the functions to the user. :rolleyes: - Nitron


                                        "Those that say a task is impossible shouldn't interrupt the ones who are doing it." - Chinese Proverb

                                        J Offline
                                        J Offline
                                        joan_fl
                                        wrote on last edited by
                                        #77

                                        Nitron wrote: or is it more just human factors and human-machine interface I like that! :) Nitron wrote: I'm just giving you a hard time Its ok, i dish out a hard time from time to time. :laugh:

                                        1 Reply Last reply
                                        0
                                        • M Marc Clifton

                                          Or a mixture of both? and how much in each category? What are your thoughts, and where do you think programming is an art, and where do you think it is a science? An by art, I'm not referring to GUI or web design or any other graphical element. I mean "art" in the inspirational sense of creativity--the "ah ha" experience when writing a nifty function, for example. Personally, I would say that programming is more of an art, but it has the potential to become more of a science. Sort of like being a doctor in the 19th century vs. in the 21st century. Marc Help! I'm an AI running around in someone's f*cked up universe simulator.

                                          C Offline
                                          C Offline
                                          ColinDavies
                                          wrote on last edited by
                                          #78

                                          IMHO { ((programming == art || programming == science) || (programming != art && programming != science && programing == life )) } Regardz Colin J Davies

                                          Sonork ID 100.9197:Colin

                                          You are the intrepid one, always willing to leap into the fray! A serious character flaw, I might add, but entertaining. Said by Roger Wright about me.

                                          1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Categories
                                          • Recent
                                          • Tags
                                          • Popular
                                          • World
                                          • Users
                                          • Groups