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. What is the "good" program ?

What is the "good" program ?

Scheduled Pinned Locked Moved The Lounge
questionworkspace
20 Posts 9 Posters 0 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.
  • N NormDroid

    Gennady Oster wrote:

    5. It never fails silently. Note: Even the best program may fail. So I mean - a good program will always find chance to give you a hint.

    A good point, if an app does fail it should give you a detail report on what went wrong, at least you have the chance to take the infomation to google to find a solution. Alan Cooper came up with a dialog box for error, something on the lines of...

    [Dialog Box]
    What went wrong
    ........

    Possible Cause
    .....

    Possible Solution
    ......
    [Ok] [Cancel]

    www.software-kinetics.co.uk

    O Offline
    O Offline
    Oakman
    wrote on last edited by
    #11

    norm .net wrote:

    Alan Cooper came up with a dialog box for error,

    I really got a kick out of his satirical version of what most error messages look like to the average user: [messsage]"You have proved that you know jackshit about computers" [button 1] "Reformat My Hard Drive" [button 2] "Kill Me Now" [button 3] "I Swear to Use Pencil and Paper from Now On"

    Jon Smith & Wesson: The original point and click interface

    N 1 Reply Last reply
    0
    • O Oakman

      norm .net wrote:

      Alan Cooper came up with a dialog box for error,

      I really got a kick out of his satirical version of what most error messages look like to the average user: [messsage]"You have proved that you know jackshit about computers" [button 1] "Reformat My Hard Drive" [button 2] "Kill Me Now" [button 3] "I Swear to Use Pencil and Paper from Now On"

      Jon Smith & Wesson: The original point and click interface

      N Offline
      N Offline
      NormDroid
      wrote on last edited by
      #12

      :) He had some good ideas....

      www.software-kinetics.co.uk

      1 Reply Last reply
      0
      • G Gennady Oster

        Hi to All ! In every concrete case we can say that this program is good. But I wonder if it is possible to derive any mutual properties or creteria for the good program ? At the times of punch cards we said: If the program works from the first run - it is not a program, if it doesn't work after the third run - this is not a programmer. I tried to create the list of such mutual properties. May be somebody can expand it ? 1. It works. 2. It's code looks nice. Note: from my experience, if the program code looks bad (intuitively) - in most cases this program is wrong. 3. It's code is self-explained. Note: How - it doesn't matter: docs, comments, variables names,... 4. It has a long life. Note: I mean - it can work years and needs no or small efforts to work on new versions of environment. 5. It never fails silently. Note: Even the best program may fail. So I mean - a good program will always find chance to give you a hint. Regards, Gennady

        realJSOPR Offline
        realJSOPR Offline
        realJSOP
        wrote on last edited by
        #13

        Depends on who you ask... From the end-user's standpoint 1) Provides desired (and useful) features 2) Useful without being unattractive 3) Doesn't crash 4) Doesn't adversely affect underlying OS 5) Implements adequate help 6) Cheap (or even better, free) From the developer's standpoint 1) Clear design 2) Easily maintainable, even by new team members 3) Is completely checked in to the version control system 4) Well commented 5) Well documented 6) Still has job at end of project From management's standpoint 1) Completed on time 2) Completed at/under budget 3) Still has job at end of project From sales nazi's standpoint 1) Program sells itself 2) Can sell program for much more than it cost to produce it 3) Can use program as example of sales success when he's looking for another job

        "Why don't you tie a kerosene-soaked rag around your ankles so the ants won't climb up and eat your candy ass..." - Dale Earnhardt, 1997
        -----
        "...the staggering layers of obscenity in your statement make it a work of art on so many levels." - Jason Jystad, 10/26/2001

        G 1 Reply Last reply
        0
        • G Gennady Oster

          Hi to All ! In every concrete case we can say that this program is good. But I wonder if it is possible to derive any mutual properties or creteria for the good program ? At the times of punch cards we said: If the program works from the first run - it is not a program, if it doesn't work after the third run - this is not a programmer. I tried to create the list of such mutual properties. May be somebody can expand it ? 1. It works. 2. It's code looks nice. Note: from my experience, if the program code looks bad (intuitively) - in most cases this program is wrong. 3. It's code is self-explained. Note: How - it doesn't matter: docs, comments, variables names,... 4. It has a long life. Note: I mean - it can work years and needs no or small efforts to work on new versions of environment. 5. It never fails silently. Note: Even the best program may fail. So I mean - a good program will always find chance to give you a hint. Regards, Gennady

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

          Usually a list like this should be as short a possible. My list, rather different than yours, would be: 1. It does what the user actually wants/needs 2. It's so intuitive the user immediately understands how to use it Anything else essentially falls into those two experiences, and in fact #2 could be a considered a part of #1, but I described it separately because users often fail to realize that that is what they want, until they see the opposite. As for code looking nice and self-explanatory, those are concepts that are relative to the capabilities of the developer and subjective to what each developer considers "good" and "self-explanatory". Far too nebulous to package up into generalized statements of quality. Marc

          Thyme In The Country Interacx My Blog

          G 1 Reply Last reply
          0
          • realJSOPR realJSOP

            Depends on who you ask... From the end-user's standpoint 1) Provides desired (and useful) features 2) Useful without being unattractive 3) Doesn't crash 4) Doesn't adversely affect underlying OS 5) Implements adequate help 6) Cheap (or even better, free) From the developer's standpoint 1) Clear design 2) Easily maintainable, even by new team members 3) Is completely checked in to the version control system 4) Well commented 5) Well documented 6) Still has job at end of project From management's standpoint 1) Completed on time 2) Completed at/under budget 3) Still has job at end of project From sales nazi's standpoint 1) Program sells itself 2) Can sell program for much more than it cost to produce it 3) Can use program as example of sales success when he's looking for another job

            "Why don't you tie a kerosene-soaked rag around your ankles so the ants won't climb up and eat your candy ass..." - Dale Earnhardt, 1997
            -----
            "...the staggering layers of obscenity in your statement make it a work of art on so many levels." - Jason Jystad, 10/26/2001

            G Offline
            G Offline
            Gennady Oster
            wrote on last edited by
            #15

            John, I'm talking about program itself, not project, not user impression, not product in whole. And I unambiguously ask you. Are you a salesman :) ? Do you think that using CVS is the property of a program, not a project manager ? Regards, Gennady

            realJSOPR 1 Reply Last reply
            0
            • M Marc Clifton

              Usually a list like this should be as short a possible. My list, rather different than yours, would be: 1. It does what the user actually wants/needs 2. It's so intuitive the user immediately understands how to use it Anything else essentially falls into those two experiences, and in fact #2 could be a considered a part of #1, but I described it separately because users often fail to realize that that is what they want, until they see the opposite. As for code looking nice and self-explanatory, those are concepts that are relative to the capabilities of the developer and subjective to what each developer considers "good" and "self-explanatory". Far too nebulous to package up into generalized statements of quality. Marc

              Thyme In The Country Interacx My Blog

              G Offline
              G Offline
              Gennady Oster
              wrote on last edited by
              #16

              Marc, You're on the user standpoint. I'm asking you as a developer. I'm sure that the programming is much closer to art than to handycraft. So, the definite level of uncertainty or taste-dependency exists. And you say:

              Marc Clifton wrote:

              concepts that are relative to the capabilities of the developer

              This is exactly what I try to evaluate. Regards, Gennady

              realJSOPR 1 Reply Last reply
              0
              • G Gennady Oster

                John, I'm talking about program itself, not project, not user impression, not product in whole. And I unambiguously ask you. Are you a salesman :) ? Do you think that using CVS is the property of a program, not a project manager ? Regards, Gennady

                realJSOPR Offline
                realJSOPR Offline
                realJSOP
                wrote on last edited by
                #17

                Gennady Oster wrote:

                I'm talking about program itself, not project, not user impression, not product in whole.

                And I say again, from who's viewpoint?

                Gennady Oster wrote:

                And I unambiguously ask you. Are you a salesman [Smile] ?

                No, I'm a programmer. My view of what makes a program "good" is compeltely different from my wife's view as merely the end user.

                Gennady Oster wrote:

                Do you think that using CVS is the property of a program, not a project manager ?

                If the program is checked in, and can be checked out and compiled without any problems, then yeah, it's a step closer to a good program. Despite our (programmers) desire for everything to be black and white, on or off, or 1 or 0, real life dictates otherwise. The sooner a lot more programmers realize that, the sooner they start writing better programs.

                "Why don't you tie a kerosene-soaked rag around your ankles so the ants won't climb up and eat your candy ass..." - Dale Earnhardt, 1997
                -----
                "...the staggering layers of obscenity in your statement make it a work of art on so many levels." - Jason Jystad, 10/26/2001

                G 1 Reply Last reply
                0
                • G Gennady Oster

                  Marc, You're on the user standpoint. I'm asking you as a developer. I'm sure that the programming is much closer to art than to handycraft. So, the definite level of uncertainty or taste-dependency exists. And you say:

                  Marc Clifton wrote:

                  concepts that are relative to the capabilities of the developer

                  This is exactly what I try to evaluate. Regards, Gennady

                  realJSOPR Offline
                  realJSOPR Offline
                  realJSOP
                  wrote on last edited by
                  #18

                  Gennady Oster wrote:

                  I'm asking you as a developer.

                  Where did you mention that "as a developer", what makes a program "good"? We're programmers. If the problem has been posed, and there are insufficient requirements with which to establish an opinion, we start asking questions and/or providing solutions based on several probabilities.

                  Gennady Oster wrote:

                  I'm sure that the programming is much closer to art than to handycraft.

                  Wrong. We're not really programmers anymore - we're integrators. Programming USED to be an art back when you only had 4k of RAM to work with, and when you were hobbled by writing TSR programs that consumed as little memory as possible and found a way to use memory above 640K, or when you were writing Turbo Pascal apps that made judicious use of overlays. THAT was art. Today's programming isn't nearly as fun or "artful".

                  "Why don't you tie a kerosene-soaked rag around your ankles so the ants won't climb up and eat your candy ass..." - Dale Earnhardt, 1997
                  -----
                  "...the staggering layers of obscenity in your statement make it a work of art on so many levels." - Jason Jystad, 10/26/2001

                  G 1 Reply Last reply
                  0
                  • realJSOPR realJSOP

                    Gennady Oster wrote:

                    I'm talking about program itself, not project, not user impression, not product in whole.

                    And I say again, from who's viewpoint?

                    Gennady Oster wrote:

                    And I unambiguously ask you. Are you a salesman [Smile] ?

                    No, I'm a programmer. My view of what makes a program "good" is compeltely different from my wife's view as merely the end user.

                    Gennady Oster wrote:

                    Do you think that using CVS is the property of a program, not a project manager ?

                    If the program is checked in, and can be checked out and compiled without any problems, then yeah, it's a step closer to a good program. Despite our (programmers) desire for everything to be black and white, on or off, or 1 or 0, real life dictates otherwise. The sooner a lot more programmers realize that, the sooner they start writing better programs.

                    "Why don't you tie a kerosene-soaked rag around your ankles so the ants won't climb up and eat your candy ass..." - Dale Earnhardt, 1997
                    -----
                    "...the staggering layers of obscenity in your statement make it a work of art on so many levels." - Jason Jystad, 10/26/2001

                    G Offline
                    G Offline
                    Gennady Oster
                    wrote on last edited by
                    #19

                    John Simmons / outlaw programmer wrote:

                    And I say again, from who's viewpoint?

                    We're on the developers site (I hope). We're both developers (I think). These are the conditions. Now the question: Who's opinion I'm interested in ? I don't intend to write the new version of "The Mythical Man-Month...", I asked programmers about program. I know that my English is poor, but I hoped that it is at least clear :) . Regards, Gennady

                    1 Reply Last reply
                    0
                    • realJSOPR realJSOP

                      Gennady Oster wrote:

                      I'm asking you as a developer.

                      Where did you mention that "as a developer", what makes a program "good"? We're programmers. If the problem has been posed, and there are insufficient requirements with which to establish an opinion, we start asking questions and/or providing solutions based on several probabilities.

                      Gennady Oster wrote:

                      I'm sure that the programming is much closer to art than to handycraft.

                      Wrong. We're not really programmers anymore - we're integrators. Programming USED to be an art back when you only had 4k of RAM to work with, and when you were hobbled by writing TSR programs that consumed as little memory as possible and found a way to use memory above 640K, or when you were writing Turbo Pascal apps that made judicious use of overlays. THAT was art. Today's programming isn't nearly as fun or "artful".

                      "Why don't you tie a kerosene-soaked rag around your ankles so the ants won't climb up and eat your candy ass..." - Dale Earnhardt, 1997
                      -----
                      "...the staggering layers of obscenity in your statement make it a work of art on so many levels." - Jason Jystad, 10/26/2001

                      G Offline
                      G Offline
                      Gennady Oster
                      wrote on last edited by
                      #20

                      John Simmons / outlaw programmer wrote:

                      Wrong. We're not really programmers anymore

                      If so - what's wrong in my words?. Programming is the art, but we're now not programmers. Almost agree. But ... I'm less pessimistic, although I also feel nostalgia about the times when Germain's "IBM/360" was our Bible. There is need in programmers, programming yet exists, and this site is acually the proof. Somebody have to create the "Lego" and it's framework. But I can also understand you. When you see children that construct from "Lego" something that they call "program" and therefore call themselves "programmers" - this may get mad anybody :zzz: . Regards, Gennady

                      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