home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #16 / NN_1992_16.iso / spool / comp / os / os2 / advocacy / 3432 < prev    next >
Encoding:
Text File  |  1992-07-30  |  4.2 KB  |  77 lines

  1. Newsgroups: comp.os.os2.advocacy
  2. Path: sparky!uunet!elroy.jpl.nasa.gov!usc!cs.utexas.edu!qt.cs.utexas.edu!yale.edu!yale!mintaka.lcs.mit.edu!bloom-picayune.mit.edu!athena.mit.edu!pshuang
  3. From: pshuang@athena.mit.edu (Ping-Shun Huang)
  4. Subject: Re: Portable?
  5. In-Reply-To: petesk@microsoft.com's message of 29 Jul 92 21:48:01 GMT
  6. Message-ID: <PSHUANG.92Jul31041719@ninja.mit.edu>
  7. Sender: news@athena.mit.edu (News system)
  8. Nntp-Posting-Host: ninja.mit.edu
  9. Organization: Massachusetts Institute of Technology
  10. References: <1992Jul26.151507.14399@news.Hawaii.Edu> <1992Jul29.214801.13081@microsoft.com>
  11. Date: Fri, 31 Jul 1992 08:17:26 GMT
  12. Lines: 63
  13.  
  14. In article <1992Jul29.214801.13081@microsoft.com> petesk@microsoft.com (Pete Skelly) writes:
  15.  
  16.  > Now if you have any exception with real issues, argue those, instead of
  17.  > this "ARE" garbage.
  18.  
  19. I agree, people who are taking too much pleasure trying to pick at every
  20. word and sentence written by Microsoft employees are really making a
  21. poor showing in this newsgroup by acting like children. Stop trying to
  22. provoke hostility -- this goes for BOTH SIDES as appropriate.
  23.  
  24.  > Programmer A is doing Top Down design, while programmer B is doing
  25.  > bottom up design.  Programmer A can take into account the
  26.  > archetectural quirks of a number of different systems.  Programmer B
  27.  > is going from an archetectural spec for a limited number of systems.
  28.  > In B's case, translating to C may not be that difficult.  Translating
  29.  > to C for another processor or system may be.  It's the hacks
  30.  > introduced in doing that that can cause problems.  In addition, in
  31.  > 'B's case, you have two programmers working on the project.  One who
  32.  > wrote the assembly, and 'B'.  The assembly coder may not have had the
  33.  > same objectives as B, and B may have to hack around some stupid
  34.  > performance things.  Given that A and B are equal programmers, I'd
  35.  > suspect that B would have a far worse time of it.
  36.  
  37. I think your scenario here isn't completely fair. I would expect the
  38. following would be ordered from most buggy to least buggy code,
  39. programmer quality being equal: (a) writing a new filesystem in
  40. assembly; (b) writing a new filesystem in C; (c) writing a new
  41. implementation of an old filesystem, with abstract specifications in
  42. hand, with an old reasonably debugged assembler implementation
  43. available, including history of the bugs encountered and fixed in that
  44. implementation. I would propose that (a) compares to the HPFS in OS/2
  45. 1.x, (b) compares to NTFS, and (c) compares to any re-writes of HPFS for
  46. a portable OS/2. Critical to my ordering of the three in terms of
  47. expected quality of code is that the knowledge base for (c), e.g.
  48. knowing some of the pitfalls that were encountered before and fixes for
  49. them and reasons for them.
  50.  
  51. Certainly, many of the bug fixes might be for lessons learned which are
  52. very specific to that particular implementation for that particular
  53. platform using that particular development environment. (See footnote.)
  54. However, I would imagine many of the problems encountered and fixed in
  55. the assembler implementation would be ones which pertain to the C code
  56. being written, which are only apparent when you try to turn the paper
  57. specifications into actual machine opcodes.
  58.  
  59. (Footnote: Unfortunately, the first bug which I could think of that
  60. fitted into the "lessons learned specific..." was one which I
  61. encountered recently on a project. I noticed a stretch of literal
  62. hexadecimal opcodes in one component of a source file and asked my
  63. co-worker why they were hand-assembled when the assembly source was
  64. right there but commented out. His response was that when that code was
  65. originally written, it would not work and he spent hours trying to
  66. figure out why not, to no avail. He finally started tracing it byte by
  67. byte, and finally realized that MASM [not sure which version but I
  68. believe it is one up to date] had compiled the incorrect opcode for an
  69. instruction. Sure enough, when he consulted the Intel 386/486 CPU guide
  70. and inserted the hexadecimal equivalent of what he thought was the
  71. correct opcode instead, the code worked perfectly. This kind of
  72. painfully worked-out fixgets you nowhere in translation to C. :)
  73.  
  74. --
  75. Ping Huang (INTERNET: pshuang@athena.mit.edu), probably speaking for himself
  76.  
  77.