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=-0.8 required=5.0 tests=BAYES_00,INVALID_DATE autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 1014db,ef0074ec236ba6e3 X-Google-Attributes: gid1014db,public X-Google-Thread: 109fba,ef0074ec236ba6e3 X-Google-Attributes: gid109fba,public X-Google-Thread: 1108a1,ef0074ec236ba6e3 X-Google-Attributes: gid1108a1,public X-Google-Thread: 108717,ef0074ec236ba6e3 X-Google-Attributes: gid108717,public X-Google-Thread: 103376,b19fa62fdce575f9 X-Google-Attributes: gid103376,public X-Google-ArrivalTime: 1994-12-02 13:54:05 PST Path: bga.com!news.sprintlink.net!howland.reston.ans.net!europa.eng.gtefsd.com!news.mathworks.com!news.kei.com!eff!blanket.mitre.org!linus.mitre.org!linus!mbunix!eachus From: eachus@spectre.mitre.org (Robert I. Eachus) Newsgroups: comp.lang.ada,comp.lang.c,comp.programming,comp.lang.c++,comp.object Subject: Re: Why don't large companies use Ada? Followup-To: comp.lang.ada,comp.lang.c,comp.programming,comp.lang.c++,comp.object Date: 2 Dec 94 15:11:04 Organization: The Mitre Corp., Bedford, MA. Message-ID: References: <3aa7jo$7j@Starbase.NeoSoft.COM> <3bd06n$kbt@felix.seas.gwu.edu> <3bj07h$qus@felix.seas.gwu.edu> <5994@gec-mrc.co.uk> NNTP-Posting-Host: spectre.mitre.org In-reply-to: paj@gec-mrc.co.uk's message of 2 Dec 94 08:23:57 GMT Xref: bga.com comp.lang.ada:8200 comp.lang.c:33071 comp.programming:5572 comp.lang.c++:39310 comp.object:9337 Date: 1994-12-02T15:11:04+00:00 List-Id: In article <5994@gec-mrc.co.uk> paj@gec-mrc.co.uk (Paul Johnson) writes: > We were also using a library versioning system, and of course this > basic stuff was in a library. So when you changed it, everything > else had to be recompiled. What with all the other book-keeping > associated with making a change, it held up the project for a full > day. This is Ada trying to tell you something, learn to listen. When, during development, you find yourself having to recompile the world, it means that something your design regards as set in concrete isn't. Even if you can get through development, the maintainers are going to have to live with these design decisions for a long time. Pity the poor maintainer, who finds that the definition of "*" for length is wrong for his part of the code--perhaps due to a requirements change. How does he "fix" it? Should he change the global definition, hoping not to break something else, or should he add a local definition which hides the global definition and creates a maintenance nightmare? How do you fix the problem? Fix the design, and you start by finding which design assumptions are invalid. In this case it seems to be that you can know all the possible combinations of dimensions that will be needed. The approach Mike uses, and which has been discussed here before works, and has a lot fewer drawbacks, but it still has some. (Doing everything in Float has a different, and often more serious set of drawbacks.) You have to compromise, and the compromise selected becomes part of your design. If you end up doing lots of global recompiles, the compiler is telling you that that decision is wrong, and there will never be a better time to fix it. -- Robert I. Eachus with Standard_Disclaimer; use Standard_Disclaimer; function Message (Text: in Clever_Ideas) return Better_Ideas is...