in reply to How to write programs?

On a slightly different tact to most of the responses: there is a limit to how separated your design can be from your implementation. In theory, you can design all the details of an application, then build it exactly according to your spec, the details of the implementation being irrelevant. (Assuming, of course, your requirements don't change. They always do, but that's not my point here).

Time and again, however, I've found the design wasn't able to forsee all problems, or couldn't achieve the depth of understanding necessary to spec a full implementation. To actually do this requires the application to be implemented. Only then are all issues properly understood.

Except in very simple applications, your initial spec will almost always have to be altered, even if the requirements are static.

Replies are listed 'Best First'.
Re^2: How to write programs?
by jplindstrom (Monsignor) on May 27, 2005 at 11:49 UTC
    Or, in the words of Frederick P Brooks (from my blog):

    The incompleteness of our ideas only become evident during implementation.

    True, true.

    /J

      The incompleteness of our implementations only become evident during tests.

      and

      The incompleteness of our tests only become evident during demonstration for important people.

      ;-)

      ihb

      See perltoc if you don't know which perldoc to read!