home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #16 / NN_1992_16.iso / spool / comp / lang / ada / 2169 < prev    next >
Encoding:
Internet Message Format  |  1992-07-21  |  7.0 KB

  1. Path: sparky!uunet!cis.ohio-state.edu!ucbvax!LPVE.AC.LP!NRH
  2. From: NRH@LPVE.AC.LP ("Nigel Houghton, La Palma Observatory")
  3. Newsgroups: comp.lang.ada
  4. Subject: AIPS and ADA
  5. Message-ID: <01GMMQSH9W4GBW9OEQ@BITNET.CC.CMU.EDU>
  6. Date: 21 Jul 92 11:31:00 GMT
  7. Sender: daemon@ucbvax.BERKELEY.EDU
  8. Distribution: world
  9. Organization: The Internet
  10. Lines: 135
  11.  
  12. Some time ago (about April?) Greg Aharonian submitted the following re.
  13. AIPS asking why they chose C++ instrad of Ada. Here is that information.
  14. It s NOT intended to start another language war. As Greg asked, I thought
  15. I'd find out the reasons. I believe that any CONSTRUCTIVE criticism made
  16. of my submission will be received well by its author. If you feel the urge
  17. to flame, perhaps you could mail me direct and keep it off the net?
  18.  
  19. >   In the war of language choice ancedotes, here is one for the C++ side.
  20. >The National Radio Astronomy Observatory (NRAO) in Virginia has for many
  21. >years developed,maintained and distributed a program called AIPS (Astronomical
  22. >Image Processing System), used extensively by radio astronomers.
  23. >   Over time, the program has grown in size to 600,000 lines of Fortran.
  24. >Starting in January of 1992, a team of 13 software specialists are rebuilding
  25. >the entire system, and are using C++ to create a modular, objected oriented
  26. >system.
  27. >
  28.     Given that this is the type of large project Ada is great for, it seems
  29. >someone should find out why they choose C++ instead of Ada.  Some of the
  30. >reasons are obvious.  AIPS is a workstation based scientific application
  31. >used mainly in the university environment, for which 80% of all current and
  32. >near future codes are written in Fortran and C/C++.  Scientists outside of
  33. >the DoD (and even many inside the DoD) have for the most part ignored Ada,
  34. >so most current users who modify AIPS would be unable to do so.
  35. >
  36.     Another reason is that no one was around to make the case for Ada.
  37. >With the DoD being the champion of Ada (a role most of its contractors have
  38. >shunned), it will have to make better marketing efforts to convinve people
  39. >to voluntarily switch their large systems to Ada.  For all of the science
  40. >and engineering programming conferences that I goto, I have yet to see any
  41. >Ada presence.
  42. >
  43. (material deleted)
  44. >
  45. Greg Aharonian
  46. >Source Translation & Optimization
  47. >
  48. =============================================================================
  49. The reasons for the adoption of C++ are not really documented; there
  50. was a fair amount of discussion, and I'm not sure if I sent a summary
  51. to you. The following is a slightly revised summary I sent to
  52. someone last year.
  53.  
  54. Ada was considered, and although my own knowledge of it is pretty limited,
  55. I think the objections can probably be summarised (not in any
  56. particular order) thus:
  57.  
  58.   o  Not quite what we want - it has data encapsulation but
  59.      polymorphism and inheritance are not there or are more difficult
  60.      to make use of.  some of the OO purists often sneer at C++, but
  61.      it has enough of what we want as OO pragmatists (see other items)!
  62.  
  63.   o  C++ has already taken-off for large-scale technical applications
  64.      in the outside world, and is almost certainly more "mainstream"
  65.      than Ada.  When we hire a programmer, it is usually
  66.      more to difficult to find an Ada one, and besides, the defence
  67.      sector would probably attract them with a better salary
  68.      (at least in the U.S.) anyway!  Having said that, C++ programmers
  69.      are becoming expensive, and the U.S. defence contractors are
  70.      starting to switch.
  71.  
  72.   o  Cost; good development systems, or even just compilers,
  73.      for Ada are expensive.  AIPS development sites may buy
  74.      something like Saber C++, but those who simply wish to
  75.      compile the system should be able to get away with something
  76.      cheaper, or free, like g++ (the GNU version), although some
  77.      preprocessing might be required for a non-standard system.
  78.  
  79.   o  Although C and C++ differ quite a lot in philosophy, there
  80.      is a lot of C experience (and code) in the AIPS community
  81.      which can be employed in a C++ project.  C and C++ will
  82.      always allow you to get close to the system without kludges,
  83.      at least in unix and family.
  84.  
  85. I've not doubt the theologians could argue further (and both ways).
  86.  
  87. FORTRAN 90 was the only other serious contender.  Lack of existence was
  88. (and still is) a problem.  If it is successful, it will never be anything
  89. other than a niche language suited to numeric processing rather than
  90. building systems.
  91.  
  92. We haven't ruled out a FORTRAN interface to the AIPS++ kernel,
  93. although that's likely to have a lower priority.  In addition, some
  94. specialised hardware only supports FORTRAN for vector processing at
  95. the moment, and it's possible that a library of routines (analogous to
  96. the array-processor routines in the current AIPS) will be required for
  97. such things, although the likes of Convex and Alliant already support
  98. all their hardware features (vectorisation and parallelism) in C, and
  99. others are moving in this direction.
  100.  
  101. The OO approach was felt to be appropriate for a moderately large
  102. system (AIPS 1 is 600 - 700 k-lines), although we hadn't realised
  103. that language is really secondary to this.
  104.  
  105. In order to implement a complete system, which must interface well
  106. to the operating system, a C-based language seems
  107. like the obvious choice, and thus C++ for OO implementation.
  108.  
  109. C++ is incredibly rich, and although a particular OO programming
  110. model may initially seem difficult to implement, it's usually possible
  111. to find a way.  However, this requires some discipline; people can't
  112. write code in a "stream of conciousness" manner anymore.  This brings
  113. me to your next question.
  114.  
  115. (material deleted)
  116.  
  117.  
  118. AIPS++ still has a long way to go, and any code we've written so far
  119. should be thrown away - it's no more than a combination of education
  120. in the language and also prototyping of some ideas.  We produced about
  121. 15K lines in three weeks, but I believe that merely serves to
  122. illustrate that lines of code should not be seen as a measure of
  123. progress.  If the design is OK, you find that few, if any, serious
  124. design decisions are made while coding.
  125.  
  126. I'd be interested to hear what you're doing.  This new approach often
  127. meets with a lot of resistance, and many people are sceptical (quite
  128. rightly, to some extent) of what we are doing.  Nevertheless, we have
  129. to treat software development in a much more professional way than we
  130. have (at least in off-line processing) in the past.
  131.  
  132.  
  133. ==============================================================================
  134. Any views which I have expressed here as my own are not necssarily shared by my
  135. employer. However, I've tried not to express my own views here, purely those
  136. that have been passed on to me.
  137.  
  138. Nigel R Houghton, La Palma Observatory, Canary Islands
  139.                   Phone 34-22-405500 Fax 34-22-463899
  140.  
  141. Email: Via SPAN   "28844::psi%lpva::nrh"@east.gsfc.nasa.gov
  142.  
  143.        or, if you can get to JANET in UK
  144.                   uk.ac.cam.ast-star::nrh
  145. =============================================================================
  146. =============================================================================
  147.