[HN Gopher] Overview of the Ada Computer Language Competition (1...
       ___________________________________________________________________
        
       Overview of the Ada Computer Language Competition (1979)
        
       Author : transpute
       Score  : 93 points
       Date   : 2025-05-21 06:18 UTC (16 hours ago)
        
 (HTM) web link (iment.com)
 (TXT) w3m dump (iment.com)
        
       | synack wrote:
       | There's more detail about the language proposals and their merits
       | here: (very large PDF)
       | https://apps.dtic.mil/sti/trecms/pdf/ADB950587.pdf
        
         | pixelesque wrote:
         | Heh.
         | 
         | "We did not have enough time to do a thorough analysis. The
         | languages arrived at WHMI on February 21 and were on my desk on
         | February 22. To insure the analysis is on your desk by March
         | 13, we have to mail our report on March 8. That gives us
         | fourteen days (counting weekends) to read the languages and
         | work on the analysis. Figure two days to read and understand a
         | language. We have used eight days. Another three days are used
         | to write a report and solicit comments, and one day is lost
         | typing. That leaves two days to analyze the four languages.
         | Even if we had a thousand computer scientists doing the
         | analysis, we could have only scratched the surface of these
         | designs. Two hundred and seventy women can not have a baby in a
         | day."
        
       | jakeisnotadog1 wrote:
       | https://archive.is/hZcMO
        
         | tgv wrote:
         | Useful, as the site seems overloaded, but that link only says
         | "Welcome to nginx".
        
       | kevlar700 wrote:
       | Interestingly Co-Pilot gets it wrong and states Ada was designed
       | by committees instead of being multiple competitive processes.
       | How misunderstood Ada is.
       | 
       | https://copilot.microsoft.com/shares/Jp9AmNHMEJzNmcbiu1VNx
       | 
       | https://copilot.microsoft.com/shares/vUjdaDh4mXvj1fm4cyt15
        
         | 7thaccount wrote:
         | I believe it was both:
         | 
         | https://en.m.wikipedia.org/wiki/High_Order_Language_Working_...
         | 
         | The High Order Language Working Group came up with the
         | requirements.
        
           | kevlar700 wrote:
           | True but it was far more open than a committee. The STRAWMAN
           | requirements were circulated widely for comment to industry,
           | military, federal and academic communities and to select
           | experts such as Dijkstra and Hoare. Then WOODENMAN circulated
           | for comment after incorporating changes based on STRAWMANS
           | responses.
        
             | adrian_b wrote:
             | I wish I knew who were the anonymous authors of DoD
             | "IRONMAN" (January 1977), especially who has written the
             | paragraph "7.2.F. (7F.) FORMAL PARAMETER CLASSES".
             | 
             | "IRONMAN" has introduced a very important innovation in
             | programming languages, which has been inherited by Ada and
             | by its derivatives, e.g. VHDL (the innovation is that
             | formal parameters may have 3 kinds of behaviors, "in",
             | "out" and "in out", and that the parameter behavior must be
             | specified, but not its implementation mechanism, like in
             | older programming languages).
             | 
             | Unfortunately this innovation has remained largely unknown
             | for the authors of most more recent programming languages,
             | which are defective because of that.
             | 
             | If Bjarne Stroustrup had bothered to read carefully the Ada
             | specification before conceiving "C with Classes", he might
             | have understood the implication of the "IRONMAN" parameter
             | classes for languages with constructors and destructors,
             | like C++, which could have avoided many decades of pain for
             | the C++ users. In a language with the "IRONMAN" parameter
             | classes, constructors can be ordinary functions and there
             | is no need for many features that complicate C++, like
             | distinct copy constructors and assignment operators, or
             | "move" semantics. Moreover, the performance problems that
             | have plagued C++ before 2011, due to the creation of
             | unnecessary temporaries, would have been avoided since the
             | beginning.
             | 
             | It is likely that the authors of "IRONMAN" did not fully
             | understand the consequences of their innovation, but they
             | had proposed it only in order to make the new DoD language
             | more similar to Jovial, which was a programming language
             | used in several DoD projects at that time. Jovial had such
             | formal parameter classes, but their meaning was slightly
             | different than in "IRONMAN" and in the later Ada, enough to
             | make them much less useful.
             | 
             | Before "IRONMAN", the earlier DoD requirements were to be
             | able to specify whether the parameters are passed by value
             | or by reference, which is an extremely wrong requirement.
             | It is the same mistake made by C and by its derivatives,
             | including recent derivatives, like Rust.
             | 
             | How the parameters are passed must be decided by the
             | compiler, not by the programmer. For the programmer it does
             | not matter whether a parameter is passed by value or by
             | reference, when the passing of the parameters is
             | implemented correctly (e.g. an in-out parameter that is
             | passed by value is copied from the caller to the function
             | and then back when the function returns, if that is
             | necessary; frequently this is not necessary, e.g. if the
             | parameter is located in a register; if the in-out parameter
             | is so big that copying would be slow, the compiler decides
             | to pass it by reference; in C and its derivatives, both out
             | and in-out parameters must be passed by reference, even
             | when that is the wrong choice; moreover, the compiler
             | cannot flag as an error the reading of an out parameter
             | prior to its first writing).
        
       | askvictor wrote:
       | How funny, I was just talking about and researching Ada at work
       | this afternoon, while discussing what the best language for
       | safety critical embedded systems would be
        
         | gridtied wrote:
         | If i may, what was the outcome? ADA?
        
       ___________________________________________________________________
       (page generated 2025-05-21 23:01 UTC)