>I continue to be impressed by the very important role that understanding >of the application for which a program is written plays in writing >successful program, ones that actually get used. Within small development groups application knowledge is king. Programming knowledge is almost an after thought. This is easily illustrated by looking at the code such people write. They often tend to use a small subset of the language in a particular way. Such usage is far from optimal. But it serves it purpose and the gains from concentrating on the application domain are often much greater than learning to be a better programmer. The code is likely to look like typical student programs (perhaps better commented). It is obvious that programming skill development has almost stopped. Within groups of people who have worked together for several years it is often possible to detect a common style. People have talked among themselves and migrated to a common subset that they all understand. The lack of understanding of the language can at times be almost staggering. This state of affairs used to worry me (I believed that people should know how to use the language they programmed in). But looking at the issue in economic terms the current state of affairs is probably close to optimal. The application developers have chosen to spend their time learning what is important to produce an end product. An application that performs as required by its users. Of course these development groups do dig a number of holes for themselves. In many cases they never need to get out of these holes and life goes on. For instance these applications are rarely portable. So what? In economic terms it is cheaper to pay a lot more to have those applications ported that need to be (a small number) than pay a little bit more for every application (most of which are never ported). >This is not to say that there are not programming skills in their own >right. Compiler writing is a good case where pure programming skills are often needed. Scenario: Big important customer has just upgraded to the latest version of compiler. Their conquer_the_world application no longer runs when built. Where does the fault obviously lay (with the company being paid the money, where else). Source is top secret (it wouldn't do to let everybody know they used single letter variable names). Hapless flunky dispatched.... In cases like this my experience is that it is best to ignore the application domain completely. A simply binary chop (keep cutting the source in half, throwing away the bit that doe snot exhibit the problem) will quickly narrow down the search area. Then it's a matter of studying their usage patterns looking for gray areas (language standards do not fully define every construct, some are left intentionally as an implementation choice, an application may make assumptions about how an implementation will behave, which changes with a new release; ergo common reason for nonworking program). derek -- Derek M Jones tel: +44 (0) 1252 520 667 Knowledge Software Ltd mailto:[EMAIL PROTECTED] Applications Standards Conformance Testing http://www.knosof.co.uk
