From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.3 required=5.0 tests=BAYES_00,INVALID_MSGID autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,a7e399a115a66840 X-Google-Attributes: gid103376,public From: mfb@mbunix.mitre.org (Michael F Brenner) Subject: Re: new programmer wondering what to learn Date: 1997/05/27 Message-ID: <5mflcq$30v@top.mitre.org>#1/1 X-Deja-AN: 244329440 Sender: Mike Brenner References: <97052710151645@psavax.pwfl.com> Summary: what CM is Organization: MITRE Newsgroups: comp.lang.ada Date: 1997-05-27T00:00:00+00:00 List-Id: The mail reader has asked me why I said that Ada includes configuration management. THank you for asking. Let me make up a good one. No, I mean .... The definition of CM is having control over your baseline, including three particular aspects of the baseline: the parts themselves, the changes to those parts, and the change requests that induced those changes. Ada is a standard for generating code in accordance with a time controlled configuration management scheme that prevents mismatches in the changed parts, using a particular method of packaging those parts which is superior to the packaging in most other computer languages. Thus it contributes to the first two aspects of CM control: control of the parts themselves and the changes to those parts. It does not contribute much to control over change requests. In addition, since it includes within the language many solutions to problems which before Ada often were solved by octal patches, Ada reduces the number of patches, which reduces the number of bugs, the number of parts, and the number of mismatches between patched code and actual object code. Finally, in a totally source code system there will be no requirement to store the object code files at all, reducing the number of configured files by about half. Prior to the gnat age (PTTGA), Ada had a very great contribution toconfiguration management which gnat eliminated, which was a built-in method of delivering an entire system in a single text file, in the correct compilation order, ready to compile and link. With gnat, we must use and external tool to configure the parts list, which takes more tool money and labor money. Luckilly, tools which work most of the time are included with gnat, namely gnatchop and gnatmake. The configuration nightmare introduced by gnat/gnatchop/gnatmake is not the startling increase in manual labor required to externally control the source code in different external files, nor the infamous k8-name-overlap problems (try compiling the interrupt handler provided by Alsys), nor the bugs in gnatmake which are always to be fixed in the next release, but rather the loss of the ability to configure multiple bodies for a single package. Before gnat we did this by strategically placing the alternate bodies mixed in with linkage pragmas in that single file. Now, we trade the advantages of gnat for a reduction in configuration management, and the inability to control within the compiler, the multiple package bodies needed for a single package. Tradeoffs like this are common in certain areas.