home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #27 / NN_1992_27.iso / spool / comp / lang / pop / 71 < prev    next >
Encoding:
Internet Message Format  |  1992-11-19  |  5.8 KB

  1. From: sfk@otter.hpl.hp.com (Steve Knight)
  2. Date: Thu, 19 Nov 1992 18:42:11 GMT
  3. Subject: Re: Ok, so pop *pop* may be a valid lang, but where's basic?
  4. Message-ID: <116670014@otter.hpl.hp.com>
  5. Organization: Hewlett-Packard Laboratories, Bristol, UK.
  6. Path: sparky!uunet!wupost!sdd.hp.com!hpscit.sc.hp.com!scd.hp.com!hpscdm!hplextra!otter.hpl.hp.com!otter!sfk
  7. Newsgroups: comp.lang.pop
  8. References: <1992Nov12.163410.12678@julian.uwo.ca>
  9. Lines: 107
  10.  
  11. Aaron Sloman writes:
  12. > The difference in productivity between the very best programmers and
  13. > the average ones is enormous, and I suspect that the language they
  14. > use makes only a marginal difference by comparison. 
  15.  
  16. It is certainly true that the difference is large.  (If I remember
  17. correctly, Barry Boehm did one study in which a factor 35 showed up
  18. between the most and least productive.)
  19.  
  20. However, we tend to measure productivity in a way that minimises the
  21. effect of programming language differences.  I don't produce code any
  22. quicker in Lisp or C.  The key difference is only apparent when I 
  23. look at the life-time of the product.  All too often, programming
  24. productivity does not include maintenance effort -- which is where we
  25. see the real payoff.
  26.  
  27. For example, a key advantage in working in type-safe languages such as
  28. BASIC, Lisp, or POP is that programming errors are never allowed to 
  29. execute.  By contrast, when I write in C, my errors don't merely
  30. execute but can cause unlimited havoc (e.g. core dumping, filling
  31. up the file system, crashing root processes, etc)
  32.  
  33. Back in my GEC days, I recall a software engineering survey finding
  34. that 70% of "serious" defects (I can explain what that meant, if anyone
  35. cares) were due to dangling pointer / space leaks.  And my subsequent
  36. programming experience leads me to think that figure is representative.
  37. Needless to say, I became an immediate convert to the use of
  38. garbage collectors in programming which eliminate this huge category of
  39. serious errors completely.
  40.  
  41. Typical figures bandied about for the costs of software production
  42. suggest that 70-80% of the cost of software is incurred in maintenance.
  43. Accepting this figure for the moment, we might conjecture that 
  44. software costs would be reduced by +50% (70% of 70%) simply by
  45. adopting garbage collection.  I'm not motivated to test this -- I 
  46. find it all too believeable -- but I think it would make a super 
  47. project.
  48.  
  49. It is my belief that the choice of programming language (and its
  50. automatically provided technology) is one of the most powerful
  51. influences on software development; I believe it is certainly
  52. more important than the choice of design method.  Studies, which I
  53. have read, that endeavour to examine the influence of language
  54. choice on productivity make a fundamental error.  Without
  55. exception they choose languages from the same technology base,
  56. such as FORTRAN, Ada, Pascal, Algol 6X, and so on.  And all they
  57. go to show is that syntax has no effect -- a truely obvious
  58. conclusion.
  59.  
  60. But I have a rather cynical observation to make.  Most of the
  61. people I have met who make software methods are so-so programmers
  62. with limited experience of "new" languages.  (I can think of one
  63. exception.)  And "new" might mean post-1970 -- nearly a quarter of
  64. a century ago.  Furthermore, they take no joy in the process of
  65. programming but talk about it as "tedious" or even "menial".  This
  66. is a mindset that belongs to the long-gone heady days of mighty
  67. systems analysts and programmers who were glorified typists.
  68.  
  69. So, if you accept my observation, it comes as no surprise that these
  70. people produce (dubious) arguments identifying the higher-level of
  71. the software life cycle as where the effort should be devoted.  
  72. And the argument I have seen over and over is, when we look 
  73. at the software life cycle only 10% of the time/cost is spent in
  74. programming.  But this argument is completely irrelevant when we
  75. factor in the concern that we might be doing a very poor job of
  76. programming.  Maybe we should be doing that 10% differently to 
  77. reduce the subsequent 70%?
  78.  
  79. Evidence for this view can be seen in the regular comparisons of
  80. design methods which show little or no difference between the
  81. methods.  My view is that the most important role of the design 
  82. method is to impose a formal framework of communication between 
  83. team members.  And this is important in big companies where the
  84. social network is unlikely to correspond with the organisational
  85. setup.  And getting the communication wrong will destroy a project
  86. (always has in my experience, anyway).
  87.  
  88. Other evidence is that programmers perceive the choice of language
  89. as very important.  In fact, they regard it as so important that
  90. projects can fail when programmers disagree over the implementation
  91. language.  Sometimes we see projects using four or five different
  92. languages to keep the individual members happy.  
  93.  
  94. Furthermore, a large subset of programmers are actively interested
  95. in learning about new programming languages.  This suggests to me
  96. that they see inadequacies in their "toolset" that are so serious
  97. that they are prepared to invest a considerable effort in extending
  98. their experience.
  99.  
  100. By contrast, I've yet to meet programmers or maintainers who express
  101. much of an opinion about whether they work following de Marco, 
  102. Jackson, some fancy new OOD.  There seems to be a general acceptance
  103. that some kind of method is required but a lack of fevour about
  104. which one is chosen.  "Will it solve my problems?" they ask themselves
  105. and the answer is "No" -- exactly unlike their attitude to programming
  106. languages.
  107.  
  108. So whose problems are solved by software design methods if it isn't
  109. engineers?  Well, the answer is managers.  And will better management
  110. methods really improve software productivity?  You bet they will --
  111. an incremental difference.  But for the big improvements we need to
  112. think about about big technological leaps.
  113.  
  114. Pish & tush.  I'm running low on gas.  I'd better turn this over to
  115. the raging hordes of methodologists out there ....
  116.  
  117. Steve
  118.