home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #20 / NN_1992_20.iso / spool / comp / arch / 9250 < prev    next >
Encoding:
Internet Message Format  |  1992-09-07  |  5.9 KB

  1. Xref: sparky comp.arch:9250 comp.lang.misc:2950
  2. Path: sparky!uunet!gatech!purdue!mentor.cc.purdue.edu!pop.stat.purdue.edu!hrubin
  3. From: hrubin@pop.stat.purdue.edu (Herman Rubin)
  4. Newsgroups: comp.arch,comp.lang.misc
  5. Subject: "Training" of programmers
  6. Message-ID: <Bu5qD3.GAM@mentor.cc.purdue.edu>
  7. Date: 6 Sep 92 12:51:02 GMT
  8. References: <1992Sep1.115849.13522@relay.nswc.navy.mil> <Btx4vF.Jx6@mentor.cc.purdue.edu> <1992Sep4.151001.9886@sei.cmu.edu>
  9. Sender: news@mentor.cc.purdue.edu (USENET News)
  10. Organization: Purdue University Statistics Department
  11. Lines: 94
  12.  
  13. In article <1992Sep4.151001.9886@sei.cmu.edu> firth@sei.cmu.edu (Robert Firth) writes:
  14. >In article <Btx4vF.Jx6@mentor.cc.purdue.edu> hrubin@pop.stat.purdue.edu (Herman Rubin) writes:
  15.  
  16. >>What is relevant is
  17. >>the translating of the problem to be computed into the collection of bits
  18. >>which the machine can understand to accomplish the task.  This involves
  19.  
  20. >>    Knowing the algorithmic processes which can be applied, their
  21. >>    strengths and weaknesses, and what happens to them on the particular
  22. >>    machine when they are translated using the available languages.
  23.  
  24.  
  25. >Whether scientific programmers need to understand the hardware is a
  26. >debateable topic, but on the issue of fact that Dr Rubin raises, please
  27. >let me add my firm support to his assertion that most programmers,
  28. >scientific or otherwise, in fact do not understand the machinery
  29. >beneath their feet.  Allow me to relate a story from my own experience,
  30. >which is perhaps of some relevance to the issue of machine and system
  31. >architectures.
  32.  
  33.         [Details of interesting story deleted.]
  34.  
  35. >Now, these people were not fools - they were PhD's in computer science
  36. >and some of the brightest folk you could meet.  And this was not a cheap
  37. >and cheerful hack; it was supposed to be an industrial strength optimising
  38. >compiler with register tweaking, loop scrunching, dead code eulogisation,
  39. >you name it...  So why, then, did they implement this simple feature in
  40. >the most grotesquely inefficient way imaginable, with a design one would
  41. >expect a developmentally-challenged tree sloth to be able to pick to
  42. >pieces in ten seconds?
  43.  
  44. >I believe the answer is this: these people had between them about 30 years'
  45. >eduucation in academic computer science.  They knew about stacks, queues,
  46. >lambda calculi, invariants, NP-completeness; they could use words like
  47. >"isomorphic" over morning coffee.  And, in all that time, they had never
  48. >been taught to visualise *what really happens when real code runs on
  49. >real machines*.
  50.  
  51. They know about details, theorems, and specific methods.  They still knew
  52. nothing of the basics of how a computer operates.  One course tells how 
  53. everything can be done on a stack machine; another shows how it can be
  54. done on a primitive von Neumann machine.  It is like the joke about the
  55. mathematician who undoes several steps which have already been done, so
  56. that the problem is reduced to the previous case.  This may be acceptable
  57. in proving that the traveling salesman problem is NP-complete, but it gets
  58. nowhere in implementing code to run in a reasonable length of time.
  59.  
  60. >This problem is pervasive.  Each generation sees a new and more monstrous
  61. >bloat in the size and cycle consumption of what I still think of as basic
  62. >system software - device drivers, editors, compilers, linkers.  And the
  63. >reason the programmers are so profligate of resources is that they have
  64. >never been taught that resources matter - they are told that, in computer
  65. >science, "everything is virtual", and all resources are infinite and free.
  66. >There is no technical perception of the machine as a real engine, with
  67. >finite capability, and no aesthetic perception that economy of means is
  68. >one of the cardinal qualities of good engineering.
  69.  
  70. Given a large enough memory, and a small amount of fixed code, any computer
  71. can be simulated on any other.  Computers are not infinitely fast, and,
  72. despite the rapid speedup of PCs, limits are being approached.
  73.  
  74. >This must be changed.  Or real companies, with real problems, will continue
  75. >to hire english majors, biochemists and quantum mechanics to write their
  76. >programs; because, as a senior member of one such company told me: "It is
  77. >cheaper to train than to re-train."
  78.  
  79. The problem is even more pervasive than that.  Our educational system never
  80. did that great a job of educating rather than training, but at least students
  81. used to be tested to a fair extent on understanding rather than rote.  This
  82. has almost vanished from the elementary and secondary schools, and is rapidly
  83. disappearing from the universities.  The calculus course never did that great
  84. a job on teaching the concepts, and only a fair one on examining them, but
  85. now even that is reduced.  What CS program does more than barely hint to the
  86. students that there is much more to what a computer can do than Pascal or C++?
  87. Or that there are real problems where these other things are useful?
  88.  
  89. Educating a trained person is much harder than an untrained person.  I teach in
  90. a statistics department; teaching statistical understanding to those who have
  91. taken methods courses is very difficult, and extends even to PhD statisticians.
  92.  
  93. And then the hardware designers, being told that something is useless, drop
  94. it from the instruction set?  Designing flexibility in both hardware and
  95. software is not that expensive; putting in something left out may be.  A
  96. simple example is that of square root.  The cost of putting in square root
  97. on any machine which has "classical" division hardware is essentially zero
  98. at the design and construction stage, but an algorithm to do it is otherwise
  99. is necessarily slow and costly.  Bit vectors do not necessarily start on a
  100. word, or even a byte, boundary, and again, it is easier to deal with the 
  101. problem at hardware design time rather than in software.
  102. -- 
  103. Herman Rubin, Dept. of Statistics, Purdue Univ., West Lafayette IN47907-1399
  104. Phone: (317)494-6054
  105. hrubin@pop.stat.purdue.edu (Internet, bitnet)  
  106. {purdue,pur-ee}!pop.stat!hrubin(UUCP)
  107.